Files
Alex cbf51e2b23 standards: Add AI 강제 실행 규칙 to all protocol files (v2026-01-31)
전체 표준 파일에 AI 강제 실행 규칙 추가 - 절대 무시 불가 체크리스트

## 변경 사항

### 핵심 철학 변경
- **기존:** 프로토콜을 "참고" 자료로 취급 가능
- **신규:** 모든 프로토콜은 "강제 실행" 체크리스트
- **목적:** AI의 절차 생략/건너뛰기/판단 회피 100% 차단

### 추가된 공통 구조 (26개 파일 전체)

모든 파일에 다음 섹션 추가:

```markdown
## 🚨 AI 강제 실행 규칙 (vX.Y.0 신규 - 절대 무시 불가!)

### ⚠️ 이 문서는 가이드라인이 아닙니다. 체크리스트입니다.

**모든 절차는 강제 실행입니다. "참고", "건너뛰기", "판단으로 생략" 절대 금지.**

### 규칙 1-N: [모드별 특화 규칙]

🔍 [강제 실행 체크리스트]
- [ ] 필수 항목 1
- [ ] 필수 항목 2
...

**위반 시 즉시 보고!**

### 위반 시 처리

**위 규칙 중 하나라도 위반 시:**
- 해당 작업 무효
- 사용자에게 즉시 보고
- 규칙 준수 후 재작업
```

## 업데이트된 파일 목록 (26개)

### 검증 프로토콜 (6개)
- verification-mode.md: v3.2.0 → v3.3.0
  + 트리거 발견 시 체크리스트 강제 출력
  + 판단 명확성 강제
- volume-timeline-verification.md: v1.1.0 → v1.2.0
  + 상위 계층 반영 검증 강제
  + 사건 완성도 강제 검증
- volume-characters-verification.md: v1.1.0 → v1.2.0
  + 나이 계산 정확성 강제 검증
  + 판단 명확성 강제
- plot-master-verification.md: v2.1.0 → v2.2.0
  + 입력 소비 확인 강제
  + 상위 계층 반영 100% 강제
- volume-plot-verification.md: v2.1.0 → v2.2.0
  + 타임라인 순차 검증 강제
  + 특수 타임라인 검증 강제
  + 복선 고아/유령 검증 강제
- plot-detail-verification.md: v2.1.0 → v2.2.0
  + Part 구조 강제 검증
  + Part 필수 항목 9개 강제 검증
  + 집필 가능성 구체성 강제 검증

### 수정 프로토콜 (3개)
- fix-mode.md: v2.0.0 → v2.1.0
  + 리포트 유효성 검증 강제
  + 재배치 3-Stage 강제 실행
  + Git 커밋 타이밍 강제
- polish-mode.md: v2.5.0 → v2.6.0
  + 리포트 유효성 검증 강제
  + 백업 생성 강제
- modification-mode.md: v2.2.0 → v2.3.0
  + 영향 범위 분석 강제
  + 상위 계층 동기화 강제

### 작성 모드 (6개)
- writing-mode.md: v2.7.0 → v2.8.0
  + 타임라인 역행 방지 4단계 강제
  + 호칭 규칙 확인 3단계 강제
  + Phase 3/4 검증 강제
- plot-mode.md: v3.1.0 → v3.2.0
  + 필수 입력 파일 읽기 강제
  + 타임라인 검증 5단계 강제
- plot-master-mode.md: v3.1.0 → v3.2.0
  + 상위 계층 반영 100% 강제
  + 필수 정보 8개 항목 강제
- volume-timeline-mode.md: v1.0.0 → v1.1.0
  + 필수 입력 파일 읽기 강제
  + 역사적 사건 추출 완전성 강제
- volume-characters-mode.md: v1.0.0 → v1.1.0
  + 필수 입력 파일 읽기 강제
  + 나이 계산 정확성 강제
- volume-plot-mode.md: v3.1.0 → v3.2.0
  + 필수 입력 파일 읽기 강제
  + 화별 필수 정보 9개 항목 강제

### 지원 프로토콜 (6개)
- design-verification-mode.md: v1.1.0 → v1.2.0
  + 계층적 반영 검증 3단계 강제
  + Phase 5-2 필수 실행
- artistic-review-mode.md: v1.0.0 → v1.1.0
  + 진단 기준 강제 적용
  + 구체적 가이드 생성 강제
- retouch-mode.md: v1.1.0 → v1.2.0
  + 백업 생성 강제
  + POLISH/MODIFICATION 경계 준수 강제
- renaming-protocol.md: v2.0.0 → v2.1.0
  + 3-stage 프로세스 강제 실행
- report-management.md: v1.0.0 → v1.1.0
  + 리포트 유효성 검증 강제
- chapter-format.md: v2.0.0 → v2.1.0
  + 헤더 형식 강제 준수

### 참조 문서 (5개)
- creative-writing.md: v1.0.0 → v1.1.0
  + 기법 적용 체크리스트 강제
- writing-guide.md: v2.5.0 → v2.6.0
  + 프로토콜 읽기 강제
- file-formats.md: v1.2.0 → v1.3.0
  + 파일명 규칙 강제 준수
- phase4-master-design.md: v3.3.0 → v3.4.0
  + Phase 진행 순서 강제 준수
  + 블로킹 조건 강제 확인
  + 에러 복구 프로토콜 강제 실행
- README.md: v4.3.0 → v4.3.1
  + 프로토콜 읽기 강제
  + Phase 진행 순서 강제
  + 검증 워크플로우 강제

## 영향

### AI 행동 변경
- **이전:** "이 프로토콜을 참고하여..." (선택적)
- **이후:** "다음 체크리스트를 실행합니다..." (강제적)

### 예상 효과
- 절차 생략/건너뛰기: 100% 차단
- 판단 회피/추측 표현: 100% 차단
- 프로토콜 준수율: 대폭 향상

## 파일 통계

- 총 업데이트 파일: 26개
- 총 추가된 라인 수: ~1,800줄
- 평균 파일당 추가: ~70줄 (규칙 섹션)

## Breaking Changes

없음. 기존 기능은 모두 유지되며, 강제 실행 규칙만 추가됨.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 00:38:05 +09:00

1022 lines
29 KiB
Markdown

# 작성 모드 프로토콜
> **버전:** 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 <noreply@anthropic.com>"
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가 최신
```
---
*작성 모드는 속도가 핵심입니다. 플롯대로 빠르게 작성하고, 간이 검증 후 커밋!*