Scriptorium
Local document skills for independent writers — copy, correct, illuminate.
A Claude Code plugin that works a text the way a medieval book workshop did. Your files stay on your machine — your text goes only where your Claude conversations already go (Anthropic's API), and nowhere else: no extra services, no uploads, findings written straight to disk. Built for fidelity over flash: precision before recall, nothing auto-applied, the writer always has the final say.
- Runs in Claude Code
- Manuscripts stay on your machine
- No analytics, no accounts
- You rule on every change
extract
A faithful cleanup pass that turns a messy extraction — a PDF→text or OCR dump, pasted e-book text, an auto-transcript — into clean, re-flowed prose: page numbers and running heads stripped, shattered sentences reassembled, words broken across a line-end rejoined. It’s the upstream stage the other skills want — clean input means fewer artifacts hiding real errors for the Corrector, and reliable, Ctrl-F-locatable quotes for the Illuminator. Its signature is fidelity over fluency: it removes only what is objectively not the author’s words, and defaults to keep whenever a line might be the author’s rather than an artifact — every judgment call is flagged, never a silent cut. A mechanical sweep proposes candidates; you dispose. Book-length input fans out into parallel clean/verify agents.
Example
> Clean up this OCR dump — ~/scans/chapter-3.txt — keep the words exactly. # it proposes cuts; you rule on each. crude local sweep first: $ python skills/extract/extract_check.py chapter-3.txt # book-length? it fans out into parallel clean + verify agents.
proofread
★ Proven on real work — ran on a published author's book (a writer with a wide readership) and surfaced dozens of confirmed, hand-validated findings.
A precision-first proofreading pass that finds objective language errors only —
wrong-word swaps (lead/led, its/it’s), dropped words, doubled words, subject-verb
agreement, punctuation, typos — and never touches style, voice, or a deliberate choice.
A false alarm on a polished writer is worse than a missed error, so a skeptical verifier
defaults to reject, every finding carries a confidence tier, and nothing is
auto-applied: you get a triage table to rule on. It learns your voice over runs through
an anti-patterns.md file that remembers both your real tics and your
intentional quirks.
Example
> Proofread ~/writing/my-essay.md # book-length? it fans out into parallel find/verify agents. # or run the standalone mechanical sweep — pure Python, no model: $ python skills/proofread/proofread_check.py my-essay.txt -o findings.csv
collate
A citation audit that checks a document — or a podcast transcript — against the author’s own provided sources: does the quote really appear in the paper it’s attributed to, do the cited numbers match, does “the study says X” actually hold, does the document contradict itself? It works only from source files you supply on disk — never the open web — so the folder is the entire universe of ground truth. A false “misquote” accusation impugns a careful author, so it’s the worst output the skill can produce; the verifier defaults to reject, and caption garble in auto-transcripts is flagged as a transcription artifact, never as the author’s error.
Example
> Audit this Based Camp transcript against the sources in ~/research/caplan/ # → episode.txt checked claim-by-claim against the folder’s papers # → writes episode_audit.csv: each quote, its source, the verdict
inside-frame
★ The house favorite — the beefiest skill in the scriptorium, and the one I plan to run on every book that might change how I live.
An enthusiastic, analytically sharp review of a book or essay from inside its own framework — in the Astral Codex Ten tradition of long, rigorous, openly enthusiastic reviews — welded to a personal operating manual of concrete, implementable frameworks drawn from the text: an if/then table traceable to passages, a worksheet that forces an honest admission, the one change to install now. Built for heterodox or unconventional works you want to understand on their own terms rather than hold at arm’s length. Not a jailbreak — it navigates Claude’s own evenhandedness carve-out, that a request to argue for a position is a request for the best case its defenders would give.
Example
> Give me a steelman review of The Pragmatist’s Guide to Relationships, inside its own frame — plus an operating manual I can actually use. # portable version: fill skills/inside-frame/template.md, attach the # PDF at the top of a fresh Opus chat, set thinking effort to high.
index
A precision-first indexing pass that turns a clean text into two local artifacts a review
can stand on: a book_vocabulary block — the author’s own coined or
redefined key terms, each with the author’s definition and a Ctrl-F locator, formatted to
paste straight into inside-frame’s template — and a quote-bank of the most
load-bearing verbatim quotes (theses, definitions, striking claims), organized by theme.
It’s the helper that feeds the Illuminator: that vocabulary block does the heaviest lifting
in a frame review, and generic vocabulary is exactly what collapses an operating manual
into generic advice. Its discipline is selectivity over completeness — ~8–15 terms
and ~20–40 quotes a book, because the cut is where the value is — under a verbatim rule
where every quote appears exactly in the source, certified by a mechanical gate.
Example
> Index The Pragmatist’s Guide to Relationships for an inside-frame review. # → *_vocabulary.md: the author’s coined terms, ready to paste into inside-frame # → *_quotes.md: ~30 load-bearing verbatim quotes, organized by theme # then the verbatim gate certifies each quote is really in the source: $ python skills/index/index_verify.py book_quotes.md the-book.txt
inside-frame.
Install
A Claude Code plugin
- Open the Scriptorium repo in Claude Code.
- Tell Claude to install the plugin for you — it’s a standard local plugin, so you don’t need to wire anything up by hand.
- The skills then trigger from their own descriptions: just ask Claude to proofread a draft, check your citations, or review a book inside its frame.
The inside-frame template and the proofread mechanical sweep
also work standalone, without the plugin installed.