Skip to main content

Authoring Framework — domain schemas for AI-assisted creative writing applications

Project description

authoringfw — Authoring Framework

Domain schemas for AI-assisted creative writing applications.

Installation

pip install authoringfw

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 rhythm
  • CharacterProfile — name, role, traits, backstory, arc, relationships
  • WorldContext — title, genre, setting, world rules, locations, lore
  • VersionMetadata — immutable content snapshot with hash, semver, LLM metadata
  • PhaseSnapshot — project state at a workflow phase boundary

Format Profiles

Built-in formats: roman, essay, serie, scientific

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

Project details


Download files

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

Source Distribution

authoringfw-0.1.0.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

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

authoringfw-0.1.0-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file authoringfw-0.1.0.tar.gz.

File metadata

  • Download URL: authoringfw-0.1.0.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for authoringfw-0.1.0.tar.gz
Algorithm Hash digest
SHA256 17cff51bed5ffe8a6593810864bd0f56a176bd076c705e7c07a527c9253dd15f
MD5 530a31ef50cd9087c95bc32a9bab16a5
BLAKE2b-256 e750d4fb6bd32e1e34065f408f54c9be27e8dc22a02ecc59765f2eb48cc1a310

See more details on using hashes here.

File details

Details for the file authoringfw-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: authoringfw-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for authoringfw-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fbda86e178274d2be8dd2cbfb8ade7b9120d290a10ed3693f5be3a4f0f740bb4
MD5 73d6b809f641422d0226c555b52a3fde
BLAKE2b-256 e6a77dfaa235dc49b3c7de1f0c36c5407d19a4fa355ccff1b7bae78a063c7887

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page