콘텐츠로 이동

자동 안전망

book-studio가 사용자 대신 자동으로 챙겨주는 자리가 둘로 갈립니다. 챕터마다 도는 검증 게이트, 그리고 작업 흐름 바깥에서 도는 훅 세 개입니다. 명령을 외울 필요는 없지만 무엇이 왜 막히는지를 알아 두면 막혔을 때 덜 당황합니다.

챕터 하나가 finished로 마킹되려면 두 검증을 통과해야 합니다.

챕터가 “사람이 쓴 것처럼” 읽히는지를 0~100점으로 봅니다. 템플릿 표현(“정리하면”, “핵심은”), 나열 패턴, 도입부가 결과부터 던지는 자리, 구체적 수치나 실패담 같은 경험 시그니처가 없는 자리를 잡습니다. 61점을 넘으면 챕터가 차단되고 다시 쓰여집니다. 긴 책일수록 톤이 흔들리기 쉬운데, 이 게이트가 챕터마다 톤을 잡아 줍니다.

챕터가 consistency_index.json의 설정과 어긋나지 않는지 봅니다. 캐릭터 외모, 세계관 규칙, 타임라인이 앞 챕터와 맞는지 교차 검증합니다. 자세한 자리는 continuity에 있습니다.

훅은 사용자가 명령으로 부르지 않아도 특정 순간에 자동으로 도는 스크립트입니다. .claude/hooks/에 박혀 있습니다.

스크립트언제무엇을
session-start.sh세션 시작이전 작업, 활성 책의 진행, 메모리를 자동으로 컨텍스트에 끌어옴
stop-reminder.sh응답 종료다음 세션을 위한 메모(active.md)가 비었으면 갱신하라고 알림
pre-commit-check.shgit commit 직전시크릿과 산출물이 잘못 커밋되지 않게 차단

session-start.sh — 끊긴 자리에서 돌아오기

섹션 제목: “session-start.sh — 끊긴 자리에서 돌아오기”

새 세션을 시작하면 이 훅이 active.md(이전 세션의 다음 작업), 활성 책 슬러그, 그 책의 progress.md 마지막 40줄, MEMORY.md를 자동으로 컨텍스트에 끌어옵니다. 며칠 만에 다시 열거나 여러 권을 굴리다 어느 책이 활성인지 잊어도, 이 자리들이 자동으로 앞에 붙습니다.

stop-reminder.sh — 다음 세션을 위한 메모

섹션 제목: “stop-reminder.sh — 다음 세션을 위한 메모”

AI가 응답을 끝낼 때 active.md가 비어 있으면 한 줄 알립니다. 방금 한 일, 다음 시작점, 보류된 결정을 적어 두라는 안내입니다. 이 메모가 있어야 다음 세션의 session-start.sh가 끌어올 거리가 생깁니다.

pre-commit-check.sh — 산출물과 시크릿 사고 막기

섹션 제목: “pre-commit-check.sh — 산출물과 시크릿 사고 막기”

git commit 직전에 자동으로 도는 검사입니다. API 키 패턴(OPENAI_API_KEY, ANTHROPIC_API_KEY, AWS 키)이 파일에 들어 있으면 차단하고, _workspace/의 책 산출물이 통째로 커밋되는 것도 막습니다. 챕터와 아웃라인은 .gitignore에 들어가 git 추적에서 빠지는 자리라, 실수로 커밋되면 이 훅이 막습니다. *.local/ 백업 폴더가 커밋되는 것도 막습니다(베이스 무오염 원칙).

위 게이트와 훅이 강제하는 규칙은 AI_AUTOMATION.md의 보안 기준선 여덟 줄에 정리돼 있습니다. 시크릿을 git에 안 올리기(S1, S7), _workspace/ 바깥을 함부로 안 건드리기(S2), 챕터 단위 commit(S5), 자동 출판 금지(S8) 같은 자리입니다. 비개발자 입장에서는 이 줄들을 외울 필요 없이, 게이트가 막으면 그 이유를 읽고 고치면 됩니다.

게이트나 워크플로가 막혀서 어떻게 빠져나올지 막막하면 when-ai-gets-stuck으로 갑니다.