David WalshSubscribe
Field report · Hours, not years

I wrote The Unseen Alliancewith Claude. Here's the plugin that held it together.

Fifty chapters. Six POV characters. An orc war councillor, a goblin spymaster with three fingers and one eye, an alchemist in first contact with something older than civilisation, and a peace treaty signed in the architect's blood. A novel that would have taken a decade to write by hand — Claude drafted it in hours, and the plugin held the line on every physical, temporal, and voice anchor from Chapter 1 to Chapter 50. This is how.

THE
UNSEEN
ALLIANCE
A novel of the Greenblood Accord
50 chapters · orc · goblin · human
David Walsh
50
50
Chapters
6
POV characters
9 + 5
Validators · Critique stages
0
Continuity bugs shipped

There is a specific way that novels written with LLMs fall apart, and it happens somewhere around chapter twenty. The model forgets that your spymaster lost two fingers eight chapters ago. It has the orc protagonist use a metaphor no orc would ever reach for. It slips a season between scenes. It gives a character a crown in a culture that has refused thrones for three thousand years. Once drift begins, every subsequent scene compounds it.

I hit this wall around chapter twenty of The Unseen Alliance — a fantasy about an orc war councillor, a goblin spymaster, and the alliance they build against human expansion while something older wakes up underneath them. The manuscript was eating itself alive.

So I stopped writing the book, and started writing the thing that would write the book. When the plugin was finished, the novel was a weekend's worth of runs away. I had both: claude-novel-plugin, and The Unseen Alliance, 50 chapters, shipped in hours of wall-clock time instead of the decade a manuscript like this would have taken by hand.

I'm not going to pretend I pushed a Claude-sized chunk of manuscript around until it sounded like me. The book is written with Claude — the prose, the dialogue, the scene-by-scene drafting. What I wrote was the outline, the cast, the rules of the world, and the opinions about what the book was for. The plugin did the rest. This post is about the plugin.

i

The plugin, in one sentence

A Claude Code plugin that splits novel-writing into ten narrow commands orchestrated across three pre-writing validators, six drafting agents, and a five-stage critique pipeline — each stage with its own context, its own job, and its own refusal to do anyone else's — so no single prompt ever has to hold the whole book in its head.

Interactive 01 · The bible

The character bible is the single source of truth.

Every character is a markdown file committed to an Obsidian vault. Physical heartbeat, voice, wants-and-needs, flaw, relationships, arc, chapter-by-chapter appearance table. The model never invents a fact about a character — the /novel-character command builds the file, the librarian reads it, and every subsequent scene writes to it. Below are the six principals of The Unseen Alliance, pulled straight from their vault entries.

~/unseen/bible/ · grukk.yaml
interactive · character bible
Principals
GI

Grukk Ironjaw

Protagonist · Warrior-diplomat · Warrior-diplomat · co-founder of the Unseen Alliance · Clan Ashfang · son of the disgraced Vorath Ironjaw
POVOpens Ch. 1Closes Ch. 50Three copper-banded braidsAmber eyes
Six and a half feet tall — large for an orc, not the largest in any room. Broad and dense, built for endurance. Deep grey-green skin, darker across the shoulders. Heavy, blunt jaw scarred by a mace-blow at twenty — the name Ironjaw. Tusks filed to working length. Amber eyes, unusually warm for an orc; people say he looks like he is listening even when no one is speaking. Black hair in three tight braids banded with copper. A scar runs from right temple to jaw — a gift from a border skirmish he never talks about. Carves small wooden figures when he is thinking.
Patience — a virtue so rare among orcs that many mistake it for cowardice. Listens before he speaks, considers before he acts, de-escalates before he draws steel. Dry, understated humour; a gift for the perfectly timed observation. When his patience finally breaks, the effect is devastating precisely because it is so rare.
Wants
To build something, not just hold the line — to honour Draghur's last command.
Needs
To stop fearing that he will become his father — or betray him by becoming something harder.
Fatal flaw
Understands why people do cruel things; carries the weight of every compromise he has ever made. Understanding does not mean forgiving.
Draghur's last words — 'Build something, boy. Don't just hold the line.' — as a personal commandment.Kills Brakkar with his bare hands after Brakkar murders Mira. The most viscerally violent scene in the novel.Hates killing. Does it when he must, cleanly, without cruelty. After battle, is quiet for hours.
Warchief Draghur
mentor · surrogate father
Mira of Clan Ashfang
wife · dies Ch. 46
Skitter Quickfang
co-founder of the Alliance
Brakkar
rival · nemesis · killed Ch. 46
Old Narga
lieutenant · dies Ch. 36
Needle
philosophical foundation
Act I
Ch. 1 — Greenblood summit. Navigating politics in Draghur's shadow.
Act I
Ch. 8 — Private audience with Draghur. Named successor. Warned about Brakkar.
Act I
Ch. 11 — Flees the capital after Draghur's murder. Hunted.
Act II
Ch. 16 — Arrives at Clan Ashfang. Meets Mira.
Act II
Ch. 21 — Forges the Unseen Alliance with Skitter.
Act III
Ch. 36 — Blacktusk rescue. Narga dies at the tunnel chokepoint.
Act IV
Ch. 46 — Mira dies. Grukk kills Brakkar with his bare hands.
Act V
Ch. 50 — Accord of Ashes signed. Grukk with Vex, looking at a changed world.

The real enemy is drift.

The bible is necessary but not sufficient. You also need a step in the pipeline whose only job is to check— to run the draft against the bible and the timeline, flag every contradiction, and refuse to let the scene through until they're resolved.

This is the single most important insight I arrived at. Generation and verification must be separate agents. The prose model is incentivised toward fluency; it will paper over small contradictions to keep the sentence moving. The continuity audit — Stage 5 of /novel-critique — has no such incentive. It reads with a clipboard and it is explicitly read-only: it never rewrites, only files anchors that the stage-6 reviser acts on.

The continuity agent's job is to be the most boring member of the team. It doesn't write. It doesn't suggest. It files flags.
Interactive 02 · The continuity pass

Three drafts. Three classes of mistake. Three toggles.

Below are three passages from the shipped manuscript — a Ch. 49 physical heartbeat, a Ch. 31 timeline anchor, a Ch. 18 voice sample — each paired with a plausible bad-draft variant the continuity auditor would catch. Toggle to the after-pass view to see the real book prose; the raw-draft view is what could have shipped without the auditor, with flags filed against bible and timeline anchors.

~/unseen/continuity/ · skitter's-hands.diff
interactive · continuity pass
Opening of Ch. 49 — every detail is an anchor the bible enforces. · Ch. 49 · "Sign It in My Blood"
Raw draft from prose agent
4 flags · 0 auto-fixed
The Accord of Ashes was Skitter's masterpiece, and she was going to sign it with the wrong hand. The thought amused her as she stood in the corridor outside the council chamber, flexing her four-fingered left and her five-fingered right, deciding which would hold the quill. Brakkar had taken the fingers. He'd taken an eye, half an ear, and six months of sleep that she'd never get back. He had not taken her penmanship. Her grey eyes tracked the delegates as they filed past. "Chancellor." Pinch at the door. "Delegations are assembled." Skitter adjusted the patch over her left eye and straightened her coat.
Flags · cross-referenced against bible + timeline
live
high
Finger count wrong

Skitter lost two fingers to Brakkar's cage in Ch. 30 — left hand has three, not four. Reinforced in Ch. 37, 41, 49.

bible:skitter.physical · anchors: Ch.30 §7, Ch.37 §2, Ch.41 §1, Ch.49 §2
high
Eye colour wrong

Skitter's eyes are "enormous, amber-gold, giving her the unsettling appearance of seeing everything at once." "Grey" has never appeared for any goblin in the manuscript.

bible:skitter.physical · 0 prior "grey eye" refs in 312 goblin-POV scenes
high
Eyepatch side inverted

Brakkar took the right eye (Ch. 30), reinforced Ch. 37 ("the patch"), Ch. 49 ("One eye. The other gone in a cage."). Left-eye patch breaks the line-of-sight geometry of every scene since Ch. 30.

bible:skitter.physical · geometry-check: Ch.49 §31
mid
Half-ear callback missing

Skitter lost the upper half of her left ear at age seven to a rat-trap — she wears it "like a badge" and never covers it. Post-torture scenes typically call it back when she appraises her reflection.

bible:skitter.physical · anchor: Ch.2 §3
Toggle to see what the continuity agent rewrote.

One scene. Ten commands. Twenty-odd agents.

Every scene in The Unseen Alliance is produced by the same sequence of commands, wired into Claude Code as a plugin. The commands are narrow: /novel-outline holds the structure, /novel-character the cast, /novel-world the rules. /novel-validate runs three pre-writing stages in parallel — Narrative Architecture, Character Readiness, World Consistency — across nine validators (plot-hole detector, stakes auditor, pacing forecaster, arc completeness, voice profile auditor, relationship web, rule-system auditor, timeline feasibility, setting coverage). If any one is red, the draft is blocked.

Only then does /novel-write run. It dispatches a librarian (who loads only the context this one scene needs), a prose agent (who drafts 2,000-2,500 words), and stops. The draft goes into /novel-critique, which is five sequential stages — plot & structure, character development, prose quality, dialogue, continuity — and inside each stage, three Critics flag in parallel, three Judges vote in parallel, three Implementers rewrite in parallel. Stage 5 is the exception: continuity is read-only, and its flags promote to a dedicated revise-task.

That's the entire trick. Give each prompt a narrow job and a narrow view, and the whole system scales further than any single prompt ever could. Below is the pipeline as it ran for Chapter 49 — the signing of the Accord of Ashes, Skitter's last scene. Click through the stages, or press Play.

~/unseen/pipeline/ · ch-49.run
interactive · 6-stage scene build
01 · Beat Read only this scene's slot in the outline. Compile a focused brief: cast, POV, goal–conflict–outcome, beats, page target. Nothing else.
Agent output
// loaded from outline/act-v/ch-49.yaml
scene:
id: "49-signing"
pov: Skitter
cast: [Skitter, Grukk, Needle, Narlak, Callum, Whisper]
location: "Hollowdeep — cavern council chamber"
time: "six weeks of negotiation after Brakkar's fall · early spring"
goal: "Skitter delivers the signing speech and signs last"
conflict: "peacemaker overrides spymaster's tick on a vetted priest"
outcome: "Accord signed in her blood · Narlak signs last, cold"
beats: 7
pages: 14
mood: "held silence → speech → the breath → the blade"
What this stage is really doing
/novel-outline — the architect

Reads only scene 49's slot in the outline, not the whole 50-chapter arc. Compiles a focused brief: who is on-page, what Skitter must accomplish, what must be true when the chamber empties. Keeps the prose model from wandering into the hilltop coda that belongs to Ch. 50.

Stage 1 of 6 · 17%
The prose model writes. The librarian remembers. The nine validators refuse. The critics flag. The judges vote. The reviser touches only what was promoted. The scribe keeps the books. No one does anyone else's job.

What this is, and isn't.

The book is written with Claude. I want to be plain about that. The sentences in The Unseen Alliance were drafted by an LLM in the same sense that a film is shot by a camera — the tool did the mechanical work, in hours of wall-clock time rather than the years a manuscript of this length would have taken by hand. What I brought was the outline, the cast, the rules of the world, the iteration on the plugin, and the opinions about what the book was for.

It's the same principle I lean on at work, translated into fiction: make some things easy and other things hard. The plugin makes drift hard. It makes continuity cheap. It makes the prose model choose between fluency and fact, and then it has nine validators standing behind it, and five critique stages in front of it, ready to say no.

If you want to try it

The plugin is on GitHub under MIT. It runs as a Claude Code plugin — install, point it at a vault and an outline, run /novel-init. The bible, validators, and pipeline above are lifted straight from the Unseen Alliancerun; they're what a real project looks like, not a demo.

If you're using it on your own book, I'd love to hear what breaks. That's how it got this good.

The Unseen Alliance

A novel held together by the thing that wrote it.

Available now in paperback and Kindle. Fifty chapters of orc, goblin, human, and the things that live beneath the stone.

THE
UNSEEN
ALLIANCE
A novel of the Greenblood Accord
50 chapters
David Walsh
50