아키텍처
intro에서 4-Tier와 멀티북을 짚었습니다. 여기서는 그게 어떤 산출물 파일로 흐르는지, 챕터별 게이트가 어느 자리에 박히는지, 책 여러 권이 어떻게 격리되는지를 봅니다. 눈여겨볼 건 두 가지입니다. Tier끼리 채팅이 아니라 파일로 인계한다는 것, 그리고 챕터 단위로 생성과 검증이 루프를 돈다는 것입니다.
4-Tier 흐름
섹션 제목: “4-Tier 흐름”사용자 발화가 들어오면 book-orchestrator가 Phase 0(컨텍스트 확인과 책 선택)을 거쳐 Tier를 라우팅합니다. 새 컨셉이면 Tier 1부터, “ch3 다시 써줘”면 Tier 3으로 점프합니다.
graph TB start[사용자 발화 - 이런 책 쓰고 싶어] p0[Phase 0 - books.json 확인, 책 선택] t1[Tier 1 Direction - 01_direction_brief.md] t2[Tier 2 Planning - world_building, character_design, plot_architecture] t3[Tier 3 Writing - ch draft 한 챕터씩] t4[Tier 4 Quality - ch ai_check, ch review] done[챕터 finished]
start --> p0 --> t1 --> t2 --> t3 --> t4 t1 -->|사용자 승인| t2 t2 -->|사용자 승인| t3 t4 -->|AI-smell 합격| done t4 -->|불합격| t3Tier 1과 Tier 2 끝에는 사용자 승인 게이트가 있습니다. 방향과 아웃라인은 사람이 확인하고 넘어갑니다. Tier 4의 AI-smell 게이트가 불합격이면 Tier 3으로 돌아가 그 챕터를 재작성합니다. 챕터 하나가 이 루프를 돌아 게이트를 통과해야 finished로 마킹됩니다.
Tier별 에이전트와 산출물
섹션 제목: “Tier별 에이전트와 산출물”| Tier | 에이전트 | 읽는 자리 | 쓰는 자리 |
|---|---|---|---|
| Direction | direction-agent | 사용자 컨셉 | 01_direction_brief.md |
| Planning | planning-agent | direction brief | 02_world_building.md, 03_character_design.md, 04_plot_architecture.md, 04_chapter_outline.json (전 장르) |
| Writing | writing-agent | planning 산출물, consistency index | chapters/ch{NN}_draft.md, chapters/ch{NN}_meta.json |
| Quality | quality-agent | 챕터, consistency index | chapters/ch{NN}_ai_check.md, chapters/ch{NN}_review.md, chapters/ch{NN}_review.json |
에이전트끼리 본문을 채팅으로 주고받지 않습니다. 각 Tier가 파일을 쓰고, 다음 Tier가 그 파일을 읽습니다. 이게 세션이 끊겨도 작업이 살아남는 이유입니다. progress.md가 모든 Tier의 진행을 기록하는 정본입니다.
멀티북 폴더 격리
섹션 제목: “멀티북 폴더 격리”한 채널에서 여러 권을 굴립니다. 책 한 권당 폴더 하나로 격리되고, 루트의 books.json이 인덱스입니다.
graph TB idx[_workspace/books.json - 인덱스 + active_slug] idx --> b1[novel-magic-cost-01/] idx --> b2[practical-ai-collab/] b1 --> b1a[01_direction_brief.md] b1 --> b1b[04_chapter_outline.json] b1 --> b1c[chapters/] b1 --> b1d[consistency_index.json] b1 --> b1e[progress.md] b2 --> b2a[01_direction_brief.md] b2 --> b2b[chapters/] b2 --> b2c[progress.md]books.json이 책 목록과 활성 책(active_slug)을 들고 있습니다. 모든 에이전트와 스킬은 이 인덱스를 읽어 작업 폴더를 정합니다. “책 X로 이어서”라고 하면 활성 책만 바뀌고, 기존 작업은 그대로 보존됩니다. 소설 한 권과 기술서 한 권의 폴더가 분리돼 있어, 한 책의 캐릭터 설정이 다른 책으로 새지 않습니다.
_workspace/├── books.json 인덱스 + active_slug└── {book_slug}/ ├── 01_direction_brief.md Tier 1 ├── 02_world_building.md Tier 2 (전 장르, 배경/세계관) ├── 03_character_design.md Tier 2 (전 장르, 캐릭터/페르소나) ├── 04_plot_architecture.md Tier 2 (구조도 + 아웃라인) ├── 04_chapter_outline.json Tier 2 (기계 판독) ├── consistency_index.json Tier 2~3 누적 ├── chapters/ Tier 3~4 │ ├── ch01_draft.md Tier 3 본문 │ ├── ch01_meta.json Tier 3 메타 │ ├── ch01_ai_check.md Tier 4 AI-smell 리포트 │ └── ch01_review.md Tier 4 종합 검토 └── progress.md 진행 정본_workspace/ 바깥의 .claude/, AI_AUTOMATION.md는 사람 승인 없이 수정하거나 삭제하지 않습니다(S2). 책 폴더끼리 교차 수정도 막습니다.
슬러그 규칙
섹션 제목: “슬러그 규칙”슬러그는 영문 소문자와 숫자, 하이픈만 씁니다. 장르와 컨셉, 일련번호를 조합합니다. novel-magic-cost-01, essay-child-raising-01 같은 식입니다. /start가 첫 책 진입 때 받고, 이후 책은 “새 책 — 슬러그 X로”로 명시합니다.
챕터 단위 commit
섹션 제목: “챕터 단위 commit”챕터 하나가 한 commit입니다(S5). 챕터와 그 AI-check를 묶어 한 commit으로 두기도 합니다. 챕터별로 버전이 남기 때문에, 12장을 고치다 틀어져도 11장까지의 상태로 되돌릴 수 있습니다.
자동화 진입점은 한 곳을 가리킨다
섹션 제목: “자동화 진입점은 한 곳을 가리킨다”.claude/agents/와 .claude/skills/는 Claude Code용 저장 위치이고, AGENTS.md는 Codex용 진입점입니다. 둘 다 AI_AUTOMATION.md를 읽습니다. 4-Tier 정의, 디렉토리 계약, books.json 스키마, 14 카테고리가 그 한 파일에 모여 있어, 어느 런타임에서 작업하든 Tier와 산출물 계약이 같습니다.
다음 섹션은 genres입니다. book_type이 어느 스킬 그래프를 켜는지, 소설과 실용서와 에세이와 기술서가 어떻게 갈리는지를 봅니다.