Gates read from disk
An agent can say the outline was approved. Gate 1 checks the outline file's frontmatter. Claims do not unblock prose; artifacts do.
A working novelist's daily tool for Claude Code
Vellum is a Claude Code plugin for people writing books. One command runs the chapter loop. Three hard gates read their evidence from disk. Everything else is advisory, and silent when clean.
Why Vellum
Drafts drift toward the statistical average. Critique leaks into drafting, and everything starts flattering itself. Continuity dies at context compaction, somewhere around chapter nine. “Please be consistent” is a wish, not a mechanism.
An agent can say the outline was approved. Gate 1 checks the outline file's frontmatter. Claims do not unblock prose; artifacts do.
The writer cannot read the critiques. The critics cannot write prose. The coordinator owns the gates from artifacts only.
Dead characters reappearing, promises out of order, props teleporting, knowledge arriving before its chapter — a stdlib-only engine checks what a hash already knows.
A fixed one-screen state card, rebuilt mechanically and printed at every session start. Put the manuscript down for a month; pick the thread back up in one read.
Call a finding intentional and it is recorded as an exemption in your own words, never re-raised. If the underlying fact changes, it re-arms exactly once.
Prose tells, continuity lints, voice drift: they surface only when they have something to say, and stay silent when clean.
The gate model
Each gate reads its artifact from disk — never a claim from chat. Predicates fail open on genuine uncertainty: a missing Python runtime can never mis-block you. The one deliberate exception is gate-input protection, which fails closed when it cannot verify session context.
Any write into manuscript/chapters/ requires an author-approved outline. Enforced by hooks on Write and Edit and on Bash: redirection, heredocs, sed -i, and copy-laundering are all checked.
Satisfied bywork/outline/chapter-NN.md · approved: true · state check clean
A chapter you flag pivotal: true cannot be accepted without a verdict from an agent that saw the chapter and the previous tail — and nothing else. No outline, no plan, no context to be fooled by.
Satisfied bywork/critique-reports/blind-chapter-NN.md · verdict ≠ LOST · self-recorded run stamp
Export waits for a PASS from the four-reader beta protocol: every axis at least 7, mean at least 7.5, no put-down point in chapters 1–3. The engine enforces the threshold; the muse does not get a vote.
Satisfied bywork/critique-reports/readiness-report.md · verdict: PASS
Everything else is advisory and silent when clean: the post-write prose net, cold-read BLOCKER issues, the disruptor lane, the persona panel. Two further gates — voice_debt_gate and stop_gate — ship off by default.
Inside the plugin
You talk to the muse. The muse routes isolated specialists. The specialists use the engine and the skills. Hooks enforce the rules no one can talk their way around.
First session
No Node, no pip, no WSL, no build step. You need Claude Code, Git (the hooks run under its bundled bash), and a Python ≥ 3.8 interpreter on PATH.
# in Claude Code
/plugin marketplace add FiredMosquito831/my-writing-companion
/plugin install vellum@my-writing-companion
# in your novel folder
/vellum:init
/vellum:status
/vellum:write-chapter next
Setup interviews you — genre, POV, progress, and three to five samples of your own prose. Those samples become the measured voice baseline. The engine is copied into your project and the first state rebuild runs for you.
The chapter loop then runs outline → your approval → draft → critique → acceptance → knowledge capture. Interrupt anywhere; the state card carries resume. Only you set the pivotal flag, and only you accept a chapter.
Architecture
The deterministic engine, the hooks, the agents, and the skills each own a different kind of decision. None of them is asked to do another's job.
scripts/vellum and scripts/vellum_lib/. Python ≥ 3.8, stdlib only. State rebuild and check, ledger continuity, word bands, measured style statistics, context packing, exemptions, and export — markdown bundle and a stdlib EPUB. Copied into your novel repo so it runs from the project root.
Harness-enforced: the outline gate on both write paths, the advisory post-write prose net, and the session lifecycle — state card on start, snapshot before compact, pending-capture reminder on stop, mechanical close-out when the writer finishes.
16 specialists, 11 on Opus and 5 on Sonnet. Critics and readers are read-only by frontmatter; the writer may write only under manuscript/ and work/drafts/. Critique, drafting, and memory capture never share a context.
The fourth layer is the methodology: 34 skills whose resources load on demand — craft references, ledger schemas, gate rubrics, the cold-read protocol, voice work, and the series operator's manual. Read the architecture in full →