A standalone five-phase story development, critique, revision, and verification toolkit.
Project description
Narrative Craft
Narrative Craft is a standalone, local-first toolkit for shaping, drafting,
critiquing, revising, verifying, and exporting stories. It provides a Python
package, a narrative-craft CLI, an installable agent skill, versioned schemas,
and English, Traditional Chinese, and mixed-language examples.
Narrative Craft has no required service, agent framework, repository checkout, or
rendering system. External tools integrate only through public artifacts in
.narrativecraft/ or the narrative_craft.extensions capability protocols.
Install
uv tool install narrative-craft
# or
pipx install narrative-craft
# or
pip install narrative-craft
Development checkout:
git clone https://github.com/clchinkc/narrative-craft.git
cd narrative-craft
uv sync
uv run narrative-craft doctor
Python 3.10–3.13 is supported.
Quick start
mkdir my-story && cd my-story
narrative-craft init --id my-story --title "My Story" --manuscript en
narrative-craft status
narrative-craft lint --file scene-1.md --lang en
narrative-craft assess setup --state .narrativecraft/state.json --round 1
narrative-craft critique setup --state .narrativecraft/state.json --round 1 --all
narrative-craft loop kickoff
narrative-craft verify --state .narrativecraft/state.json --round 1 --diagnostic CD-1-1
narrative-craft export ao3 --state .narrativecraft/state.json --out export
Use --manuscript zh-Hant for Traditional Chinese or mixed for bilingual
prose. Run narrative-craft help for the complete command tree and
narrative-craft doctor after installation.
Five phases
- SHAPE establishes intent, structure, characters, world rules, themes, and author-owned constraints.
- BUILD+LINT drafts scenes and runs deterministic checks.
- POLISH improves prose without silently changing author intent.
- CRITIQUE creates a neutral review packet, accepts native or external normalized findings, and routes accepted findings.
- PUBLISH verifies frozen lines and prepares an export. Publishing itself is always an author action.
The 13-step optimization loop is a meta-cycle over these five phases; it is not a sixth phase. See docs/optimization-loop.md.
Workspace and public artifacts
narrative-craft init creates:
.narrativecraft/
├── state.json
├── events.jsonl
├── review-packet.json
├── review-findings.json
├── gate-packet.json
├── verification.json
├── report.json
├── handoff.md
├── backups/
└── passes/
Validate an artifact or the whole workspace:
narrative-craft validate --schema report --path .narrativecraft/report.json
narrative-craft validate --workspace .
Schemas are in schemas/; valid samples are in
examples/contracts/. Unknown integration data belongs
under each artifact's extensions object.
Documentation
- Installation
- Quick start
- Pipeline
- Optimization loop
- Locales and bilingual workflows
- Native critique
- Author gates
- Failure modes
- Falsification and rollback
- State format
- Extension contracts
- Versioned schema index
- Migration from the embedded implementation
- Release process
Repository layout
src/narrative_craft/ Python package and CLI
skills/narrative-craft/ independently installable agent skill
spec/ optimization and locale specifications
schemas/ public JSON Schema contracts
assets/ runtime rubric and templates
docs/ user and extension documentation
examples/ English, Traditional Chinese, mixed, and failure examples
tests/ independent package and workflow tests
Development
uv sync
uv run pytest -q
uv run ruff check .
uv build
See CONTRIBUTING.md and SECURITY.md.
License
MIT. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file narrative_craft-0.2.0.tar.gz.
File metadata
- Download URL: narrative_craft-0.2.0.tar.gz
- Upload date:
- Size: 485.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9aeb91fed3201e3255ae27cb8b89cba1375a627a3f73738e2d9156f78821307c
|
|
| MD5 |
b0f7ee21cd64309b2507cbd219ebfde4
|
|
| BLAKE2b-256 |
2771a0915b2d2fca861a1550fbb20d6e22b393364d36afe0ccb9cf99472de8cb
|
Provenance
The following attestation bundles were made for narrative_craft-0.2.0.tar.gz:
Publisher:
release.yml on clchinkc/narrative-craft
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
narrative_craft-0.2.0.tar.gz -
Subject digest:
9aeb91fed3201e3255ae27cb8b89cba1375a627a3f73738e2d9156f78821307c - Sigstore transparency entry: 2183776145
- Sigstore integration time:
-
Permalink:
clchinkc/narrative-craft@86563f04a68706fc4870ff39c832326deed06c41 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/clchinkc
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@86563f04a68706fc4870ff39c832326deed06c41 -
Trigger Event:
push
-
Statement type:
File details
Details for the file narrative_craft-0.2.0-py3-none-any.whl.
File metadata
- Download URL: narrative_craft-0.2.0-py3-none-any.whl
- Upload date:
- Size: 380.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d73d9575c0e6fc00ab6d8fa546369a14d312b2df61ccc67d37d30cbcc790d91b
|
|
| MD5 |
b46e8da9b27713053a92046aec336907
|
|
| BLAKE2b-256 |
ce11e397cc0ed863e972d6b3edc9b58806eef0a3ed46688390467f5d645d1a2c
|
Provenance
The following attestation bundles were made for narrative_craft-0.2.0-py3-none-any.whl:
Publisher:
release.yml on clchinkc/narrative-craft
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
narrative_craft-0.2.0-py3-none-any.whl -
Subject digest:
d73d9575c0e6fc00ab6d8fa546369a14d312b2df61ccc67d37d30cbcc790d91b - Sigstore transparency entry: 2183776399
- Sigstore integration time:
-
Permalink:
clchinkc/narrative-craft@86563f04a68706fc4870ff39c832326deed06c41 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/clchinkc
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@86563f04a68706fc4870ff39c832326deed06c41 -
Trigger Event:
push
-
Statement type: