[jdbb]studio
● Build history · the book factory rev 2 · 2026-10-13

Factory map

feb 2026 → oct 2026

eight months of building a machine that builds books

git rev-list --count mainevery commit to the factory
738
ls db/migrations | wc -levery schema change
59
shelley ls --all | wc -levery agent session on the VM
353
cat summary.txt

tl;dr

The book factory started on 23 February as a production calendar: a Go server, a single-page app, one manuscript transmittal form. Everything since is the plumbing that turns a styled manuscript — any .docx whose paragraphs carry our style names, from whatever editor — into a typeset print PDF and an EPUB, tells the author and the press where the book is, and lets an agent do the dull parts without breaking anything.

None of it was planned as one system. Each layer answered a failure of the one before. This page is the map after the fact.

pulse

commits / month (main, all authors)
90busiest day · 18 Sep
31klines of Go
16klines of Go tests
9checkpoint tags

the seed (feb)

2026-02-23  a production calendar with a transmittal form, per-project email buttons, a daily backup and /healthz — all on day one.

That one habit — the author fills in a form, the press never retypes it — became the transmittal → spec → template → build chain that everything later hangs off.

timeline

how it weaves

AUTHOR & PRESSportal · calendar · transmittal · emails
INTAKEtransmittal · style names · spec
BUILDpandoc → Typst → print PDF · EPUB
WATCHlive floor · factory_events · runs
AGENTSShelley sessions · subagents · handoff prompts
PUNCHLISTshared checklist, notes both ways, archived to /admin/runs
GUARDRAILSbackups · offsite verify · restore drill · checkpoints
THEMETerminal Folio tokens · one theme bar · every page

four loops

[1] a book

  1. transmittal
  2. styled .docx
  3. spec + template
  4. Typst / EPUB build
  5. proof → author

[2] a fix

  1. Jenna adds an item to the punchlist
  2. agent triages, answers on the item
  3. commit + test
  4. export to /admin/runs

[3] a session

  1. handoff prompt
  2. work from the punchlist
  3. context at ~60 %
  4. new dated handoff

[4] publish

  1. one HTML file in jdbbs-public
  2. read from disk
  3. live, no rebuild
  4. (you're reading one)

the parts

patterns that kept repeating

  1. every failure grew a layeran empty customer nav became shared chrome plus a convergence test; a worrying backup became offsite verification and a restore drill.
  2. the author's words, not oursthe transmittal, the spine paragraph, the style names — the factory reads what the author already wrote.
  3. receipts over claimsa checkpoint tag, a test, a run archive — "done" comes with something you can re-open.
  4. one source, two sidesadmin and customer pages share one nav, one theme, one registry.
  5. publish from disktalks, handouts, and this page are files, not deploys.

thanks

This page borrows its shape — box header, shell prompts, # bars, loops, parts, patterns — from the system map shared by royalaid, a Farcaster mutual. Thank you for showing how a build log can read like a map. Ours adds the studio theme bar and a phone-sized layout.

method · counts from git log on main, migrations from db/migrations, sessions from the Shelley DB. Regenerated by scripts/build-history.py (planned). Numbers as of 2026-10-12.