A publishing house in a vault.
I write as a hobby, on my weekends and days off, and I don't want to spend what little time I have on peripheral tasks instead of the writing itself. So I asked myself: if I had an unlimited budget to hire a team around me, what specialties would I need? Developmental editors, line editors, copy editors, proofreaders, beta readers, a production department for the print and ebook files. This repo is my attempt to emulate that team, packaged as an Obsidian vault wired for Claude Code. The idea is simple: you write the fiction; the house does everything else, from your first note to the files you upload to Amazon KDP.
One principle runs through the whole system: the AI never touches your prose. Every editorial pass produces a review document with suggestions; you apply changes by hand, or reject them. The only files the machine writes are reviews, tracking notes, and the final production builds - never the body of the chapter files, which is completely off limits.
- A complete editorial pipeline, modeled on professional fiction publishing, big-to-small: quick clean → beta read (simulated reader personas, run cold and isolated so they can't see your notes) → bible reconcile → developmental edit → line edit → copy edit → listen (hear each chapter read aloud) → proofread. The heavier passes harden their own output with an internal critic sub-agent before you see it.
- Story management: idea capture (
_Ideas.md), story scaffolding (/new-story), per-chapter state sync of timeline/characters/locations (/update-chapter), continuity audits, a dashboard of all stories, and archiving. - Production: KDP-ready EPUB and 6x9 paperback interior PDF with title page, TOC, and your standard back matter (
/story-kdp-export), manuscript PDFs for beta rounds (/pdf-convert), an e-ink readability check for your cover (/story-cover-check), and a print-cover pre-flight checklist (_KDP cover pre-flight.md). - A style contract: the
writing-styleskill holds your aesthetic (built by interviewing you and reading your prose), and every editorial pass judges against it, so the machine polishes toward your register instead of generic taste.
The full stage table and rules live in CLAUDE.md; a reader-friendly command reference is in _Commands.md.
Dotted arrows are optional or conditional steps. /story-audit can run at any point, and /pdf-convert builds an optional manuscript PDF for a beta-read round, so neither is drawn. /archive-story also takes abandoned stories.
flowchart TD
subgraph LEGEND["Legend"]
direction LR
keymanual["Done by hand"] ~~~ keycommand["Command"]
end
LEGEND ~~~ NS
WS["Write your style contract, once<br/>/writing-style"] --> NS["Scaffold the story<br/>/new-story"]
I["Add ideas to _Ideas.md"] -.-> NS
NS --> W["Write a chapter"]
W --> UC["Sync Timeline, Characters, Locations<br/>/update-chapter ch-XX"]
UC -->|next chapter| W
DE["Informal chapter check<br/>/dev-edit ch-XX"] -.-> W
CS["Re-entry brief after time away<br/>/continue-story"] -.-> W
UC -->|draft complete| S1["Self-revision"]
S1 --> S2
subgraph HOUSE["The AI staff · never touches the prose"]
S2["Quick clean<br/>/story-quick-clean"] --> S3["Beta read (reader personas)<br/>/story-personas · /story-beta-read"]
S3 -.->|another round| S3
S3 --> S4["Bible reconcile (interview, updates _Index.md)<br/>/story-update-bible"]
S4 --> S5["Developmental edit (whole manuscript)<br/>/story-dev-edit"]
S5 --> S6["Line edit (per chapter)<br/>/story-line-edit"]
S6 --> S7["Copy edit (per chapter)<br/>/story-copy-edit"]
S9["Proofread (per chapter)<br/>/story-proof"]
end
S7 --> L["Generate the chapter's audio (per chapter)<br/>/story-listen"]
L --> S8["Listen and fix the flow,<br/>by hand"]
S8 --> S9
HOUSE -.-> R["Review note<br/>with suggestions"]
R --> D{"Do you agree?"}
D -- yes --> A["Apply it to the prose,<br/>by hand"]
D -- no --> X["Reject it"]
A -.->|on to the next pass| HOUSE
X -.->|on to the next pass| HOUSE
subgraph PROD["Production"]
P1["Export the EPUB<br/>/story-kdp-export"]
P2["Build the print-ready paperback PDF<br/>/story-kdp-export"]
P3["Check the cover on e-ink<br/>/story-cover-check"]
P4["Promo files and publication record<br/>/publish-prep"]
end
S9 --> S10["Final read-throughs<br/>(as many as it takes)"]
S10 -.->|your wording fixes| V["Validate each fix<br/>/story-manual-revise"]
V -.->|validated, applied by hand| S10
S10 --> P1
S10 --> P2
S10 --> P3
S10 --> P4
AU["Fill in _Author.md, once"] -.->|back matter| P1
AU -.-> P2
P1 --> KDP["Upload to KDP"]
P2 --> KDP
P3 --> KDP
P4 --> KDP
KDP --> AR["Archive the story<br/>/archive-story"]
classDef writer fill:#a5d6a7,stroke:#2e7d32,color:#1a1a1a
class keymanual,AU,I,W,S1,S8,S10,D,A,X,KDP writer
style LEGEND fill:none,stroke:#8b949e,stroke-dasharray:5 5
| Command | Purpose |
|---|---|
/writing-style |
One-time setup interview that writes the author's style reference (run before the first editorial pass) |
/new-story |
Build a story blueprint from an idea in _Ideas.md, or scaffold an empty novel/novella/short story |
/continue-story |
Re-entry brief for returning to a story after time away |
/update-chapter ch-XX |
Post-chapter state sync, updates Timeline, Characters, Locations, checks Quicknotes |
/dev-edit ch-XX |
Informal drafting-time developmental pass on a chapter (the pipeline's stage 3 is /story-dev-edit) |
/story-quick-clean |
Whole-manuscript triage of obvious language errors before a beta read (stage 1.5) |
/story-personas |
Create beta-reader personas (once, before the first beta read); calibrate hardens them between rounds |
/story-beta-read |
Run a full beta-read round: all pending personas in parallel as isolated sub-agents (stage 2) |
/story-update-bible |
Reconcile _Index.md to the finished manuscript before the dev-edit (stage 2.5) |
/story-dev-edit |
Whole-manuscript developmental edit (stage 3) |
/story-line-edit ch-XX |
Line edit: sentence-level craft on a chapter (stage 4) |
/story-copy-edit ch-XX |
Copy edit: grammar, CMOS, idiom, continuity on a chapter (stage 5) |
/story-listen ch-XX |
Listen pass: chapter prose read aloud for a human flow check (between stage 5 and 6) |
/story-proof ch-XX |
Proofread: typos and formatting on a chapter (stage 6) |
/story-audit |
Full consistency audit across all chapters |
/story-manual-revise |
Validate a single author-decided wording change (grammar, idiom, repetition, continuity) before applying it by hand |
/pdf-convert |
Render chapters into a styled manuscript PDF, for reading a draft as a book (general Markdown-to-PDF skill) |
/story-kdp-export |
Build the KDP-ready files of a story (title page, TOC, standard back matter): the ebook EPUB and/or the 6x9 paperback interior PDF. The EPUB and print PDF are uploaded to KDP directly; no KPF is produced |
/story-cover-check |
Simulate a cover on a grayscale e-ink reader and measure text readability before uploading to KDP |
/publish-prep |
Create promo files and publication record when ready to publish |
/archive-story |
Move a completed or abandoned story to the archive |
- Clone the repo (or use it as a template). The repo root is the vault.
- Open it in Obsidian as a vault, enable community plugins when prompted, and install the plugins listed under Obsidian plugins from Settings → Community plugins. Their settings are already in the vault.
- Install Claude Code and run
claudein the vault folder. - Run
/writing-styleonce. It interviews you (and reads your best prose, if you have some) and writes your style reference. Every editorial pass depends on it; until it runs, they will refuse politely. - Write. Add ideas to
_Ideas.md; when one is ready, run/new-storyand start drafting chapter by chapter. After each chapter, run/update-chapter ch-01to sync the story notes (Timeline, Characters, Locations), and run the editorial pipeline when the draft is done. - Before your first export, fill in
_Author.md(bio + published books); its two sections become the back matter of every book you build.
The repo keeps only these plugins' settings, not their code. Templater and Dataview are needed for the templates; the rest are optional writing comforts.
| Plugin | What it does here |
|---|---|
| Templater | Fills in new chapter files from _Templates/Chapter.md |
| Dataview | Powers the Stats section in each story's _Index.md |
| Iconize | Folder icons |
| Hidden Folders Access | Shows the .claude folder, so you can read the skills inside Obsidian |
| LanguageTool Integration | Grammar and spelling checks as you type (sends your text to languagetool.org) |
| Better Word Count | Word and page counts in the status bar |
| Editing Toolbar | A formatting toolbar |
| Smart Typography | Curly quotes, dashes and ellipses as you type |
| Typing Transformer | Custom typing replacements |
| Outliner | Easier list editing |
| Advanced Cursors | Multiple cursors (Ctrl/Cmd+D adds the next match) |
| ProZen | Distraction-free writing mode (Alt+Z) |
| Pandoc Plugin | Exports notes to other formats through pandoc |
The editorial pipeline needs nothing beyond Obsidian and Claude Code. The export, cover and listen skills call a few standard tools (Linux/macOS; on Windows run Claude Code under WSL):
| Tool | Needed by | Install (Debian/Ubuntu) |
|---|---|---|
| pandoc | /story-kdp-export, /pdf-convert, /story-listen |
sudo apt install pandoc |
| python3 + venv | print PDF builds (WeasyPrint installs itself into a venv on first run) | sudo apt install python3-venv libpango-1.0-0 libpangocairo-1.0-0 libcairo2 libgdk-pixbuf-2.0-0 |
| ffmpeg | /story-cover-check |
sudo apt install ffmpeg |
| ImageMagick | /story-cover-check variants/montage |
sudo apt install imagemagick |
| EB Garamond font | paperback interior body font | sudo apt install fonts-ebgaramond |
| unzip | EPUB verification step | sudo apt install unzip |
| edge-tts | /story-listen (needs an internet connection) |
pipx install edge-tts |
| xmllint (optional) | EPUB well-formedness check | sudo apt install libxml2-utils |
├── CLAUDE.md # the global rules Claude Code follows in this vault
├── _Ideas.md # your idea notebook; /new-story builds from it
├── _Author.md # bio + book list; embedded as back matter on export
├── _Dashboard.base # Obsidian Bases dashboard of all stories
├── _Commands.md # command reference, readable inside Obsidian
├── _KDP cover pre-flight.md # print-cover checklist (spine math, PDF/X-1a, proofing)
├── _Story-length classes.md # flash/short/novelette/novella/novel word-count reference
├── _Templates/ # chapter/character/location/bible templates + folder icons
├── _Archive/ # completed and abandoned stories move here
└── .claude/ # the skills and commands (the staff of the house)
Each story lives in its own folder with its bible (_Index.md), a spoiler-free CLAUDE.md stub, Chapters/, _Characters/, _Locations/, and, as the pipeline runs, _personas/, _reviews/ and _listens/.
MIT. The stories you write in it are, of course, entirely yours. The book covers and screenshot in .github/readme/ and the book blurbs in _Ideas.md are not covered by the license.
I'm Giorgos Sarigiannidis, a fiction writer and self-taught web developer from Greece, who worked as a journalist and a web consultant before moving into programming. For years my stories sat on a hard drive until I finally started publishing them. This repo is a cleaned-up copy of the setup I built along the way to take care of everything else, so I can put all my energy into the fun part, which is writing the stories.
Here's what I've published so far:
More about me and the books at gsarig.com.






