# Book Draft

> 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.

- Skill: `nibzard/book-draft` (Agent Skill)
- Install (CLI): `npx skillmds@latest add nibzard/book-draft`
- Raw SKILL.md: https://api.skillmd.com/api/skills/nibzard/book-draft/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: nibzard (https://skillmd.com/u/nibzard)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/nibzard/book-draft

---


# 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

1. **Resolve the target unit.** Identify the most likely `scene`/`section`/`spread`/`poem` to write from the request (“continue”, a fragment, or a named unit).
2. **Create only the minimum missing structure.** Add chapter/scene nodes with sort-order gaps when needed; do not pre-build a full outline.
3. **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.
4. **Write the unit** to satisfy causality and the story contract, not merely the outline.
5. **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.
6. **Extract consequential planned facts** (mode `planned`) and update the ledger in the same session.
7. **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:

```json
{"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.

