Book Draft
Turn intent into prose and maintain the ledger as a consequence of writing. Draft one coherent unit at a time. Never overwrite manuscript content; every meaningful pass is a new text_version.
This skill inherits every rule in AGENTS.md. It never overrides human creative authority or database safety. Route through $book-guide first for mixed requests.
Workflow
- Resolve the target unit. Identify the most likely
scene/section/spread/poem to write from the request (“continue”, a fragment, or a named unit).
- Create only the minimum missing structure. Add chapter/scene nodes with sort-order gaps when needed; do not pre-build a full outline.
- Build a narrow context pack (see
AGENTS.md “Prepare a scene or section context pack”): the unit and its ancestors, current texts, the immediately previous and next units, statements touching the unit, entities expected to appear, relevant canon/planned facts, active promises and arcs, voice constraints, and unresolved decisions. Do not load the whole book.
- Write the unit to satisfy causality and the story contract, not merely the outline.
- Store a new
manuscript text version using the safe-transaction pattern (UPDATE is_current=0 for the prior current, then INSERT is_current=1). If the human asked for alternatives, create candidate versions (is_current=0) instead of replacing the current one.
- Extract consequential planned facts (mode
planned) and update the ledger in the same session.
- Report a short save receipt naming node codes and text-version IDs.
What a strong unit contains
- Fiction: immediate pressure; a character choice; a change in situation or relationship; reward, cost, answer, reversal, or loss; a specific forward pull.
- Practical nonfiction: a reader problem or question; a claim or method; evidence or example; a changed understanding or capability; a reason to continue.
Extracting consequences
After a draft, record only facts likely to constrain future work or produce payoff:
- characters/entities that appear (predicate
appears_in);
- new possessions, injuries, locations, relationships, rules, dates, knowledge, status changes;
- promises introduced / escalated / complicated / resolved (
thread nodes with introduced_in … resolved_in);
- arcs advanced.
Use mode='planned' for facts from unapproved drafts, and tag each with the version that produced it:
{"source_text_version_id": 42}
This lets a later revision supersede only that version’s facts rather than guessing from the scene node as a whole. Do not extract every adjective.
Authority boundary
A new draft is state='draft' (or candidate). A drafting request authorizes an active draft; it does not mean state='approved' (AGENTS.md write rules 5 and 8). Promotion to canon happens only through explicit human approval via $book-ledger.
Definition of done
A drafting turn is complete when prose was written and saved as a recoverable version, consequential facts were extracted as planned statements tied to that version, promises/assumptions/continuity risks were updated, and the author received a compact receipt — without any unauthorized approval.
1---2name: book-draft3description: Write or continue new manuscript prose from a plan, idea, fragment, or dictation. Drafts the smallest independently revisable unit (usually a scene or section), stores a recoverable version, extracts consequential planned facts, updates promises and continuity risks, and reports a short save receipt. Does not approve prose.4---56# Book Draft78Turn intent into prose and maintain the ledger as a consequence of writing. Draft one coherent unit at a time. Never overwrite manuscript content; every meaningful pass is a new `text_version`.910This skill inherits every rule in `AGENTS.md`. It never overrides human creative authority or database safety. Route through `$book-guide` first for mixed requests.1112## Workflow13141. **Resolve the target unit.** Identify the most likely `scene`/`section`/`spread`/`poem` to write from the request (“continue”, a fragment, or a named unit).152. **Create only the minimum missing structure.** Add chapter/scene nodes with sort-order gaps when needed; do not pre-build a full outline.163. **Build a narrow context pack** (see `AGENTS.md` “Prepare a scene or section context pack”): the unit and its ancestors, current texts, the immediately previous and next units, statements touching the unit, entities expected to appear, relevant canon/planned facts, active promises and arcs, voice constraints, and unresolved decisions. Do not load the whole book.174. **Write the unit** to satisfy causality and the story contract, not merely the outline.185. **Store a new `manuscript` text version** using the safe-transaction pattern (UPDATE `is_current=0` for the prior current, then INSERT `is_current=1`). If the human asked for alternatives, create `candidate` versions (`is_current=0`) instead of replacing the current one.196. **Extract consequential planned facts** (mode `planned`) and update the ledger in the same session.207. **Report a short save receipt** naming node codes and text-version IDs.2122## What a strong unit contains2324- **Fiction:** immediate pressure; a character choice; a change in situation or relationship; reward, cost, answer, reversal, or loss; a specific forward pull.25- **Practical nonfiction:** a reader problem or question; a claim or method; evidence or example; a changed understanding or capability; a reason to continue.2627## Extracting consequences2829After a draft, record only facts likely to constrain future work or produce payoff:3031- characters/entities that appear (predicate `appears_in`);32- new possessions, injuries, locations, relationships, rules, dates, knowledge, status changes;33- promises introduced / escalated / complicated / resolved (`thread` nodes with `introduced_in` … `resolved_in`);34- arcs advanced.3536Use `mode='planned'` for facts from unapproved drafts, and tag each with the version that produced it:3738```json39{"source_text_version_id": 42}40```4142This lets a later revision supersede only that version’s facts rather than guessing from the scene node as a whole. Do not extract every adjective.4344## Authority boundary4546A new draft is `state='draft'` (or `candidate`). A drafting request authorizes an active draft; it does **not** mean `state='approved'` (`AGENTS.md` write rules 5 and 8). Promotion to `canon` happens only through explicit human approval via `$book-ledger`.4748## Definition of done4950A drafting turn is complete when prose was written and saved as a recoverable version, consequential facts were extracted as planned statements tied to that version, promises/assumptions/continuity risks were updated, and the author received a compact receipt — without any unauthorized approval.