novelforge
Create, continue, revise, audit, and manage long-form fiction projects with explicit canon, outlines, chapter context, continuity checks, style controls, version precedence, and handoff packages. Use
SKILL.mdSKILL.md
GitHubNovelForge
Treat every novel as a stateful project, not a sequence of unrelated prompts. Preserve the author's explicit choices and confirmed prose. Never silently replace canon, invent missing prior events, or present an outline as a full chapter.
Route the request
Read only the references needed for the current operation:
- New idea, positioning, or project: project-workflow.md
- Worldbuilding, characters, powers, items, or factions: story-bible.md
- Synopsis, volume, arc, event, chapter, or scene planning: planning.md
- Drafting or continuing prose: chapter-writing.md
- Revising, splitting, merging, renaming, or rewriting: revision.md
- Logic, timeline, canon, knowledge, clue, prop, or foreshadowing audit: continuity.md
- Voice, dialogue, pacing, payoff, or AI-tell cleanup: style-and-pacing.md
- Serialization, feedback, analytics, trend adaptation, export, or handoff: serialization-and-handoff.md
- Project file fields or machine-readable formats: project-schema.md
- Genre-specific decisions: read only the matching file under
references/genre-presets/.
Establish authority before writing
For an existing project, resolve the project root and read, when present: canon.yaml, constraints.md, change-log.yaml, relevant story-bible records, the current plan, the previous chapter, recent summaries, and relevant open threads.
Use this precedence:
- current explicit user instruction
- latest active canon entry
- user-confirmed manuscript
- latest accepted handoff
- current outline
- superseded material
- inference
When sources conflict, report the exact conflict and proposed authority. Use a clearly newer explicit rule when provenance is sufficient; otherwise ask one focused question. Never blend incompatible versions.
Operating invariants
- Distinguish fact, plan, option, inference, and superseded material.
- Do not promote brainstorming into canon without acceptance.
- Preserve locked text and out-of-scope content during revisions.
- Track character knowledge separately from reader knowledge.
- Give important reversals a cause, setup, mechanism, consequence, and aftermath.
- Record new canon after accepted prose, not before.
- Keep projects isolated; never import names or rules from another novel unless asked.
- For real-world incidents, separate verified facts from allegations and fictionalize identifiable details when adapting them.
- Do not imitate a living author's distinctive style. Translate style requests into high-level traits.
Default execution loop
- Classify the request and load the minimum relevant project context.
- State only blocking conflicts or assumptions; do not re-interview the author about known facts.
- Make an internal task card with continuity inputs, required beats, protected material, target length, and stopping point.
- Produce the requested deliverable at the requested completeness.
- Run deterministic checks when project files are available:
python scripts/novelforge.py validate PROJECT,audit PROJECT, orcontext PROJECT --chapter N. - Perform the relevant literary audit.
- Show material uncertainty instead of hiding it.
- Update project state only when the user requested file changes or accepted the generated material.
Output contract
- If asked for a full chapter, deliver complete prose within the target range, not notes or a compressed substitute.
- If asked for alternatives, keep them non-canon until selected.
- If asked for an audit, lead with concrete issues and evidence, then propose minimal repairs.
- If asked for a local modification, identify
must_change,may_adjust, andprotectedscope before editing. - If no files exist and the request is small, work in chat; do not force project scaffolding.