Skip to content

[Presubmission] story-toolkit: A comprehensive Python toolkit for generating engaging and coherent stories #304

@miladrezanezhad

Description

@miladrezanezhad

Submitting Author: Milad Rezanezhad (@miladrezanezhad)
Package Name: story-toolkit
One-Line Description of Package: A comprehensive Python toolkit for generating engaging and coherent stories with optional LLM support
Repository Link (if existing): https://github.com/miladrezanezhad/story-toolkit
EiC: TBD


Code of Conduct & Commitment to Maintain Package

  • I agree to abide by [pyOpenSci's Code of Conduct][PyOpenSciCodeOfConduct] during the review process and in maintaining my package after should it be accepted.
  • I have read and will commit to package maintenance after the review as per the [pyOpenSci Policies Guidelines][Commitment].

Description

story-toolkit is a Python package that provides a comprehensive set of tools for generating and analyzing coherent stories. It offers modules for character creation (with traits, goals, relationships), plot generation (supporting multiple genres like fantasy, mystery, romance), dialogue writing, world building, and coherence checking. The package includes optional LLM integration (OpenAI, Anthropic, and local models via Ollama) for advanced generation, supports multiple export formats (PDF, EPUB, HTML, JSON, Markdown), and provides pre-built story templates (e.g., Hero's Journey, 3-Act structure). It is designed for writers, educators, and researchers in computational creativity and narrative generation.

Community Partnerships

  • Astropy
  • Pangeo

Scope

  • Data retrieval
  • Data extraction
  • Data processing/munging
  • Data deposition
  • Data validation and testing
  • Data visualization
  • Workflow automation
  • Citation management and bibliometrics
  • Scientific software wrappers
  • Database interoperability

Domain Specific

  • Geospatial
  • Education

  • Explain how and why the package falls under these categories:

The package falls under "Data processing/munging" because it processes and structures narrative text data (characters, plots, dialogues) into analyzable components. It also fits "Workflow automation" by automating the creative writing workflow (from character creation to coherence checking). The "Education" domain applies as the toolkit can be used to teach narrative structure, creative writing, and computational creativity concepts in academic settings. I am unsure if the package's primary focus on creative writing (rather than traditional scientific data) might be considered outside pyOpenSci's core scope.

  • Target audience and scientific applications:

Target audience: Writers, educators, students, and researchers in computational creativity, narrative generation, and digital humanities.

Scientific applications:

  • Research in AI-assisted storytelling and narrative coherence

  • Educational tool for teaching story structure and creative writing techniques

  • Generating controlled narrative datasets for psychology or linguistics studies

  • Benchmarking LLM performance on creative writing tasks

  • Other similar packages and differences:

Yes, packages like tracery (grammar-based generation) and textgenrnn (RNN-based text generation) exist. However, story-toolkit differs by:

  1. Providing structured, multi-module approach (characters, plot, world, dialogue) vs. raw text generation
  2. Including coherence checking and analysis tools not found in other packages
  3. Offering optional LLM integration with multiple backends (OpenAI, Anthropic, local)
  4. Supporting multiple export formats (PDF, EPUB) and pre-built templates for common narrative structures

Generative AI Disclosure (Required)

  • Generative AI was used to produce some of the material in this submission.
  • The authors affirm that all generated material has been reviewed and edited for clarity, correctness, and completeness. The authors are responsible for the content of their work and affirm that it is in a state where reviewers will not be responsible for primary editing and review of machine-generated material.

Description of AI use:

Which parts: Documentation (initial drafts of docstrings and README sections) and boilerplate code structures (test file templates, class skeletons). No core logic or complex algorithms.

Scale: Documentation ~15-20%, boilerplate code ~5-10%. Core modules (character.py, plot_generator.py, coherence_checker.py) are 100% human-written.

How used: Queried separately for brainstorming, phrasing suggestions, and generating repetitive test patterns. All output manually reviewed and edited.

Link to AI policy: None yet.


  • Any other questions or issues we should be aware of:

No.

P.S. Have feedback/comments about our review process? Leave a comment [on our discourse forum][Comments]

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    pre-submission

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions