Skip to main content

iil-outlinefw

Story Outline Framework for AI-assisted creative writing.

Pure Python — no Django, no DB dependency in the core.

PyPI Python License: MIT

Part of the iil- platform package family alongside iil-aifw, iil-authoringfw, iil-promptfw.

Install

pip install iil-outlinefw
# With Outline Wiki knowledge enrichment:
pip install "iil-outlinefw[knowledge]"
# With Django adapter:
pip install "iil-outlinefw[django]"
# Everything:
pip install "iil-outlinefw[full]"

Extras / Optional Dependencies

Extra Dependencies Purpose
knowledge httpx, pydantic-settings, tenacity Outline Wiki client + context enrichment
django django>=4.2 Django service adapter
full all above + dev Full feature set

Features

  • 5 story frameworks: Three-Act, Save the Cat, Hero's Journey, Five-Act, Dan Harmon Story Circle
  • Beat definitions with act position (0.0–1.0), tension level, emotional arc
  • OutlineGenerator: LLM-based outline generation via any iil-aifw-compatible router
  • parse_nodes(): Robust JSON parser for LLM responses (handles fencing, <think> tags, leading text)
  • Pydantic schemas: OutlineNode, OutlineResult, ProjectContext
  • Django adapter in outlinefw.django_adapter (optional, no hard dependency)

Quick Start

from outlinefw import OutlineGenerator, FRAMEWORKS
from outlinefw.schemas import ProjectContext

gen = OutlineGenerator(my_llm_router)

ctx = ProjectContext(
    title="My Novel",
    genre="Thriller",
    description="A story about ...",
)

# generate(framework_key, context) — always returns an OutlineResult, never raises
result = gen.generate("save_the_cat", ctx)
for node in result.nodes:
    print(f"{node.position:.2f} {node.title} [{node.beat_name}]")

Frameworks

Key Name Beats
three_act Drei-Akt-Struktur 7
save_the_cat Save the Cat 15
heros_journey Heldenreise 12
five_act Fuenf-Akt-Struktur 5
dan_harmon Dan Harmon Story Circle 8

Architecture

src/outlinefw/
    __init__.py        # Public API
    schemas.py         # Pydantic: OutlineNode, OutlineResult, ProjectContext
    frameworks.py      # FRAMEWORKS dict + BeatDefinition TypedDicts
    generator.py       # OutlineGenerator (LLMRouter Protocol)
    parser.py          # parse_nodes() -- robust LLM JSON parser
    django_adapter.py  # Optional Django bridge (override in host app)

Used By

  • writing-hub — outline generation + standalone Outlines section
  • travel-beat — scene-based story planning (migration planned)
  • bfagent — advanced outline handlers (migration planned)

Part of the iil- Platform

Package Purpose
iil-aifw LLM routing (DB-driven)
iil-promptfw Prompt templates (Jinja2)
iil-authoringfw Authoring schemas (chapters, style)
iil-outlinefw Story structure + outline generation
iil-weltenfw WeltenHub REST client

Changelog

See CHANGELOG.md.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iil_outlinefw-0.3.2.tar.gz (38.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iil_outlinefw-0.3.2-py3-none-any.whl (27.1 kB view details)

Uploaded Python 3

File details

Details for the file iil_outlinefw-0.3.2.tar.gz.

File metadata

  • Download URL: iil_outlinefw-0.3.2.tar.gz
  • Upload date:
  • Size: 38.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for iil_outlinefw-0.3.2.tar.gz
Algorithm Hash digest
SHA256 fcfa4bbcdb68b7fab929713776df9bcaf39c53e7b896bd3059fa8739ebf17923
MD5 b6b0b6eb6c39ee30203cd5b7642ffaed
BLAKE2b-256 a10198ba1e17b08a2b8df34edd7eb1cb30dfd0d4ea3a72695c8ef2923711010b

See more details on using hashes here.

Provenance

The following attestation bundles were made for iil_outlinefw-0.3.2.tar.gz:

Publisher: publish.yml on achimdehnert/outlinefw

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iil_outlinefw-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: iil_outlinefw-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 27.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for iil_outlinefw-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 74f11a1c1d9f2368d928c8accba1bfca68f47ed9c3c83533e3263864ca3c913c
MD5 7487b5a016382d67d074154772f42da1
BLAKE2b-256 d127ee7e7b8c8c5e4ada796dd2fa5b78e5d6f871e57113955f001df1154a4332

See more details on using hashes here.

Provenance

The following attestation bundles were made for iil_outlinefw-0.3.2-py3-none-any.whl:

Publisher: publish.yml on achimdehnert/outlinefw

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 files

0.3.1

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page