Narrative v2 — Craft + Slop Defense + Project Pipeline
Assist with narrative prose: fiction, lore, character backstories, quest text, dialogue, worldbuilding — and full short-novel projects. Grounded, buildable writing. Not abstract exposition.
Reference files (verbatim, do not edit):
references/autonovel-craft.md — plot / character / worldbuilding / foreshadowing, each with a mechanical check.
references/autonovel-anti-slop.md — banned words, structural slop, tone, detection signals.
references/project-mode.md — manuscript tree, schemas, gates (this skill's project extension).
Load with skill_view(name='narrative', file_path='references/…') when you need exact rule text.
Modes
| Mode |
When |
Requires |
| single-scene |
short tests, one-off prose, game text |
nothing bound |
| project |
multi-chapter novel / short novel |
bound manuscript/{project}/ with state files |
In project mode, refuse chapter assembly and export if ledger/canon/voice are missing or scenes are not reviewed.
Skill tests / short samples stay scene-scale. Do not expand into a full book pipeline unless the user asks.
Tone defaults (this user)
Fantasy / murim / isekai / summoned-world with unspecified tone → melancholy dark noir martial-arts weight — cost over glory, irreversible loss, moral ambiguity. Grounded detail over abstract world-tour. Bright adventure only if asked.
Single-scene procedure (v1, retained)
- Anchor tone — name register (dread / restraint / melancholy / bright action). Ask if vague; use tone defaults above for this user's fantasy.
- Structure — one framework from CRAFT §1 (Save-the-Cat | Harmon circle | Sanderson PPP). Prefer MICE + try-fail: middle beats mostly "yes, but…" / "no, and…".
- Character before prose — Three Sliders (proactivity / likability / competence — ≥2 high, or one high with growth) + Wound→Lie→Want→Need (Want ⊥ Need).
- System / magic — Three Laws (CRAFT §3): hard rules, limitations ≥ powers, costs drive decisions, no unforeshadowed power in final 25%.
- Draft show-don't-tell (CRAFT §5) — concrete nouns, earned metaphor, rhythm variation (short → long → short). Zero telling at peaks.
- Dual-persona review — A literary critic (prose, voice, monotony); B fiction professor (character, ethics, beats). Fix top items until "mostly qualified hedges."
- Kill slop (ANTI-SLOP) — Tier-1 zero; Tier-3 delete; em dashes ≤2/page; kill "not just X, but Y"; break topic-sentence templates.
- Stability-trap check (mandatory) — all 7 points below.
Project mode
Init
- Scaffold
manuscript/{project}/ via book-pipeline scripts/init_manuscript.py (preferred) or templates.
- Write
concept.md with user (logline, tone, MICE, target length 40–50k default).
- Seed character sheets,
plot-ledger.md, foreshadow-bank.md, worldbuilding.md, canon.md.
- One-time voice calibration →
voice-profile.md (see book-pipeline style-revision playbook §3).
- Bind via optional
manuscript.yaml (title, framework, target_words, voice_profile).
Continuity ledger (read every draft/review)
| File |
Role |
canon.md |
Truth ledger — names, rules, geography, dates. New facts go here, not silent intro. |
plot-ledger.md |
Beats + %mark + status (planned / drafted / reviewed / done) |
foreshadow-bank.md |
plant → payoff (status: open / planted / payoff / dangling / red-herring) |
character-sheet.md or characters/*.md |
sliders, Lie/Truth, dialogue 8-dims |
worldbuilding.md |
pillars + Three Laws + societal implications |
voice-profile.md |
register, bans, rhythm targets, metaphor domains |
Generator loads only what it needs for the current scene (beat row + relevant characters + last chapter summary) — never the full manuscript.
Draft (generator stage)
- Read assigned beat from ledger + voice-profile + relevant character rows.
- Run single-scene procedure steps 1–5.
- Frontmatter on scene/chapter file:
---
scene_id: ch03-sc02
beat: catalyst
try_fail: no-and # yes-but | no-and | no-but | yes-and
pov: Jin
status: drafted
---
- Do not self-critique for stability trap at book scale — hand to reviewer.
Review (separate stage — use narrative-revisor or style-revision playbook)
Fresh context. Loads ledger + canon + voice + one scene. Never generator reasoning.
- Pass 1 craft/structure
- Pass 2 anti-slop mechanical
- Pass 3 stability-trap 7-point
- Emit JSON handoff (
scene_id, issues[], severity)
Revise
Drafting agent applies only reviewer issues. Re-submit until pass status with zero blocker/major.
Assemble & chapter gates
Before marking a chapter done:
- Fact continuity — new facts added to
canon.md
- Ledger progression — beats moved planned→drafted→reviewed; no silent skips
- Foreshadow — no dangling past payoff window; no unforeshadowed climax element
- Character state — sliders/arc match sheet
- Stability-trap at chapter grain
- Anti-slop per chapter (Tier-1 zero, em-dash cap)
Export (via book-writer-pipeline CLI) only when all chapters done.
Scriptable checks
Run scripts/check_manuscript.py <manuscript_dir> for mechanical scans (Tier-1, em-dash density, dangling plants, beat status). Judgment items (moral ambiguity, emotional range) stay human/reviewer.
Stability Trap — non-negotiable (all scales)
| Point |
Scene |
Chapter |
Manuscript |
| Characters end truly different |
arc advances |
checkpoint hit |
final vs opening |
| Bad things stay bad |
not retconned |
loss not undone |
≥1 unresolved |
| Irreversible loss |
choice has cost |
cost paid |
no undo in ledger |
| Information withheld |
mystery planted |
not all revealed |
reader incomplete |
| Moral ambiguity |
unclear right |
tension held |
no clean ending |
| Emotional range |
intensity varies |
quiet + explosive |
full register |
| Real cost per choice |
cost stated |
accumulates |
no free climax |
If a draft rounds a sharp edge safer/generic → rewrite.
Anti-slop (project + single)
- Tier-1 kill on sight; Tier-2 ≤2/paragraph; Tier-3 delete all filler
- Em dashes ≤2/page; zero "not just X, but Y"
- No topic-sentence machine, list abuse, hedge parade, transition addiction
- Fiction AI tells (CRAFT §6): "a sense of…", "eyes widened", "wave of emotion", etc. — kill
Full lists: references/autonovel-anti-slop.md.
Pitfalls
- Lists instead of prose for weighty scenes
- Throat-clearing openings ("In this land…")
- Info-dump >100 words without action/dialogue
- Self-review at book scale (stability trap doubles) — use
narrative-revisor / separate pass
- Ledger drift / voice drift across chapters
- Dumping full manuscript into a 16K–32K context
- Expanding a skill test into a pipeline without being asked (book-scale →
book-pipeline / book-writer)
- Skipping
scripts/check_manuscript.py before export-ready
- Offering "Act II next?" after a short sample when the user only wanted a test — stop at the sample
Verify
Book-scale ownership
This skill owns craft inside a scene/chapter. The book-pipeline skill owns architecture, folder convention, export, publish routing, and multi-lane orchestration. The book-writer profile owns the loop end-to-end.
When book work spans craft + models + CLI + market + publish: delegate lanes. Do not solo the whole novel from one profile.
1---2name: narrative-23description: Full-novel craft + anti-slop pipeline with project mode (ledger, characters, foreshadow, worldbuilding bible), draft→review→revise gates, and stability-trap enforcement at scene/chapter/manuscript scale. Single-scene mode retained. Use for fiction, lore, character docs, dialogue, worldbuilding, or book projects.4---56# Narrative v2 — Craft + Slop Defense + Project Pipeline78Assist with narrative prose: fiction, lore, character backstories, quest text, dialogue, worldbuilding — and full short-novel projects. Grounded, buildable writing. Not abstract exposition.910**Reference files (verbatim, do not edit):**11- `references/autonovel-craft.md` — plot / character / worldbuilding / foreshadowing, each with a mechanical check.12- `references/autonovel-anti-slop.md` — banned words, structural slop, tone, detection signals.13- `references/project-mode.md` — manuscript tree, schemas, gates (this skill's project extension).1415Load with `skill_view(name='narrative', file_path='references/…')` when you need exact rule text.1617## Modes1819| Mode | When | Requires |20|------|------|----------|21| **single-scene** | short tests, one-off prose, game text | nothing bound |22| **project** | multi-chapter novel / short novel | bound `manuscript/{project}/` with state files |2324In project mode, refuse chapter assembly and export if ledger/canon/voice are missing or scenes are not reviewed.2526**Skill tests / short samples** stay scene-scale. Do not expand into a full book pipeline unless the user asks.2728## Tone defaults (this user)2930Fantasy / murim / isekai / summoned-world with unspecified tone → **melancholy dark noir martial-arts weight** — cost over glory, irreversible loss, moral ambiguity. Grounded detail over abstract world-tour. Bright adventure only if asked.3132---3334## Single-scene procedure (v1, retained)35361. **Anchor tone** — name register (dread / restraint / melancholy / bright action). Ask if vague; use tone defaults above for this user's fantasy.372. **Structure** — one framework from CRAFT §1 (Save-the-Cat | Harmon circle | Sanderson PPP). Prefer MICE + try-fail: middle beats mostly "yes, but…" / "no, and…".383. **Character before prose** — Three Sliders (proactivity / likability / competence — ≥2 high, or one high with growth) + Wound→Lie→Want→Need (Want ⊥ Need).394. **System / magic** — Three Laws (CRAFT §3): hard rules, limitations ≥ powers, costs drive decisions, no unforeshadowed power in final 25%.405. **Draft show-don't-tell** (CRAFT §5) — concrete nouns, earned metaphor, rhythm variation (short → long → short). Zero telling at peaks.416. **Dual-persona review** — A literary critic (prose, voice, monotony); B fiction professor (character, ethics, beats). Fix top items until "mostly qualified hedges."427. **Kill slop** (ANTI-SLOP) — Tier-1 zero; Tier-3 delete; em dashes ≤2/page; kill "not just X, but Y"; break topic-sentence templates.438. **Stability-trap check (mandatory)** — all 7 points below.4445---4647## Project mode4849### Init501. Scaffold `manuscript/{project}/` via `book-pipeline` `scripts/init_manuscript.py` (preferred) or templates.512. Write `concept.md` with user (logline, tone, MICE, target length 40–50k default).523. Seed character sheets, `plot-ledger.md`, `foreshadow-bank.md`, `worldbuilding.md`, `canon.md`.534. One-time **voice calibration** → `voice-profile.md` (see book-pipeline style-revision playbook §3).545. Bind via optional `manuscript.yaml` (`title`, `framework`, `target_words`, `voice_profile`).5556### Continuity ledger (read every draft/review)5758| File | Role |59|------|------|60| `canon.md` | Truth ledger — names, rules, geography, dates. New facts go here, not silent intro. |61| `plot-ledger.md` | Beats + %mark + status (`planned` / `drafted` / `reviewed` / `done`) |62| `foreshadow-bank.md` | plant → payoff (status: open / planted / payoff / dangling / red-herring) |63| `character-sheet.md` or `characters/*.md` | sliders, Lie/Truth, dialogue 8-dims |64| `worldbuilding.md` | pillars + Three Laws + societal implications |65| `voice-profile.md` | register, bans, rhythm targets, metaphor domains |6667**Generator loads only what it needs** for the current scene (beat row + relevant characters + last chapter summary) — never the full manuscript.6869### Draft (generator stage)701. Read assigned beat from ledger + voice-profile + relevant character rows.712. Run single-scene procedure steps 1–5.723. Frontmatter on scene/chapter file:73 ```yaml74 ---75 scene_id: ch03-sc0276 beat: catalyst77 try_fail: no-and # yes-but | no-and | no-but | yes-and78 pov: Jin79 status: drafted80 ---81 ```824. Do **not** self-critique for stability trap at book scale — hand to reviewer.8384### Review (separate stage — use `narrative-revisor` or style-revision playbook)85Fresh context. Loads ledger + canon + voice + **one** scene. Never generator reasoning.86- Pass 1 craft/structure87- Pass 2 anti-slop mechanical88- Pass 3 stability-trap 7-point89- Emit JSON handoff (`scene_id`, `issues[]`, `severity`)9091### Revise92Drafting agent applies **only** reviewer issues. Re-submit until pass status with zero blocker/major.9394### Assemble & chapter gates95Before marking a chapter `done`:961. **Fact continuity** — new facts added to `canon.md`972. **Ledger progression** — beats moved planned→drafted→reviewed; no silent skips983. **Foreshadow** — no dangling past payoff window; no unforeshadowed climax element994. **Character state** — sliders/arc match sheet1005. **Stability-trap** at chapter grain1016. **Anti-slop** per chapter (Tier-1 zero, em-dash cap)102103Export (via `book-writer-pipeline` CLI) only when all chapters `done`.104105### Scriptable checks106Run `scripts/check_manuscript.py <manuscript_dir>` for mechanical scans (Tier-1, em-dash density, dangling plants, beat status). Judgment items (moral ambiguity, emotional range) stay human/reviewer.107108---109110## Stability Trap — non-negotiable (all scales)111112| Point | Scene | Chapter | Manuscript |113|-------|-------|---------|------------|114| Characters end truly different | arc advances | checkpoint hit | final vs opening |115| Bad things stay bad | not retconned | loss not undone | ≥1 unresolved |116| Irreversible loss | choice has cost | cost paid | no undo in ledger |117| Information withheld | mystery planted | not all revealed | reader incomplete |118| Moral ambiguity | unclear right | tension held | no clean ending |119| Emotional range | intensity varies | quiet + explosive | full register |120| Real cost per choice | cost stated | accumulates | no free climax |121122If a draft rounds a sharp edge safer/generic → rewrite.123124---125126## Anti-slop (project + single)127128- Tier-1 kill on sight; Tier-2 ≤2/paragraph; Tier-3 delete all filler129- Em dashes ≤2/page; zero "not just X, but Y"130- No topic-sentence machine, list abuse, hedge parade, transition addiction131- Fiction AI tells (CRAFT §6): "a sense of…", "eyes widened", "wave of emotion", etc. — kill132133Full lists: `references/autonovel-anti-slop.md`.134135---136137## Pitfalls138139- Lists instead of prose for weighty scenes140- Throat-clearing openings ("In this land…")141- Info-dump >100 words without action/dialogue142- Self-review at book scale (stability trap doubles) — use `narrative-revisor` / separate pass143- Ledger drift / voice drift across chapters144- Dumping full manuscript into a 16K–32K context145- Expanding a skill test into a pipeline without being asked (book-scale → `book-pipeline` / `book-writer`)146- Skipping `scripts/check_manuscript.py` before export-ready147- Offering "Act II next?" after a short sample when the user only wanted a test — stop at the sample148149## Verify150151- [ ] Read aloud — person who has lived, not press release152- [ ] Tier-1 search = zero153- [ ] ≥1 surprising sentence154- [ ] Stability 7/7 at the grain you shipped (scene / chapter / book)155- [ ] Project mode: ledger statuses match reality; no dangling plants at export156157## Book-scale ownership158159This skill owns **craft inside a scene/chapter**. The `book-pipeline` skill owns architecture, folder convention, export, publish routing, and multi-lane orchestration. The `book-writer` profile owns the loop end-to-end.160161When book work spans craft + models + CLI + market + publish: **delegate lanes**. Do not solo the whole novel from one profile.