# 작성 모드 프로토콜 > **버전:** 2.8.0 > **최종 수정:** 2026-01-31 > **호환:** CWS Writing Guide v3.6.0+ > **용도:** Writing Guide Phase 3 - 신규 챕터 작성 (3/5/7화 유연) > **전제:** Design Guide Phase 5 완료 (설계 검증 통과, 5화별 상세 플롯 존재) > **주요 변경:** AI 강제 실행 규칙 추가 (절대 무시 불가) --- ## 🚨 AI 강제 실행 규칙 (v2.8.0 신규 - 절대 무시 불가!) ### ⚠️ 이 문서는 가이드라인이 아닙니다. 체크리스트입니다. **모든 절차는 강제 실행입니다. "참고", "건너뛰기", "판단으로 생략" 절대 금지.** --- ### 규칙 1: 타임라인 역행 방지 4단계 강제 실행 **각 화 작성 전 반드시 실행:** ``` 🔍 타임라인 역행 방지 체크리스트 (강제 실행): - [ ] Step 1: 이전 화 종료 날짜 확인 (head -5 이전 파일) - [ ] Step 2: 현재 화 플롯 날짜 확인 (플롯 파일 grep) - [ ] Step 3: 비교 (이전 종료일 ≤ 현재 시작일?) - 정상 → 작성 시작 - 역행 → 즉시 중단, 사용자 보고 - [ ] Step 4: 회상 예외 확인 (회상이면 제목에 표시) **이 체크리스트를 출력하지 않으면 작성 시작 금지!** **역행 발견 시 사용자 확인 없이 진행 절대 금지!** ``` --- ### 규칙 2: 호칭 규칙 확인 3단계 강제 실행 **각 화 작성 전 반드시 실행:** ``` 🔍 호칭 규칙 확인 체크리스트 (강제 실행): - [ ] Step 1: 이번 화 등장인물 확인 - grep "등장인물" 플롯 파일 - [ ] Step 2: vol-XX-characters.md 호칭 테이블 확인 - 각 화자→청자 조합의 호칭 확인 - 시기별 호칭 변화 시점 확인 - [ ] Step 3: 복수/단수 규칙 확인 - 2명 이상 → "~들" 사용 - 1명 → 단수형 사용 **이 체크리스트를 출력하지 않으면 작성 시작 금지!** ``` --- ### 규칙 3: Phase 3 형식 자동 검증 강제 실행 **Git 커밋 전 반드시 실행:** ``` 🔍 형식 자동 검증 체크리스트 (강제 실행): - [ ] 바텀 검증: 정확히 3개 (grep -c "^---$") - [ ] 구버전 바텀 검증: [X화 끝], 다음 X화: 금지 - [ ] 작가의 말 형식: > [!NOTE] 필수 - [ ] 챕터 번호 일치: 파일명 vs 헤더 - [ ] 타임라인 형식: > **타임라인:** YYYY.M.D-M.D **검증 통과 전 Git 커밋 절대 금지!** **ERROR=1 상태에서 커밋 시도 시 즉시 중단!** ``` --- ### 규칙 4: Phase 4 내용 검증 체크리스트 강제 실행 **Git 커밋 전 반드시 실행:** ``` 🔍 내용 검증 체크리스트 (강제 실행): - [ ] 4-1. 플롯 일치도 확인 - [ ] 제목 일치 - [ ] 타임라인 일치 - [ ] 핵심 이벤트 3개 포함 - [ ] 등장인물 일치 - [ ] 4-2. 이전 챕터 연결 확인 - [ ] 시간 흐름 자연스러움 - [ ] 장소 이동 설명됨 - [ ] 상황 변화 설명됨 - [ ] 4-3. 설정 일관성 확인 - [ ] 숫자 일관성 (grep으로 확인) - [ ] 물리적 일관성 (위치/이동) - [ ] 캐릭터 일관성 (성격/지식/능력) **하나라도 ❌ 발견 시 즉시 수정, 전체 재검증!** **이 단계 건너뛰면 VERIFICATION에서 대량 발견!** ``` --- ### 규칙 5: 각 Part 작성 후 즉시 자가 검증 강제 **각 Part 완료 시 반드시 실행:** ``` 🔍 Part 자가 검증 체크리스트 (강제 실행): - [ ] 플롯 준수: 플롯 내용 포함, 추가 설정 없음 - [ ] 캐릭터 일관성: 성격/지식/능력 맞음 - [ ] 설정 일관성: 이전 화와 모순 없음 - [ ] 완성도: Part 완료, 대화 완결, 장면 마무리, 헤더 내용 3줄 이상 **하나라도 "아니오"면 즉시 완성 후 다음 Part!** **미완성 상태로 다음 Part 진행 절대 금지!** ``` --- ### 위반 시 처리 **위 규칙 중 하나라도 위반 시:** - 해당 작업 무효 - Git 커밋 금지 - 사용자에게 즉시 보고 - 규칙 준수 후 재실행 --- ## 📋 CHANGELOG ### v2.8.0 (2026-01-31) - AI 강제 실행 규칙 추가 **추가:** - 🚨 AI 강제 실행 규칙 섹션 (절대 무시 불가) - 📌 타임라인 역행 방지 4단계 강제 체크리스트 - 📌 호칭 규칙 확인 3단계 강제 체크리스트 - 📌 Phase 3 형식 자동 검증 강제 체크리스트 - 📌 Phase 4 내용 검증 강제 체크리스트 - 📌 각 Part 자가 검증 강제 체크리스트 - 📌 위반 시 작업 무효 명시 **철학 변경:** - 이전: 가이드라인 (참고 가능, 건너뛰기 가능) - 현재: 체크리스트 (강제 실행, 절대 건너뛰기 불가) ### v2.7.0 (2026-01-25) **변경:** - 📌 파일 경로 업데이트 (Design Guide v1.6.0 호환) - 플롯 참조: `volumes/vol-XX/plots/vol-XX-plot-NNN-MMM.md` (3단계: 5화별 상세) - 캐릭터: `volumes/vol-XX/vol-XX-characters.md` (v1.6.0 파일명 변경) - 타임라인: `volumes/vol-XX/vol-XX-timeline.md` (v1.6.0 파일명 변경) - 📌 전제 조건 명시: Design Guide Phase 4-3 완료 필수 - 📌 호환 버전: CWS Writing Guide v3.6.0+ ### v2.6.0 (2026-01-25) **배경:** - 문제: VERIFICATION에서 형식/내용 오류 다수 발견 - 원인 1: 형식 검증이 수동이라 깜빡하면 통과됨 (바텀, 작가의 말, 챕터 번호) - 원인 2: 내용 검증 프로세스 자체가 없음 (플롯 일치, 연결성, 설정) - 결과: VERIFICATION 부담 과다, FIX 모드 수정 비효율 **추가:** - 📌 Phase 3: 형식 자동 검증 스크립트 (Git 커밋 전 필수) - 바텀 3개 자동 카운트 (정확히 3개 강제) - 작가의 말 형식 자동 체크 (> [!NOTE] 필수) - 챕터 번호 일치 자동 검증 (파일명 vs 헤더) - 📌 Phase 4: 내용 검증 체크리스트 (신규) - 플롯 일치도 확인 (제목, 타임라인, 핵심 이벤트) - 이전 챕터 연결 확인 (시간/장소/상황 흐름) - 설정 일관성 확인 (숫자, 물리, 캐릭터) - 검증 통과 필수 (Git 커밋 전) **철학:** ``` WRITING 모드 = 형식 오류 0건 + 내용 오류 최소화 VERIFICATION 모드 = 정말 최후 확인만 → 작성 단계에서 모든 문제 원천 차단! ``` **예상 효과:** - 형식 오류: 15건 → 0건 (100% 감소, 자동 검증) - 내용 오류: 35건 → 7건 (80% 감소, 체크리스트) - VERIFICATION 총 발견: 48-68건 → 19-23건 (65% 감소) ### v2.5.0 (2026-01-25) **배경:** - 문제: VERIFICATION에서 호칭 오류 다수 발견 - 원인: characters.md에 호칭 규칙은 있지만, WRITING 시 확인하지 않음 - 결과: VERIFICATION 부담 증가, 수정 비효율 **추가:** - 📌 Phase 1: characters.md 호칭 규칙 필수 숙지 강조 - 📌 Phase 2: 호칭 규칙 확인 3단계 필수 체크포인트 - Step 1: 이번 화 등장인물 확인 - Step 2: characters.md 호칭 테이블 확인 - Step 3: 복수/단수 규칙 확인 - 📌 Phase 3: 간이 검증 강화 - 호칭 복수/단수 자동 체크 (bash 명령) - 시기별 호칭 정확성 체크 - 검증 통과 필수 (Git 커밋 전) **철학:** ``` WRITING 모드 = 호칭 오류 원천 차단 VERIFICATION 모드 = 최후 확인만 → 작성 단계에서 호칭 규칙 준수! ``` **예상 효과:** - VERIFICATION 호칭 오류 발견 90% 감소 - 작성 시간 소폭 증가하지만 전체 효율 향상 ### v2.4.0 (2026-01-25) **배경:** - 문제: 플롯에 타임라인이 명시되어 있음에도 작성 시 역행 발생 - 원인: 작성 전 타임라인 체크가 선택적이고 강제성 없음 - 결과: VERIFICATION에서 발견 → FIX에서 재배치 → 비효율 **추가:** - 📌 타임라인 역행 방지 필수 체크포인트 (4단계 강제 절차) - 작성 전 이전 화 종료일 vs 현재 화 시작일 자동 비교 - 역행 감지 시 즉시 중단 및 사용자 보고 - 회상 장면 예외 처리 프로토콜 **철학:** ``` WRITING 모드 = 1차 방어선 (예방) VERIFICATION 모드 = 최후의 보루 (검증) → 작성 단계에서 문제를 원천 차단! ``` ### v2.3.0 (2026-01-21) **추가:** - 완성도 체크 강화 (미완성 챕터 재발 방지) ### v2.0.0 이전 자세한 이력은 Git 커밋 히스토리 참조 --- ## 📋 작성 모드 개요 **작성 모드는:** - 플롯 기반 신규 챕터 작성 - 매 화 완료 시 summary 누적 업데이트 - 작성 완료 후 즉시 간이 검증 - Git 자동 커밋 **진입 명령:** - "작성 모드" - "X화 작성해" - "1-5화 작성해" (기본 권장) - "3화 작성해" / "7화 작성해" (유연) **모드 진입 시 자동 실행:** - WORK-MODE.txt 업데이트 (CURRENT_MODE: WRITING) - 필수 파일 자동 읽기 (vol-XX-plot-NNN-MMM.md, vol-XX-characters.md, vol-XX-timeline.md) - 준비 완료 보고 및 대기 --- ## 📚 모드 진입 시 읽을 파일 ### 필수 1. `standards/file-formats.md` - 파일 형식 표준 2. `standards/writing-guide.md` - 작성 규칙 3. `volumes/vol-XX/vol-XX-characters.md` - 해당 권 캐릭터 4. `volumes/vol-XX/vol-XX-timeline.md` - 해당 권 타임라인 5. `volumes/vol-XX/plots/vol-XX-plot-NNN-MMM.md` - 이번 N화 플롯 6. `volumes/vol-XX/summaries/summary-이전.md` - 이전 서머리 7. `volumes/vol-XX/foreshadows.md` - 복선 추적 ### 권 전체 맥락 (선택) 8. `volumes/vol-XX/vol-XX-plot.md` - 해당 권 50화 플롯 요약 (권 전체 흐름 파악용) ### 다른 권 시작 시 추가 9. `volumes/vol-이전/summaries/summary-vol-XX-final.md` - 이전 권 압축 서머리 --- ## 🎯 작성 프로세스 ### Phase 1: 준비 ``` 1. 진행 상황 파악 - 마지막 작성 챕터 확인 - 다음 5화 범위 계산 2. 필수 파일 읽기 (위 목록) 🚨 특히 중요: - vol-XX-characters.md → 호칭 규칙 필수 숙지! ⭐ - vol-XX-timeline.md → 타임라인 흐름 파악 - vol-XX-plot-NNN-MMM.md → 이번 화 플롯 3. CURRENT-TASK.md 생성 - 모드: WRITING - 작업: X권 N-M화 작성 - 진행 상황: 테이블 초기화 4. 준비 완료 보고 ``` ### Phase 2: 각 화 작성 ``` 1. 해당 화 플롯 확인 - 날짜, 장소, 등장인물 - 핵심 내용, 주요 장면 2. 🚨 호칭 규칙 확인 (v2.5.0 필수 체크포인트!) ⭐ 신규 ❌ **이 절차를 건너뛰면 호칭 오류가 발생합니다!** ✅ **반드시 아래 3단계를 순서대로 확인하세요:** --- **Step 1: 이번 화 등장인물 확인** ```bash # 플롯에서 등장인물 추출 grep "등장인물" plots/vol-XX-plot-NNN-MMM.md # 예시 출력: 강민준, 서윤희, 박현우 ``` **Step 2: vol-XX-characters.md 호칭 테이블 확인** ```bash # 호칭 규칙 섹션 읽기 grep -A 30 "## 📋 호칭 규칙" vol-XX-characters.md ``` **호칭 테이블 숙지:** ``` 예시 (1권 1946.5월 이후): | 화자 | 청자 | 호칭 | 비고 | |------|------|------|------| | 강민준 | 서윤희 | 윤희 씨 | ch-031 이후 | | 서윤희 | 강민준 | 민준 씨 | ch-031 이후 | | 박현우 | 강민준 | 민준 형 | 현대 감각 | | 최태준 | 강민준 | 형님 | 1명 단수 | | 최태준 | 강민준+박현우 | 형님들 | 2명 복수 | ``` **Step 3: 복수/단수 규칙 확인** ``` 복수형 사용 조건: - 대상이 2명 이상일 때만 "~들" 사용 - 예: "형님들" (강민준 + 박현우 = 2명) - 예: "형님" (강민준만 = 1명) 단수형 사용: - 대상이 1명일 때 - 예: "형님", "선생님", "씨" ``` --- 3. 🚨 타임라인 역행 방지 (v2.4.0 필수 체크포인트!) ❌ **이 절차를 건너뛰면 타임라인 역행이 발생합니다!** ✅ **반드시 아래 4단계를 순서대로 확인하세요:** --- **Step 1: 이전 화 종료 날짜 확인** ```bash # 이전 화 파일 읽기 (첫 5줄) head -5 chapters/ch-027.md # 출력 예시: # # 1권 27화: 제목 # # > **타임라인:** 1946.04.05-23 → 종료일 추출: 1946.04.23 ``` **Step 2: 현재 화 플롯 날짜 확인** ```bash # 5화별 상세 플롯 파일에서 현재 화 검색 # 예: 28화 = volumes/vol-XX/plots/vol-XX-plot-026-030.md grep "28화" volumes/vol-XX/plots/vol-XX-plot-026-030.md # 출력 예시: # ### 28화: 제목 # - **타임라인:** 1946.03.05-15 → 시작일 추출: 1946.03.05 ``` **Step 3: 타임라인 역행 체크 (필수!)** ``` 비교: - 이전 화 종료일: 1946.04.23 - 현재 화 시작일: 1946.03.05 판정: → 04.23 > 03.05 ❌ 역행! ⚠️ 즉시 중단! ⚠️ 사용자에게 보고: "❌ 타임라인 역행 감지! - 이전 화 (ch-027): 1946.04.23 종료 - 현재 화 (ch-028): 1946.03.05 시작 → 4월 다음에 3월이 올 수 없습니다. 원인: 1. 플롯 순서가 잘못됨 2. 또는 회상 장면 (제목/본문에 명시 필요) 조치: - 회상이 아니면 플롯 수정 필요 - 회상이면 제목에 \"회상:\" 추가 계속 진행하시겠습니까?" → 사용자 확인 대기 ``` **Step 4: 정상인 경우만 작성 시작** ``` 비교: - 이전 화 종료일: 1946.04.23 - 현재 화 시작일: 1946.05.01 판정: → 04.23 < 05.01 ✅ 정상! ✅ 작성 시작 가능 ``` --- **회상 장면 예외 처리:** ``` 회상인 경우: 1. 제목에 명시: "# X권 Y화: [회상] 제목" 2. 또는 Part 헤더: "## [회상] 1945년 가을" 3. 본문 시제: "~했었다", "~였었다" 사용 → VERIFICATION에서 "회상"으로 판정됨 → FIX 모드 재배치 대상에서 제외 ``` --- 3. 작성 - 헤더: # X권 Y화: 제목 - 타임라인: > **타임라인:** YYYY.M.D-M.D - 분량: 8,000-12,000자 - file-formats.md 형식 준수 ⚠️ **각 Part 작성 후 즉시 자가 검증!** ``` Part 1 작성 완료 → 즉시 체크: ✅ 플롯 준수 - [ ] 플롯에 있는 핵심 내용 포함됐는가? - [ ] 플롯에 없는 중요 설정 추가 안 했는가? - [ ] 등장인물이 플롯과 일치하는가? ✅ 캐릭터 일관성 - [ ] 성격이 vol-XX-characters.md와 맞는가? - [ ] 갑자기 못하던 걸 하진 않는가? - [ ] 몰랐던 정보를 갑자기 알진 않는가? ✅ 설정 일관성 - [ ] 이전 화와 모순 없는가? - [ ] 무기/아이템 연속성 유지되는가? - [ ] 날씨/계절이 날짜와 맞는가? 🔴 **v2.3.0 신규: 완성도 체크** - [ ] Part가 완전히 끝났는가? (중간에 안 끊김) - [ ] 대화가 중간에 끊기지 않았는가? (질문만 하고 답 없음 X) - [ ] 장면이 마무리됐는가? (시작만 하고 안 끝남 X) - [ ] 헤더 만들었으면 내용도 3줄 이상 작성했는가? → 하나라도 "아니오"면: 즉시 완성 후 다음 Part! → 모두 "예"면: Part 2 작성 (Part 2, 3, 4도 동일하게 각각 작성 후 체크!) ``` ⚠️ **마지막 Part 작성 시 중요:** ``` ## Part 4: 소제목 (본문 내용 마지막 문장.) ← 여기서 즉시 멈추세요! 절대 추가하지 마세요: - [X화 끝] - 다음 화 예고 - 구분선 (---) - 아무것도! ``` 4. 저장 - volumes/vol-XX/chapters/ch-XXX.md 5. summary 즉시 업데이트 - summaries/summary-001-XXX.md 누적 업데이트 6. CURRENT-TASK.md 업데이트 - 해당 화: ✅ 완료 7. 다음 화로 이동 ``` ### Phase 3: 작성 완료 + 간이 검증 (필수!) ``` ⚠️ Git 커밋 전 필수 단계! ⚠️ 이 검증을 통과하지 못하면 커밋 금지! ``` ``` 1. N개 챕터 파일 확인 2. summary 최종 정리 - 전체 줄거리 완성도 - 챕터별 핵심 - 캐릭터 상태 - 복선 추적 3. 🔍 즉시 간이 검증 실행 (필수!) **3-1. 자동 검증 (Bash 명령)** ✅ 타임라인 연속성 ```bash # 이전 화 종료일 확인 sed -n '3p' ch-027.md | grep -oP '\d{4}\.\d+\.\d+' | tail -1 # 현재 화 시작일 확인 sed -n '3p' ch-028.md | grep -oP '\d{4}\.\d+\.\d+' | head -1 # 비교: 종료일 ≤ 시작일 확인 ``` ✅ 호칭 일관성 ⭐ 강화! (v2.5.0) ```bash # 복수형 검색 grep -n "형님들\|형들\|선배님들\|씨들" ch-XXX.md # 각 발견 건마다: # 1. 화자 확인 (누가 말했는가?) # 2. 청자 확인 (누구에게?) # 3. 청자 수 확인 (1명? 2명 이상?) # 4. 복수/단수 일치 확인 예시: - "형님들" 발견 → 화자: 최태준 → 청자: 강민준+박현우(2명) ✅ - "형님" 발견 → 화자: 최태준 → 청자: 강민준(1명) ✅ - "형님들" 발견 → 화자: 최태준 → 청자: 강민준(1명) ❌ 오류! ``` ✅ 시기별 호칭 정확성 (v2.5.0 신규) ```bash # 강민준-서윤희 호칭 체크 (예시) grep -n "윤희 씨\|민준 씨" ch-XXX.md # 확인 사항: # - ch-031 (1946.5월) 이전인가? → "윤희 씨" 사용 금지! # - ch-031 이후인가? → "윤희 씨" 사용 가능 # vol-XX-characters.md 호칭 변화 시점 참조 ``` ✅ 형식 자동 검증 ⭐ 신규! (v2.6.0) ```bash # 형식 자동 검증 스크립트 (Git 커밋 전 필수!) # 파일명 예시: ch-028.md FILE="ch-028.md" ERROR=0 # 1. 바텀 검증 (정확히 3개) BOTTOM_COUNT=$(grep -c "^---$" "$FILE") if [ "$BOTTOM_COUNT" -ne 3 ]; then echo "❌ 바텀 오류: ${BOTTOM_COUNT}개 발견 (정확히 3개 필요)" echo " 위치: $(grep -n "^---$" "$FILE" | cut -d: -f1 | tr '\n' ' ')" ERROR=1 else echo "✅ 바텀: 3개 정상" fi # 2. 구버전 바텀 검증 ([X화 끝], 다음 X화: 금지) OLD_BOTTOM=$(grep -n "\[.*화 끝\]\|다음.*화:" "$FILE") if [ -n "$OLD_BOTTOM" ]; then echo "❌ 구버전 바텀 발견 (즉시 삭제 필요):" echo "$OLD_BOTTOM" ERROR=1 fi # 3. 작가의 말 형식 검증 (> [!NOTE] 필수) if ! grep -q "^> \[!NOTE\]$" "$FILE"; then echo "❌ 작가의 말 형식 오류" echo " 필수: > [!NOTE] (다음 줄에 작가의 말 내용)" ERROR=1 else echo "✅ 작가의 말: 형식 정상" fi # 4. 챕터 번호 일치 검증 (파일명 vs 헤더) FILENAME=$(basename "$FILE" .md) CHAPTER_NUM="${FILENAME#ch-}" # 헤더에서 화수 추출 (예: # 1권 28화: 제목 → 28) HEADER_NUM=$(head -1 "$FILE" | grep -oP '\d+권 \K\d+(?=화:)') if [ "$CHAPTER_NUM" != "$HEADER_NUM" ]; then echo "❌ 챕터 번호 불일치" echo " 파일명: ch-${CHAPTER_NUM}.md" echo " 헤더: ${HEADER_NUM}화" ERROR=1 else echo "✅ 챕터 번호: 일치 (${CHAPTER_NUM}화)" fi # 5. 타임라인 형식 검증 TIMELINE=$(sed -n '3p' "$FILE") if ! echo "$TIMELINE" | grep -q "> \*\*타임라인:\*\* [0-9]\{4\}\.[0-9]\+-[0-9]\+"; then echo "❌ 타임라인 형식 오류" echo " 현재: $TIMELINE" echo " 필수: > **타임라인:** YYYY.M.D-M.D" ERROR=1 else echo "✅ 타임라인: 형식 정상" fi # 최종 판정 if [ $ERROR -eq 1 ]; then echo "" echo "❌ 형식 검증 실패! Git 커밋 불가!" echo "⚠️ 위 오류를 모두 수정한 후 다시 검증하세요." exit 1 else echo "" echo "✅ 형식 검증 통과!" fi ``` **Windows (PowerShell) 버전:** ```powershell # 형식 자동 검증 스크립트 (Git 커밋 전 필수!) $FILE = "ch-028.md" $ERROR = 0 # 1. 바텀 검증 $BOTTOM_COUNT = (Select-String -Path $FILE -Pattern "^---$").Count if ($BOTTOM_COUNT -ne 3) { Write-Host "❌ 바텀 오류: ${BOTTOM_COUNT}개 발견 (정확히 3개 필요)" -ForegroundColor Red $ERROR = 1 } else { Write-Host "✅ 바텀: 3개 정상" -ForegroundColor Green } # 2. 구버전 바텀 검증 $OLD_BOTTOM = Select-String -Path $FILE -Pattern "\[.*화 끝\]|다음.*화:" if ($OLD_BOTTOM) { Write-Host "❌ 구버전 바텀 발견 (삭제 필요)" -ForegroundColor Red $ERROR = 1 } # 3. 작가의 말 형식 $NOTE = Select-String -Path $FILE -Pattern "^> \[!NOTE\]$" if (-not $NOTE) { Write-Host "❌ 작가의 말 형식 오류" -ForegroundColor Red $ERROR = 1 } else { Write-Host "✅ 작가의 말: 형식 정상" -ForegroundColor Green } # 4. 챕터 번호 일치 $FILENAME = (Get-Item $FILE).BaseName $CHAPTER_NUM = $FILENAME -replace "ch-", "" $HEADER = Get-Content $FILE -First 1 if ($HEADER -match '\d+권 (\d+)화:') { $HEADER_NUM = $Matches[1] if ($CHAPTER_NUM -ne $HEADER_NUM) { Write-Host "❌ 챕터 번호 불일치: ch-${CHAPTER_NUM} vs ${HEADER_NUM}화" -ForegroundColor Red $ERROR = 1 } else { Write-Host "✅ 챕터 번호: 일치 (${CHAPTER_NUM}화)" -ForegroundColor Green } } # 최종 판정 if ($ERROR -eq 1) { Write-Host "`n❌ 형식 검증 실패! Git 커밋 불가!" -ForegroundColor Red exit 1 } else { Write-Host "`n✅ 형식 검증 통과!" -ForegroundColor Green } ``` 🔴 **v2.3.0: 완성도 검증** - [ ] 빈 섹션 0건 - [ ] 대화 완결성 - [ ] 최소 분량 8,000자 --- **3-2. 검증 결과 판정** ``` ✅ 문제 0건 → 4단계로 진행 ❌ 문제 발견 → 즉시 수정 → 3-1 재실행 ⚠️ 문제가 있는데 커밋하지 마세요! ⚠️ 반드시 검증 통과 후 커밋! ``` --- ### Phase 4: 내용 검증 체크리스트 (Git 커밋 전 필수!) ⭐ 신규 (v2.6.0) ``` ⚠️ 형식 검증(Phase 3)과 별개로 반드시 확인! ⚠️ 이 단계를 건너뛰면 VERIFICATION에서 대량 발견됩니다! ``` **4-1. 플롯 일치도 확인** ```markdown - [ ] plots/vol-XX-plot-NNN-MMM.md 읽기 (이번 화 플롯 확인) - [ ] 주요 내용 일치 여부 체크: - [ ] 제목이 플롯과 일치하는가? - [ ] 타임라인이 플롯과 일치하는가? - [ ] 핵심 이벤트 3개가 모두 포함됐는가? - [ ] 등장인물이 플롯과 일치하는가? - [ ] 플롯에 없는 중요 설정 추가하지 않았는가? - 예: 플롯에 없는 캐릭터 첫 등장 - 예: 플롯에 없는 중요 사건 추가 판정: ✅ 모두 일치 → 4-2로 진행 ❌ 불일치 발견 → 즉시 수정 또는 플롯 재확인 ``` **4-2. 이전 챕터 연결 확인** ```markdown - [ ] 이전 화 마지막 Part 읽기 - [ ] 현재 화 첫 Part와 자연스럽게 연결되는가? - [ ] 시간 흐름이 자연스러운가? - 예: 이전 화 밤 → 현재 화 다음날 아침 ✅ - 예: 이전 화 오후 → 현재 화 3일 후 (설명 없음) ❌ - [ ] 장소 이동이 설명됐는가? - 예: 이전 화 서울 → 현재 화 만주 (이동 장면 있음) ✅ - 예: 이전 화 경교장 → 현재 화 갑자기 만주 (이동 없음) ❌ - [ ] 상황 변화가 설명됐는가? - 예: 이전 화 회의 중 → 현재 화 회의 끝난 후 ✅ - 예: 이전 화 회의 중 → 현재 화 갑자기 전투 (전환 없음) ❌ 판정: ✅ 모두 자연스러움 → 4-3으로 진행 ❌ 갑작스러운 변화 발견 → 연결 문장 추가 ``` **4-3. 설정 일관성 확인** ```markdown ✅ 숫자 일관성 체크 - [ ] 인원수, 금액, 날짜가 이전 화와 맞는가? - 예: 3화 "요원 20명" → 5화 "요원 50명" (설명 없음) ❌ - 예: 4화 "100만 원" → 6화 "같은 돈인데 50만 원" ❌ - [ ] grep으로 숫자 추출 후 비교: ```bash # 이전 화들에서 언급된 중요 숫자 확인 grep -n "명\|원\|개\|톤" ch-025.md ch-026.md ch-027.md # 현재 화에서 같은 숫자 확인 grep -n "명\|원\|개\|톤" ch-028.md # 불일치 발견 시 → 즉시 수정 ``` ✅ 물리적 일관성 체크 - [ ] 캐릭터 위치가 논리적인가? - 예: 강민준이 오후 2시에 서울, 오후 3시에 만주 ❌ - 예: 강민준이 서울→만주 이동 (3일 소요) ✅ - [ ] 이동 시간/거리가 현실적인가? - 예: 1945년 서울→부산 1시간 (불가능) ❌ - 예: 1945년 서울→부산 기차 8시간 ✅ ✅ 캐릭터 일관성 체크 - [ ] 성격에 맞는 행동인가? - vol-XX-characters.md의 성격 설정 확인 - 예: 민준(냉철) "아악! 무서워!" 비명 ❌ - 예: 민준(냉철) 손은 떨렸지만 표정 변화 없음 ✅ - [ ] 갑자기 아는 정보가 없는가? - 예: ch-004 "강세우? 누구야?" ch-005 "강세우가 형님이라 부른 이유는..." ❌ - 예: ch-004 끝에 소개받음 → ch-005 언급 ✅ - [ ] 갑자기 할 수 있는 능력이 없는가? - 예: ch-003 "총 못 쏴" → ch-010 완벽한 저격 (연습 없음) ❌ - 예: ch-005 사격 연습 → ch-010 성공 ✅ 판정: ✅ 모두 일관성 있음 → 4-4로 진행 ❌ 불일치 발견 → 즉시 수정 또는 설명 추가 ``` **4-4. 검증 결과 판정** ``` ✅ 모두 체크 완료 → Phase 5로 진행 (Git 커밋) ❌ 하나라도 문제 → 즉시 수정 → 4-1부터 재검증 ⚠️ 이 단계를 건너뛰면 VERIFICATION에서 대량 발견됩니다! ⚠️ 5분 투자로 30분 수정 작업을 예방할 수 있습니다! ``` --- 5. foreshadows.md 업데이트 - 설치된 복선 추가 - 회수된 복선 체크 6. Git 커밋 "X권 N-M화 작성 완료 - ch-XXX: 제목 (분량) - ch-XXX: 제목 (분량) ... - summary-001-XXX.md 업데이트 - foreshadows.md 업데이트 총 XX,XXX자 형식 검증: 통과 ✅ 내용 검증: 통과 ✅ Co-Authored-By: Claude " 7. CURRENT-TASK.md 업데이트 또는 삭제 8. 완료 보고 + 다음 작업 안내 ``` --- ## ✅ 각 화 작성 체크리스트 ``` 작성 전: - [ ] 플롯 확인 (날짜, 장소, 등장인물, 핵심) - [ ] 이전 화 종료일 확인 - [ ] 타임라인 연속성 확인 작성 중 (각 Part마다!): - [ ] 헤더 형식: # X권 Y화: 제목 - [ ] 타임라인 형식: > **타임라인:** YYYY.M.D-M.D - [ ] 분량 8,000자 이상 - [ ] Show, Don't Tell - [ ] 캐릭터 말투/호칭 일관성 - [ ] ⭐ 각 Part 작성 후 즉시 자가 검증! - 플롯 준수, 캐릭터 일관성, 설정 일관성 - 🔴 v2.3.0: 완성도 체크 (Part 완료, 대화 완결, 장면 마무리) 🔴 **v2.3.0 신규: 작성 완료 전 최종 체크** - [ ] 모든 섹션 헤더 이후 내용 3줄 이상 존재 - [ ] 마지막 대화가 완결됨 (질문으로 안 끝남) - [ ] 마지막 장면이 마무리됨 (중간에 안 끊김) - [ ] 최소 분량 8,000자 이상 - [ ] 각 Part가 완전히 끝남 작성 후: - [ ] Phase 3: 형식 자동 검증 실행 ⭐ (v2.6.0) - [ ] 바텀 3개 정확히 존재 - [ ] 작가의 말 형식 (> [!NOTE]) - [ ] 챕터 번호 일치 (파일명 vs 헤더) - [ ] 타임라인 형식 정상 - [ ] Phase 4: 내용 검증 체크리스트 완료 ⭐ (v2.6.0) - [ ] 플롯 일치도 확인 - [ ] 이전 챕터 연결 확인 - [ ] 설정 일관성 확인 - [ ] summary 즉시 업데이트 - [ ] CURRENT-TASK.md 업데이트 ``` --- ## 🚫 작성 모드 금지사항 ❌ 플롯 없이 작성 ❌ summary 업데이트 생략 ❌ 바텀 추가 ([X화 끝], 다음 X화: 등) ❌ 타임라인 역행 ❌ 캐릭터 OOC (Out Of Character) ❌ 호칭 불일치 --- ## 📊 summary 형식 ```markdown # 1-X화 누적 서머리 > 최종 업데이트: YYYY-MM-DD HH:MM > 현재: ch-XXX (X화) ## 📌 전체 줄거리 (누적 3-5문단) ## 📖 챕터별 핵심 ### ch-001: [제목] **날짜:** YYYY.M.D **핵심:** 1줄 요약 ### ch-002: [제목] ... ## 🎭 캐릭터 상태 ### [이름]: - ch-001: 상태 - ch-005: 상태 변화 ## ⚠️ 복선 - [ ] [내용] (ch-XXX) → 회수 예정: X권 ## 📊 통계 - 총 챕터: X화 - 총 분량: XX,XXX자 ``` --- ## 🔢 유연한 작업 단위 ### 기본 권장: 5화 ``` 플롯: vol-XX-plot-001-005.md (5화) 작성: ch-001 ~ ch-005 서머리: summary-001-005.md 장점: - 토큰 효율 최적 - 한 세션 완료 가능 - 관리 용이 ``` ### 허용: 3화, 7화, 10화 ``` "3화 작성해" → vol-XX-plot-001-003.md 기준 → ch-001 ~ ch-003 → summary-001-003.md "7화 작성해" → vol-XX-plot-001-007.md 기준 → ch-001 ~ ch-007 → summary-001-007.md "10화 작성해" → vol-XX-plot-001-010.md 기준 → ch-001 ~ ch-010 → summary-001-010.md ``` ### 권장 사항 ``` ✅ 권장: - 일반: 5화 (기본) - 짧게: 3화 (시간 부족) - 길게: 7화 (몰입 중) ⚠️ 주의: - 10화 이상: 컴팩팅 위험 - 1-2화: 너무 잦은 세션 전환 ❌ 비권장: - 불규칙 단위 (4화, 6화) - 단위 혼용 (5화 → 3화 → 7화) ``` ### summary 누적 규칙 ``` 예: 1-5화 작성 후 6-10화 작성 summary-001-005.md 생성 ↓ summary-001-010.md 생성 (1-10화 전체 누적!) → summary-001-005.md는 유지 (백업) → summary-001-010.md가 최신 ``` --- *작성 모드는 속도가 핵심입니다. 플롯대로 빠르게 작성하고, 간이 검증 후 커밋!*