iil-authoringfw — Authoring Framework
Domain schemas for AI-assisted creative writing applications.
Installation
pip install iil-authoringfw
# With aifw LLM integration:
pip install "iil-authoringfw[aifw]"
# All optional dependencies:
pip install "iil-authoringfw[all]"
Extras / Optional Dependencies
| Extra | Dependencies | Purpose |
|---|---|---|
aifw |
iil-aifw>=0.11.4 | LLM completion integration (quality_level/priority routing needs >=0.11.2) |
yaml |
pyyaml>=6.0 | YAML template loading |
promptfw |
iil-promptfw>=0.5.5 | Prompt template rendering |
all |
all above | Full feature set |
Quick Start
from authoringfw import StyleProfile, CharacterProfile, WorldContext, get_format
# Style constraints for prompt injection
style = StyleProfile(tone="melancholic", pov="third_limited", tense="past")
constraints = style.to_constraints()
# Character context
alice = CharacterProfile(
name="Alice",
role="protagonist",
personality_traits=["brave", "curious"],
arc="From fear to courage",
)
print(alice.to_context_string())
# World context
world = WorldContext(
title="The Shattered Realms",
genre="fantasy",
world_rules=["Magic costs life force", "Dragons are extinct"],
)
print(world.to_context_string())
# Format profiles (novel, essay, series, scientific)
roman = get_format("roman")
print(roman.style_constraints)
Schemas
StyleProfile— tone, POV, tense, vocabulary, sentence rhythmCharacterProfile— name, role, traits, backstory, arc, relationshipsWorldContext— title, genre, setting, world rules, locations, loreVersionMetadata— immutable content snapshot with hash, semver, LLM metadataPhaseSnapshot— project state at a workflow phase boundary
Format Profiles
Built-in formats: roman (alias novel), essay, serie, scientific,
nonfiction, academic, screenplay, short_story, blog_post, podcast_script.
The registry (authoringfw.formats.base.FORMAT_REGISTRY) is the source of truth.
from authoringfw.formats.base import get_format, WorkflowPhase
novel = get_format("roman")
outline_steps = novel.steps_for_phase(WorkflowPhase.OUTLINE)
Adapter Interfaces
Protocol-based adapters — no inheritance required:
from authoringfw.adapters.interfaces import IStyleAdapter
class MyStyleAdapter:
async def get_profile(self, style_id): ...
async def analyze_text(self, text): ...
def generate_style_constraints(self, profile): ...
async def score_conformity(self, text, profile): ...
adapter = MyStyleAdapter()
assert isinstance(adapter, IStyleAdapter) # True via @runtime_checkable
Changelog
See CHANGELOG.md.
Metadata
Release files for iil-authoringfw 0.11.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| iil_authoringfw-0.11.6.tar.gz | 69.8 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iil_authoringfw-0.11.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 124.8 kB
Security for iil-authoringfw 0.11.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for iil_authoringfw-0.11.6.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.