Everything else in this category helps you write. Book Writer writes — you hand it a topic, an audience, and a rough length, and it comes back with a .epub and a ready-to-post book description. MIT licensed, runs on Claude Code and nothing else: clone the repo, open Claude Code in it, and .claude/agents/, .claude/skills/, and CLAUDE.md are picked up automatically.

The run

  git clone https://github.com/tobyilee/book-writer.git
cd book-writer
brew install pandoc epubcheck    # pandoc ≥ 3.0 required; epubcheck optional but do it
claude
  

Then just describe the book:

  주제: 효과적인 SQL 쿼리 튜닝
주요 내용: 실행 계획 읽기, 인덱스 설계, N+1 회피, 실전 사례
대상 독자: 백엔드 주니어 개발자 (SQL 기본은 아는 수준)
분량: 150페이지 정도
이 주제로 책 써줘.
  

Six phases follow, with you in the loop at exactly one mandatory point:

PhaseWhat happens
1 · ResearchWeb, paper, and community researchers fan out in parallel; a lead synthesises 01_reference.md
2 · PlanChapter arc worked backwards from the reader’s journey, with the rejected alternatives written down
3 · ApproveYou approve the plan. Optionally a reviewer critiques it on five axes first
4 · WriteUp to four chapter writers on consecutive batches; each batch is fact-checked or continuity-checked the moment it lands
4.5 · AcceptanceA reviewer in a fresh context judges the whole book. BLOCK means no build
5 · ShipCover generated in the background, pandoc assembles EPUB 3, epubcheck validates

Output is a pair at the project root: {title}-v1.0.0.epub and a matching .md blurb with logline, audience, table of contents, and author bio — written to be pasted straight into a store page or a blog.

Why it’s worth a look even if you never write a book

Three design choices here are worth stealing for any long-running agent pipeline:

The acceptance gate runs in a fresh context. The agent that assembled the manuscript does not get to approve it. A separate reviewer checks chapter completeness, forbidden markers ((사실 확인 필요), [리서치 공백], [미완성]), claims against the research ledger, and cross-references — and a BLOCK verdict stops the build. Self-approval is the most common failure in agent chains, and this is the cheap structural fix.

Verification is scoped to what the writer can’t see. Rather than stacking review round-trips, only two things get independent checking: factual errors in what the writer just wrote, and conflicts with other chapters. The reasoning is stated plainly in the README — a capable model given clear criteria self-checks as it writes, so spend the review budget where self-checking structurally can’t reach.

Research files are kept as a ledger. research/*.md survives re-runs, because the fact-checker diffs claims against it. Provenance you can point at, not a citation the model recalled.

Genre profiles

Voice, structure, and review criteria live in profiles/{genre}/ as three files — voice.md, scaffolds.md, style-checklist.md, the last shared between the writers and the acceptance gate.

genreForReviewed by
tech-book (default)Technical booksfact-checker, on claims generally
practicalCooking, travel, DIYfact-checker, on safety/health/legal facts
narrativeFictioncontinuity-keeper against a story_bible.md
essayEssaysstyle checklist only

Genre is auto-detected in Phase 0 and confirmed, or pinned with 장르: {value} in the prompt. Changing tone means editing one voice.md; a new genre is three files plus a row in profiles/_registry.md.

The learning loop

The part most harnesses don’t bother with: it’s built to keep the operator’s judgement from atrophying under full delegation. Before revealing the plan it asks what chapter flow you expected; the plan ships with its rejected alternatives; the completion report proposes 15–30 minute review targets aimed at whatever the logs flagged as weak. Put 모드: 학습 in the prompt and those touchpoints increase.

All of it is advisory and non-blocking — ignore it and the pipeline still finishes.

Revisions

Say what’s wrong in plain language and the orchestrator re-runs only the affected phase:

  챕터 3 처음 부분이 너무 딱딱해. 다시 써줘.      → that chapter only, old draft backed up
표지를 좀 더 따뜻한 느낌으로 바꿔줘.             → cover-designer only
계획을 좀 더 입문자 친화적으로 다시 세워줘.       → Phase 2–3
  

Re-runs bump the book’s minor version; the EPUB urn:uuid is minted once and preserved, so readers’ libraries see an update rather than a new book.

Know before you start

  • Korean. The harness, its prompts, and the default voice profile are Korean. Usable for English output, but you’ll be editing the profiles.
  • Two versions, easy to confuse. The harness version and the book version in the filename evolve independently.
  • Licensing splits. Harness code is MIT; generated book content defaults to CC BY-NC-SA 4.0, overridable per book via book_manifest.json.
  • A book is a lot of tokens. Four parallel writers plus researchers and reviewers is not a cheap run. Budget before you start, and consider approving a plan for a shorter book on the first attempt.

The mirror image of this tool is book-to-skill, which turns a book into something an agent reads. This one turns an agent into something that writes one.

Next

When the document belongs inside the product you’re building → Univer

Last updated 26 Sep 2026, 00:00 UTC. history