Skip to content
Public template

About

A file-based novel workbench for Claude Code — your manuscript is the source of truth, the story bible derives from it, and nothing changes without your greenlight.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Novel Workbench

A file-based studio for novel projects that fuses your own drafting with AI refinement. Built on Andrej Karpathy's LLM Wiki pattern, adapted for fiction.

Genre-neutral, writer-neutral, and designed to be calibrated to you rather than used as-is.

What you need: a paid Claude Pro or Max subscription (Claude Code isn't on the free tier), and about 20-30 minutes to install. No coding required. Obsidian is optional — it's the reading window, not the engine. Full walkthrough in SETUP.md.


Ten minutes with the example

Two worked example projects ship with the repo, so every operation does something real before you've written a word into it. Install, open a terminal in this folder, run claude, and try these in order:

/query example-lanterns what do we know about the fog

A cited answer, read from the wiki rather than from the manuscript. The citations are the point.

/lint example-lanterns

Two real continuity findings. They're planted on purpose. Note that lint reports and changes nothing, and that it flags contradictions rather than resolving them — canon calls are yours. The answer key is in projects/example-lanterns/wiki/sources/chapter-map.md; read it after.

/refine example-lanterns ch4-wip.md

There's a deliberately bad draft in there. Watch what it catches, and how it hands you findings in approvable batches instead of just rewriting your prose.

That's the system. Everything after this is your material going through it — GETTING-STARTED.md takes you from here to your own manuscript in about an hour.

The two examples are deliberately nothing alike. projects/example-lanterns/ is a three-chapter novel in progress: quiet literary register, a real wiki, a full writers'-room cast, two planted continuity errors, a bad draft. projects/example-tutorial-zone/ is a finished short story in comedic LitRPG, with numbered sections instead of chapters and System windows instead of prose. Between them, nothing in the system gets to assume there's only one shape of book. Delete both when they've served their purpose.


The writers' room

Ask one model to write a scene with five characters and you get five characters who sound like the same person doing different jobs. Not because it can't do voices — because it's holding one prose voice, one plot obligation, and five registers at once, and the registers are the cheapest thing to drop.

So don't ask it to. Give every character their own agent. Each one holds a single register, has read only its own character sheet, and — this is the part that matters — has no obligation to make your scene work.

1. BRIEF          your beats, in plain language
                          │
2. SKELETON       scene-builder → setting, cast, blocking, beats, the turn
                          │        ⛔ GREENLIGHT GATE
3. PERFORMANCES   all performers in parallel, from the same approved skeleton
                          │        (+ embedded-voice agent, + side-cast)
4. WEAVE          the room-runner composes the prose, in one voice
   4.5 LINT       composition lint on its own draft
                          │
5. DELIVER        draft to drafts/, header carries pushback + proposed canon
                          │        ⛔ nothing graduates without you

One rule holds it together: performers act, only the weaver writes prose. A performer returns dialogue, physical business, and intent — never narration, never finished sentences. Break that and you get five competing narrators and a draft that reads like a committee, because it is one.

The second-most valuable thing it produces is refusal. Every performer is instructed to push back on beats that bend their character out of shape. An agent that has read one character sheet and nothing else is a genuinely useful check on your outline — and when four of them independently object to the same beat, the beat is wrong. That's information no single-pass draft will ever give you.

Read one run, start to finish → — a real /scene on the example project, including the performer who refused a beat and the author who took the refusal. It's the fastest way to understand what this is for.

The cast ships with the repo, so /scene example-lanterns <your beats> works on a fresh install without building anything. How to build your own →

The room is not the default loop, and it is not cheap. A full room is eight or nine agent invocations — each performer is a separate agent with its own fresh context, which is exactly why the registers hold, and exactly why it costs. Budget roughly an order of magnitude more than a single-pass draft, spent in a burst. On a Pro or Max plan the thing that bites isn't a bill, it's hitting your usage limit mid-book.

Use it when a scene is dialogue-dense with three or more distinct voices, or when you're not sure your outline works. For everything else, write it yourself and run /refine — which is the system's actual daily rhythm. The full cost breakdown and how to control it →


What holds it up

Your manuscript is the source of truth. The wiki — characters, concepts, lexicon — is derived from it and cites it. The agent does the bookkeeping while you write and make the calls. Your own voice, in raw/voice-samples/, plus the craft rules drive every refine pass, so the output is you, sharpened — not a generic AI register.

Three layers, strict ownership:

Layer Who owns it The rule
raw/ You Immutable. The agent reads it and never writes to it.
wiki/ Agent proposes, you approve Derived. Every claim cites a source in raw/.
CLAUDE.md + wiki/locked/ You The rules and your authored intent. Enforced, never rewritten.

The operations

Talk to the agent in plain English, or use the slash commands.

/new-novel Start here on a cold start. Scaffolds a project, calibrates it, seeds the wiki.
/chart Plan a stretch you can't yet see the way through — one question per session.
/refine Sharpen a draft against your voice + craft rules. The core loop.
/scene Run the writers' room.
/ingest Integrate new canon; update the wiki.
/query Ask the wiki a canon question; get cited answers.
/lint Audit for contradictions, orphans, drift, and who-knows-what-when.
/table-read A blind reader's experience of a chapter — sags, hooks, predictions.
/expand-chapter Grow underfed chapters where the growth is earned.
/calibrate Tune the whole system to your genre and voice.
/setup-obsidian Walk through installing and wiring the optional dashboard plugins.
/start-fresh Strip the example projects and hand back a bare workbench.
/inbox-sweep Triage whatever you dropped in _inbox/ away from your desk.
/close-session Append to log.md and commit. Run it at the end of a session.

Fourteen commands, four operations — CLAUDE.md §3 maps every command onto the operation it serves. Everything is findings-first and greenlight-gated: proposals with before/after and rationale, nothing applied until you approve the batch.

Start here

  1. SETUP.md — get Claude Code running (~20 min, no coding required).
  2. GETTING-STARTED.md — your manuscript into the system in an hour.
  3. CLAUDE.md — the master rules the agent reads first, every session.

The shape

writing-system/
├── CLAUDE.md                  ← master schema (the rules)
├── craft/                     ← SHARED, genre-neutral
│   ├── voice-and-prose.md         the de-AI kill list
│   ├── structure-and-scene.md     the turn, want/obstacle/cost, information economy
│   ├── tone-and-calibration.md    the dial, voice separation
│   ├── technique-library.md       how to derive craft moves from your comps
│   └── lanes/                 ← THE GENRE LAYER. one file per project
├── author/                    ← SHARED: go-to-market, platform, readership
├── docs/                      ← the writers' room, adapting the system, dashboards
├── .claude/                   ← slash commands + your cast of agents
└── projects/<your-book>/
    ├── CLAUDE.md              ← this book's voice + locks
    ├── raw/                   ← source of truth — never edited by the agent
    ├── wiki/                  ← derived bible (entities, concepts, locked, sources)
    ├── planning/              ← pre-canon: open story questions (/chart)
    ├── drafts/                ← fusion-loop workspace
    └── outputs/               ← reports + exports

Three rules that never bend

  • raw/ is never edited by the agent. Work on copies; preserve originals.
  • wiki/locked/ — protected beats and refrains — is enforced, never rewritten.
  • raw/voice-samples/ is calibration only. Never copied or adapted into prose.

The first two aren't only instructions: .claude/settings.json denies the agent's editing tools any path under raw/ or wiki/locked/ outright, and the shell isn't pre-approved, so anything trying to reach around that has to stop and ask you.

Adapting it

Run /calibrate <project>. It interviews you about genre, comps, POV, tone, and what's protected, then writes your lane file and project schema together.

Everything genre-specific lives in craft/lanes/ and projects/<p>/. The rest of craft/ is structural and shouldn't need editing when you change genres — see docs/adapting-the-system.md.

The two lane files in craft/lanes/ ship as examples, not defaults, in deliberately opposite genres. Delete both once you've written your own.

If you'd rather skip the examples entirely, /start-fresh strips them and hands back a bare workbench.

Coming in v1.1

A standalone HTML dashboard, in progress on feature/html-dashboard. The Obsidian dashboards are the supported path in v1.

License

MIT — see LICENSE. The license covers the template. Anything you write inside your copy is yours, unencumbered; you don't have to open-source your novel because you used an open-source template to write it. Credits and third-party licenses in THIRD-PARTY.md.

About

A file-based novel workbench for Claude Code — your manuscript is the source of truth, the story bible derives from it, and nothing changes without your greenlight.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages