diff --git a/CWS Writing Guide.md b/CWS Writing Guide.md index 2764cdd..96ea3e4 100644 --- a/CWS Writing Guide.md +++ b/CWS Writing Guide.md @@ -1,11 +1,11 @@ -# Creative Writing System - Writing Guide (v3.4) +# Creative Writing System - Writing Guide (v3.5) > **작성일:** 2026-01-15 -> **버전:** 3.4.0 -> **최종 수정:** 2026-01-21 +> **버전:** 3.5.0 +> **최종 수정:** 2026-01-23 > **시스템:** Creative Writing System (CWS) > **목적:** AI와 협업하여 장편 창작물을 체계적으로 작성하기 위한 가이드 -> **주요 변경 (v3.4):** Multi-작가 시스템 - 작가 문체 정의 기능 추가 +> **주요 변경 (v3.5):** 검증 모드 섹션 확장 (배치 시스템 통합) --- @@ -354,21 +354,108 @@ Git 커밋 ### 3.4 검증 모드 (VERIFICATION) -**목적:** 6단계 통합 검증 +**목적:** 작성된 챕터의 완결성 및 일관성 확인 +#### 3.4.1 검증 모드 분류 + +**1️⃣ 본문 검증 (Content Validation)** +- **대상:** 실제 작성된 챕터 파일 +- **목적:** 본문 자체의 완결성 확인 +- **플롯 비교:** 하지 않음 +- **출력:** 검증 요약본 (validation-batch-XX.md) + +**2️⃣ 플롯 검증 (Plot Validation)** +- **대상:** 검증 요약본 vs plot-master.md +- **목적:** 계획된 플롯과 실제 작성 내용 일치성 확인 +- **전제:** 본문 검증 완료 필수 + +**3️⃣ 요약본 검증 (Summary Validation)** +- **대상:** 작성 요약본 vs 검증 요약본 +- **목적:** 2종 요약본 크로스체크로 이중 검증 +- **전제:** 본문 검증 완료 필수 + +#### 3.4.2 배치 검증 시스템 + +**왜 배치로 나누는가?** +- 한 번에 52개 전체 검증 → 중간에 컴팩팅 발생 +- 컴팩팅 후 이전 내용 손실 → 검증 신뢰성 저하 + +**해결책: 10개씩 배치 분할** + +| 범위 | 챕터 수 | 배치 번호 | 파일명 | +|------|---------|----------|--------| +| ch-001~010 | 10개 | Batch 1 | validation-batch-01.md | +| ch-011~020 | 10개 | Batch 2 | validation-batch-02.md | +| ch-021~030 | 10개 | Batch 3 | validation-batch-03.md | +| ch-031~040 | 10개 | Batch 4 | validation-batch-04.md | +| ch-041~050 | 10개 | Batch 5 | validation-batch-05.md | +| ch-051~052 | 2개 | Batch 6 | validation-batch-06.md | + +**배치 검증 프로토콜:** +1. 배치 시작 선언 ("Batch N 검증 시작") +2. 10개 챕터 순차 검증 +3. 검증 요약본 파일 생성 (validation-batch-XX.md) +4. 배치 완료 선언 +5. 다음 배치 진행 + +#### 3.4.3 검증 절차 (본문 검증 기준) + +**Step 1: 파일 구조 확인** +- 모든 챕터 파일 존재 확인 +- 파일명 규칙 준수 (ch-XXX.md) +- 화수 연속성 (누락 없음) + +**Step 2: 제목 검증** +- 헤더 화수 일치 (파일명 vs 헤더) +- 제목 중복 없음 +- 제목-내용 일치 + +**Step 3: 타임라인 검증** +- 시간 순서 정상 (역전 없음) +- 타임라인 범위 명확 +- 날짜 표기 일관성 + +**Step 4: 내용 검증** +- 빈 섹션 없음 +- 챕터 내부 장면 중복 없음 +- 챕터 간 내용 중복 없음 +- 인과관계 논리 정상 + +**Step 5: 캐릭터 일관성 검증** +- 호칭 규칙 준수 +- 말투 일관성 +- 캐릭터 성격/능력/지식 일관성 + +**Step 6: 검증 요약본 생성** +- validation-batch-XX.md 파일 생성 +- 챕터별 상세 정보 기록 +- 발견된 문제 목록화 +- 다음 단계 제시 + +#### 3.4.4 검증 명령어 + +**전체 검증:** ``` -1단계: 구조 검증 (파일 존재/연속성) -2단계: 형식 검증 (헤더/타임라인/바텀) -3단계: 타임라인 검증 (날짜 순서/역행) -4단계: 내용 검증 (플롯 일치/호칭) -5단계: 일관성 검증 (앞뒤 연결/복선) -6단계: 보고서 생성 +"1권 검증해" +"ch-001~010 검증해" +"Batch 1 검증해" ``` -**부분 검증 명령:** -- "타임라인만 검증해" -- "호칭 검증해" -- "바텀 검증해" → "바텀 일괄 제거해" +**부분 검증:** +``` +"타임라인만 검증해" +"호칭 검증해" +"제목 검증해" +``` + +#### 3.4.5 참조 문서 + +**세부 체크리스트:** +→ `templates/standards/verification-mode.md` 참조 + +**보고서 템플릿:** +→ `templates/reports/validation-batch-template.md` +→ `templates/reports/verification-report-template.md` ### 3.5 리터칭 모드 (RETOUCH) diff --git a/validation-standards.md b/validation-standards.md deleted file mode 100644 index e6e8eee..0000000 --- a/validation-standards.md +++ /dev/null @@ -1,1279 +0,0 @@ -# 1945 소설 검증 기준 문서 (v3.0) - -**최종 개정일:** 2026-01-21 -**이전 버전:** v2.0 (2026-01-17) -**주요 변경사항:** -- **ch-046 검증 실패 사례 반영:** 빈 섹션 헤더 검출 강화 (섹션 J 신규) -- **ch-047 검증 실패 사례 반영:** 챕터 내부 장면 중복 검증 강화 (섹션 G 대폭 강화) -- **검증 실행 프로토콜 강화:** Step 4에 필수 체크 항목 추가 -- **실패 사례 문서화:** 재발 방지를 위한 참조 예시 추가 - -**목적:** 소설 검증 시 명확한 기준 제시 및 누락 방지 -**핵심:** 배치 검증 + 검증 요약본 + 2종 요약본 크로스체크 - ---- - -## 📋 검증 모드 분류 - -### 1️⃣ **본문 검증 모드** (Content Validation) -- **대상:** 실제 작성된 챕터 파일 (ch-001.md ~ ch-052.md 등) -- **목적:** 작성된 본문 자체의 완결성 및 일관성 확인 -- **플롯 비교:** 하지 않음 -- **출력:** 검증 요약본 (validation-batch-XX.md) - -### 2️⃣ **플롯 검증 모드** (Plot Validation) -- **대상:** 검증 요약본 vs plot-master.md -- **목적:** 계획된 플롯과 실제 작성된 내용의 일치성 확인 -- **전제 조건:** 본문 검증 완료 필수 - -### 3️⃣ **요약본 검증 모드** (Summary Validation) -- **대상:** 작성 요약본 vs 검증 요약본 -- **목적:** 2종 요약본 크로스체크로 이중 검증 -- **전제 조건:** 본문 검증 완료 필수 - ---- - -## 🔄 배치 검증 시스템 - -### 왜 배치로 나누는가? - -**문제점:** -- 한 번에 52개 전체 검증 → 중간에 대화 컴팩팅 발생 -- 컴팩팅 후 이전 내용 손실 → 검증 결과 신뢰성 저하 - -**해결책:** -- **10개씩 배치로 나눠서 검증** -- 각 배치마다 결과를 파일로 저장 -- 컴팩팅되어도 파일 읽으면 연속성 유지 - -### 배치 크기 - -| 범위 | 챕터 수 | 배치 번호 | 파일명 | -|------|---------|----------|--------| -| ch-001 ~ ch-010 | 10개 | 배치 1 | validation-batch-01.md | -| ch-011 ~ ch-020 | 10개 | 배치 2 | validation-batch-02.md | -| ch-021 ~ ch-030 | 10개 | 배치 3 | validation-batch-03.md | -| ch-031 ~ ch-040 | 10개 | 배치 4 | validation-batch-04.md | -| ch-041 ~ ch-050 | 10개 | 배치 5 | validation-batch-05.md | -| ch-051 ~ ch-052 | 2개 | 배치 6 | validation-batch-06.md | - -**총 6개 배치** - -### 배치 검증 프로토콜 - -**배치 시작 전:** -```markdown -1. "배치 N 검증 시작합니다" 선언 -2. 검증 범위 명시: ch-XXX ~ ch-YYY -3. (N > 1인 경우) 이전 배치 결과 파일 읽기 -``` - -**배치 검증 중:** -```markdown -1. 10개 챕터 순차 검증 -2. 중간 결과를 메모리에 누적 -3. 문제 발견 시 즉시 기록 -``` - -**배치 완료 후:** -```markdown -1. 검증 요약본 파일 생성: validation-batch-XX.md -2. "배치 N 완료" 선언 -3. 다음 배치 진행 여부 확인 -``` - -**컴팩팅 대비:** -```markdown -- 배치 중간에 컴팩팅 발생 가능 -- 다음 배치 시작 시 이전 배치 파일 읽으면 복구됨 -- 사용자가 "validation-batch-XX.md 읽어봐" 지시 가능 -``` - ---- - -## 📄 검증 요약본 형식 - -### 파일명 -``` -validation-batch-01.md -validation-batch-02.md -... -validation-batch-06.md -``` - -### 필수 구조 - -```markdown -# 검증 요약본 - 배치 N - -## 메타 정보 -- **배치 번호:** N -- **검증 범위:** ch-XXX ~ ch-YYY -- **검증 일시:** YYYY-MM-DD HH:MM -- **검증자:** Claude Sonnet 4.5 - -## 챕터 상세 - -### ch-XXX - -#### 기본 정보 -- **파일명:** ch-XXX.md -- **제목 화수:** N화 -- **제목:** [제목 텍스트] -- **타임라인:** YYYY.MM.DD ~ YYYY.MM.DD -- **분량:** XXX줄 - -#### 주요 이벤트 -1. [이벤트 1] -2. [이벤트 2] -3. [이벤트 3] - -#### 등장 캐릭터 -- **강민준:** (주인공, 회귀자) -- **서윤희:** (여주인공) -- **최태준:** (회귀자, 만주 담당) -- (기타...) - -#### 호칭/말투 패턴 -- 최태준 → 강민준: "형님" + 존댓말 -- 강민준 → 서윤희: "서 선생님" → "서윤희" (변화) - -#### 제목-내용 일치 -- ✅ 일치 / ❌ 불일치 -- 불일치 사유: [...] - -#### 🔴 v3.0 필수 검증 항목 -- **빈 섹션 검증 (J):** 0건 / N건 (라인 XXX) -- **챕터 내부 중복 검증 (G):** 0건 / N건 (라인 XXX-YYY, N줄 중복) - -#### 특이사항 -- 중복: 없음 / 있음 (상세) -- 시간 역행: 없음 / 있음 (상세) -- 기타: [...] - ---- - -### (ch-XXX+1 ~ ch-YYY 동일 형식) - ---- - -## 배치 전체 분석 - -### 타임라인 요약 -- **시작일:** YYYY.MM.DD -- **종료일:** YYYY.MM.DD -- **기간:** N개월 / N일 - -### 주요 플롯 진행 -- [이 배치에서 진행된 주요 스토리라인] - -### 발견된 문제 - -#### 제목 관련 -| 챕터 | 문제 유형 | 상세 | -|------|----------|------| -| ch-XXX | 화수 불일치 | 파일 006인데 제목 7화 | -| ch-YYY | 제목 중복 | ch-XXX와 동일 제목 | - -#### 타임라인 관련 -| 챕터 | 문제 유형 | 상세 | -|------|----------|------| -| ch-XXX | 시간 역행 | 이전 챕터보다 날짜 앞섬 | - -#### 내용 중복 -| 챕터 1 | 챕터 2 | 중복 내용 | -|--------|--------|----------| -| ch-XXX | ch-YYY | [동일한 이벤트] | - -#### 캐릭터 일관성 -| 챕터 | 캐릭터 | 문제 | 상세 | -|------|--------|------|------| -| ch-XXX | 최태준 | 호칭 변화 | "형님" → "민준씨" | - -### 검증 결과 -- ✅ **통과** - 문제 없음 -- ⚠️ **경고** - 경미한 문제 N개 -- ❌ **실패** - 심각한 문제 N개 - -### 다음 단계 -- 배치 N+1 진행 / 수정 필요 / 완료 -``` - ---- - -## 📚 2종 요약본 체계 - -### 작성 요약본 (Writer's Summary) -- **파일:** `summary-001-050.md` 등 -- **작성자:** 사용자 (작가) -- **내용:** 작가가 작성하면서 기록한 진행 상황 -- **목적:** 작성 과정 추적 - -### 검증 요약본 (Validation Summary) -- **파일:** `validation-batch-01.md` ~ `06.md` -- **작성자:** Claude (검증 시) -- **내용:** 실제 본문을 읽고 검증한 결과 -- **목적:** 객관적 검증 결과 - -### 2종 요약본 비교 의미 - -``` -작성 요약본 (주관적) ←→ 검증 요약본 (객관적) - ↓ ↓ - 일치해야 함! - ↓ - 불일치 = 문제 발견 -``` - -**비교 항목:** -1. 챕터 범위 (001-050 vs 실제 작성된 범위) -2. 타임라인 (작성 요약본의 날짜 vs 검증 요약본의 날짜) -3. 주요 이벤트 (요약본에 기록된 내용 vs 실제 본문 내용) -4. 진행도 (로맨스 95% vs 실제 확인된 진행도) - ---- - -## 1️⃣ 본문 검증 모드 (상세) - -### 검증 대상 -``` -L:\내 드라이브\Writing\1945-novel\volumes\vol-01\chapters\ch-*.md -``` - -### 필수 체크 항목 - -#### A. 파일 구조 검증 - -| 항목 | 검증 내용 | 방법 | -|------|----------|------| -| 1. 파일 존재성 | 연속된 챕터 파일 존재 확인 | Glob으로 ch-*.md 목록 추출 | -| 2. 번호 연속성 | ch-001 ~ ch-N까지 빠진 번호 없는지 | 파일명 정렬 후 갭 확인 | -| 3. 중복 번호 | 같은 번호의 파일이 2개 이상인지 | 파일명 중복 확인 | - -#### B. 제목 검증 (중요!) - -각 챕터마다 다음을 확인: - -```markdown -# 1권 N화: [제목] -``` - -| 항목 | 검증 내용 | 오류 예시 | -|------|----------|----------| -| 1. 화수 일치 | 파일명 번호 = 제목 화수 | ch-006.md인데 "# 1권 7화" ❌ | -| 2. 제목 중복 | 다른 챕터와 동일 제목 사용 여부 | ch-006, ch-007 둘 다 "금괴 탈취 작전" ❌ | -| 3. 제목 형식 | "# 1권 N화: [제목]" 형식 준수 | "# 1권 6화 금괴" (콜론 없음) ❌ | - -**중복 제목 금지 예외:** -- Part 1, Part 2로 나뉜 동일 이벤트 (예: 상편/하편) -- 이 경우 제목에 명시: "금괴 탈취 작전 (상)", "금괴 탈취 작전 (하)" - -#### C. 내용 검증 - -각 챕터의 **첫 100줄**을 읽고 확인: - -| 항목 | 검증 내용 | 확인 방법 | -|------|----------|----------| -| 1. 타임라인 명시 | 날짜가 명확히 표시되어 있는지 | "1945년 9월 6일" 같은 표현 찾기 | -| 2. 주요 이벤트 | 무슨 일이 벌어지는지 파악 | Part 1의 첫 장면 읽기 | -| 3. 제목-내용 일치 | 제목과 실제 내용이 맞는지 | "금괴 탈취"인데 내용이 인민공화국 ❌ | - -#### D. 타임라인 검증 - -전체 챕터의 시간 순서: - -| 항목 | 검증 내용 | 오류 예시 | -|------|----------|----------| -| 1. 시간 순서 | 챕터 진행에 따라 시간이 앞으로 가는지 | ch-011 (11.25) → ch-012 (11.1) ❌ | -| 2. 날짜 점프 | 갑작스러운 시간 도약 확인 | 11월 → 12월 중순 (설명 없음) ⚠️ | -| 3. 기간 표시 | 각 챕터가 다루는 기간 명시 | "1946.5.1-5.10" 같은 표현 | - -**비선형 구성 예외:** -- 회상, 플래시백은 명확히 표시되어 있어야 함 -- 병렬 서사(만주/서울)는 Part로 구분되어야 함 - -#### E. 캐릭터 일관성 검증 - -| 항목 | 검증 내용 | 오류 예시 | -|------|----------|----------| -| 1. 호칭 일관성 | 동일 관계에서 호칭 변화 없는지 | 최태준이 "형님" → "민준씨" ❌ | -| 2. 말투 일관성 | 존댓말/반말 패턴 유지 | 강민준이 서윤희에게 갑자기 반말 ❌ | -| 3. 캐릭터 등장 | 처음 등장 시 소개 있는지 | 설명 없이 갑자기 "김미란이" ❌ | - -#### F. 중복 내용 검증 (매우 중요!) - -**방법:** -1. 모든 챕터의 타임라인 추출 -2. 동일 날짜를 다루는 챕터 찾기 -3. 동일 이벤트를 다루는 챕터 찾기 - -**허용되는 중복:** -- 같은 날짜를 **다른 시점**에서 서술 (예: 오전/오후) -- 같은 이벤트를 **다른 캐릭터 시점**에서 서술 - -**금지되는 중복:** -- 완전히 동일한 내용 반복 -- 같은 제목으로 같은 내용 - -#### G. 챕터 내부 장면 중복 검증 ⭐⭐⭐ (v3.0 대폭 강화) - -**중요도:** 🔴 **필수** - v2.0 검증 시 ch-047에서 190줄 중복을 놓침 - -**검증 방법:** -각 챕터 내에서 같은 장면이 반복되는지 **전체 내용** 확인: - -**1단계: 장면 헤더 추출** -```bash -각 챕터의 모든 "## " 헤더 추출 -→ 동일한 헤더가 2번 이상 나오는지 확인 -→ 예: "## 오후 4시, 종로 다방" (202줄, 392줄 2회 등장) -``` - -**2단계: 중복 헤더 발견 시 내용 비교** -```bash -같은 헤더 발견 → 해당 섹션 전체 내용 비교 -→ 50줄 이상 동일 내용 = 🔴 심각한 중복 -→ 10-50줄 동일 내용 = 🟡 중간 중복 -→ 10줄 미만 동일 = 🟢 경미한 중복 -``` - -**3단계: 중복 범위 및 심각도 판정** -| 중복 줄 수 | 심각도 | 판정 | 조치 | -|-----------|--------|------|------| -| 100줄 이상 | 🔴 긴급 | 즉시 보고 | 수정 필수 | -| 50-100줄 | 🔴 높음 | 즉시 보고 | 수정 필수 | -| 10-50줄 | 🟡 중간 | 보고 | 수정 권장 | -| 10줄 미만 | 🟢 낮음 | 기록 | 확인 필요 | - -**검증 항목:** - -| 항목 | 검증 내용 | 오류 예시 | -|------|----------|----------| -| 1. 장면 헤더 중복 | 같은 시간/장소 헤더가 2번 이상 | "## 오후 4시, 종로 다방" (202줄, 392줄) ❌ | -| 2. 대화 내용 중복 | 같은 대화를 여러 번 | "약혼식에 부모님을 모시고 싶어요" 장면 2회 ❌ | -| 3. 서술 내용 중복 | 같은 서술이 반복 | "두 사람은 창가에 앉았다" 동일 문장 2회 ❌ | -| 4. 대규모 장면 중복 | 50줄 이상 동일한 장면 | ch-047: 190줄 완전 중복 ❌ | - -**허용되는 반복:** -- 강조를 위한 **의도적 반복** (명확히 표시: "다시 한 번", "앞서 말했듯이" 등) -- 요약/정리를 위한 반복 (명확히 다른 맥락) -- 10줄 미만의 짧은 대화 반복 (다른 장면에서 언급) - -**금지되는 반복:** -- 🔴 **작가가 잊고 같은 내용을 또 쓴 경우** (ch-047 사례) -- 🔴 **Part/장면 구분 실수로 중복된 경우** -- 🔴 **50줄 이상의 대규모 중복** -- 🔴 **같은 헤더로 같은 장면을 2번 작성** - -**실패 사례 참조:** -``` -ch-047.md (2026-01-17 검증에서 놓침) -- 202-254줄: "## 오후 4시, 종로 다방" 장면 (53줄) -- 392-447줄: "## 오후 4시, 종로 다방" 장면 (56줄) -- 총 190줄 분량 완전 중복 -- v2.0 검증: "내용 중복: 0건" 보고 (❌ 오판) -- 원인: 장면 헤더 중복 체크 미실행 -``` - -**v3.0 개선사항:** -- ✅ 모든 "## " 헤더 강제 추출 및 비교 -- ✅ 중복 헤더 발견 시 내용 전체 비교 필수 -- ✅ 50줄 이상 중복 시 즉시 보고 의무화 -- ✅ validation-batch-XX.md에 "챕터 내부 중복 체크" 항목 필수 기재 - -#### H. 인과관계 논리 검증 ⭐ (신규) - -**방법:** -챕터 간 인과관계가 논리적으로 맞는지 확인: - -| 항목 | 검증 내용 | 오류 예시 | -|------|----------|----------| -| 1. 물건/정보 흐름 | A에서 X를 받았으면 B에서 X를 가지고 있어야 | ch-004에서 명단 받았는데, ch-005에서 또 작성 ❌ | -| 2. 시간 흐름 논리 | 과거 결정이 미래에 반영 | 4화에서 승인했는데 5화에서 또 승인 요청 ❌ | -| 3. 상태 변화 | 상태 변화가 일관성 있게 | 우호적 관계였는데 갑자기 적대적 (이유 없음) ❌ | - -**체크 방법:** -1. 전 챕터에서 발생한 사건 목록 작성 -2. 현 챕터에서 그 사건이 전제되어 있는지 확인 -3. 모순되는 내용이 없는지 확인 - -#### I. 정보 흐름 검증 ⭐ (신규) - -**방법:** -독자가 정보를 순차적으로 받는지 확인: - -| 항목 | 검증 내용 | 오류 예시 | -|------|----------|----------| -| 1. 캐릭터 소개 | 첫 등장 시 소개 있는지 | 강세우가 소개 없이 갑자기 "형님" ❌ | -| 2. 관계 형성 | 관계가 점진적으로 발전 | 첫 만남에서 바로 "형님" (과정 없음) ❌ | -| 3. 설정 공개 | 설정이 필요한 시점에 공개 | 배경 설명을 나레이션으로만 (대화 없음) ❌ | - -**허용되는 방식:** -- 대화로 자연스럽게 소개: "여 선생님이 소개해주셨습니다. 형님으로 모시라고 하셨습니다." -- 단계적 관계 형성: "강 선생님" → "형님" (시간차) - -**금지되는 방식:** -- 나레이션으로만 배경 설명 (캐릭터가 모르는 정보) -- 소개 없이 갑자기 친밀한 호칭 -- 설명 없이 갑자기 등장 - -#### J. 빈 섹션 검증 ⭐⭐⭐ (v3.0 신규 추가) - -**중요도:** 🔴 **필수** - v2.0 검증 시 ch-046 빈 섹션을 놓침 - -**검증 방법:** -각 챕터의 모든 섹션 헤더 뒤에 **실제 내용**이 있는지 확인: - -**1단계: 섹션 헤더 추출** -```bash -각 챕터의 모든 "## " 헤더 라인 번호 추출 -→ 예: ch-046의 293줄 "## 9월 30일 월요일, 저녁" -``` - -**2단계: 헤더 이후 내용 확인** -```bash -헤더 라인 이후 최소 3개의 비어있지 않은 줄이 있는지 확인 -→ 빈 줄(빈 라인), "---" 구분선은 제외 -→ 실제 문장/대화가 있는지 확인 -``` - -**3단계: 빈 섹션 판정** -| 헤더 이후 내용 | 판정 | 심각도 | 조치 | -|---------------|------|--------|------| -| 0줄 (파일 끝) | 빈 섹션 | 🔴 긴급 | 즉시 보고, 수정 필수 | -| 1-2줄만 | 내용 부족 | 🟡 중간 | 보고, 확인 필요 | -| 3줄 이상 | 정상 | 🟢 정상 | - | - -**검증 항목:** - -| 항목 | 검증 내용 | 오류 예시 | -|------|----------|----------| -| 1. 파일 끝 빈 헤더 | 헤더만 있고 파일 종료 | "## 9월 30일 월요일, 저녁" 이후 내용 없음 ❌ | -| 2. 중간 빈 헤더 | 헤더와 다음 헤더 사이 내용 없음 | "## Part 3" 이후 바로 "## Part 4" ❌ | -| 3. 내용 1-2줄만 | 헤더에 비해 내용 너무 짧음 | "## 12월 1일 아침" 이후 "좋은 아침." 한 문장만 ⚠️ | -| 4. 구분선만 | 헤더 + 구분선만 | "## 오후 2시\n---\n(파일 끝)" ❌ | - -**최소 내용 기준:** -- **필수:** 헤더 이후 최소 3줄의 실제 내용 (대화/서술/묘사 등) -- **권장:** 헤더 이후 최소 50자 이상의 텍스트 -- **경고:** 헤더만 있고 내용 0-2줄 = 미완성 의심 - -**허용되는 경우:** -- 짧은 전환 장면 (3줄 이상이면 OK) -- 간략한 일기 항목 (3줄 이상이면 OK) - -**금지되는 경우:** -- 🔴 **헤더만 작성하고 내용 미작성** (ch-046 사례) -- 🔴 **헤더 + 구분선만 있고 파일 종료** -- 🔴 **계획만 세우고 실제 작성 안함** - -**실패 사례 참조:** -``` -ch-046.md (2026-01-17 검증에서 놓침) -- 289줄: "저도요." (마지막 완성된 대화) -- 290줄: (빈 줄) -- 291줄: --- -- 292줄: (빈 줄) -- 293줄: ## 9월 30일 월요일, 저녁 -- 294줄: (빈 줄) -- 295줄: --- -- 296줄: (빈 줄) -- 297줄: (파일 끝) -- v2.0 검증: "제목-내용 일치: 52/52 완벽" 보고 (❌ 오판) -- 원인: 헤더 존재만 확인, 헤더 이후 내용 미확인 -``` - -**v3.0 개선사항:** -- ✅ 모든 "## " 헤더 위치(라인 번호) 추출 -- ✅ 각 헤더 이후 3줄 내 실제 내용 존재 여부 확인 -- ✅ 파일 끝 근처 헤더 특별 주의 -- ✅ validation-batch-XX.md에 "빈 섹션 체크" 항목 필수 기재 -- ✅ 빈 섹션 발견 시 "내용 미완성" 즉시 보고 - -**체크 알고리즘:** -```python -for header_line in headers: - content_lines = [] - current_line = header_line + 1 - - # 헤더 이후 10줄까지 체크 - for i in range(10): - if current_line >= total_lines: - break # 파일 끝 - - line = lines[current_line].strip() - - # 빈 줄, 구분선 제외하고 실제 내용만 카운트 - if line and line != "---": - content_lines.append(line) - - current_line += 1 - - # 실제 내용이 3줄 미만이면 경고 - if len(content_lines) < 3: - report_empty_section(header_line, content_lines) -``` - ---- - -## 본문 검증 절차 (배치별) - -### Step 0: 준비 -```bash -1. validation-standards.md 읽기 (이 문서) -2. 검증 범위 확인 (배치 번호) -3. (배치 N > 1) 이전 배치 결과 읽기 -``` - -### Step 1: 배치 시작 선언 -```markdown -**배치 N 검증을 시작합니다** -- 범위: ch-XXX ~ ch-YYY -- 예상 챕터 수: 10개 -``` - -### Step 2: 파일 구조 확인 -```bash -1. Glob으로 ch-XXX ~ ch-YYY 목록 추출 -2. 연속성 확인 -3. 총 개수 확인 -``` - -### Step 3: 제목 일괄 추출 -```bash -1. 배치 내 모든 챕터의 첫 줄 읽기 (Grep "^# 1권") -2. 제목 테이블 작성 -3. 중복 제목 즉시 확인 -``` - -### Step 4: 챕터별 상세 검증 (v3.0 강화) -```bash -각 챕터마다: -1. 전체 파일 읽기 (첫 100줄이 아닌 전체) -2. 타임라인, 이벤트, 캐릭터 파악 -3. 제목-내용 일치 확인 - -🔴 **v3.0 필수 체크 (반드시 실행):** -4. **빈 섹션 검증 (섹션 J):** - - 모든 "## " 헤더 추출 - - 각 헤더 이후 3줄 내 실제 내용 확인 - - 빈 섹션 발견 시 즉시 보고 - - 결과: "빈 섹션: 0건" 또는 "빈 섹션: N건 (라인 XXX)" - -5. **챕터 내부 중복 검증 (섹션 G):** - - 모든 "## " 헤더 추출 및 중복 확인 - - 중복 헤더 발견 시 내용 비교 - - 50줄 이상 중복 시 즉시 보고 - - 결과: "챕터 내부 중복: 0건" 또는 "챕터 내부 중복: N건 (라인 XXX-YYY)" - -6. 검증 요약본에 기록 (필수 항목 포함) -``` - -**Step 4 체크리스트 (필수):** -```markdown -각 챕터 검증 완료 시 다음을 확인: -- [ ] 타임라인 확인 완료 -- [ ] 주요 이벤트 파악 완료 -- [ ] 제목-내용 일치 확인 완료 -- [ ] 🔴 빈 섹션 검증 완료 (섹션 J) -- [ ] 🔴 챕터 내부 중복 검증 완료 (섹션 G) -- [ ] 검증 요약본에 모든 항목 기록 완료 -``` - -### Step 5: 배치 전체 분석 -```bash -1. 타임라인 순서 확인 -2. 중복 검사 -3. 캐릭터 일관성 확인 -4. 문제점 종합 -``` - -### Step 6: 검증 요약본 파일 생성 -```bash -1. validation-batch-XX.md 파일 작성 -2. 위의 "검증 요약본 형식" 준수 -3. 파일 저장 완료 확인 -``` - -### Step 7: 배치 완료 선언 -```markdown -**배치 N 검증 완료** -- 검증 챕터: N개 -- 문제 발견: N개 -- 결과 파일: validation-batch-XX.md -- 다음: 배치 N+1 진행 / 수정 필요 / 검증 완료 -``` - ---- - -## 본문 검증 완료 기준 - -**단일 배치:** -- [ ] 10개 챕터 모두 검증 -- [ ] 검증 요약본 파일 생성 -- [ ] 문제점 기록 완료 - -**전체 검증:** -- [ ] 모든 배치 완료 (배치 1 ~ 6) -- [ ] 파일 연속성 확인 (빠진 번호 없음) -- [ ] 제목 화수 = 파일명 번호 (전체 일치) -- [ ] 제목 중복 없음 (예외 제외) -- [ ] 제목-내용 일치 (전체) -- [ ] 타임라인 순서 정상 (역행 없음) -- [ ] 내용 중복 없음 (예외 제외) -- [ ] 캐릭터 호칭/말투 일관성 (A+ 등급) - -**본문 검증이 완료되어야만 플롯/요약본 검증 가능!** - ---- - -## 2️⃣ 플롯 검증 모드 - -### 전제 조건 -✅ **본문 검증 완료 필수** (6개 배치 모두) - -### 검증 대상 -``` -검증 요약본: validation-batch-01.md ~ 06.md -플롯: plot-master.md -``` - -### 검증 방법 - -**플롯 읽지 않고 검증 요약본만 사용:** -``` -1. validation-batch-XX.md 읽기 -2. 각 챕터의 타임라인, 주요 이벤트 확인 -3. plot-master.md의 해당 화와 비교 -4. 일치/불일치 기록 -``` - -**장점:** -- 본문을 다시 읽지 않아도 됨 -- 검증 요약본이 이미 정리되어 있음 -- 빠르고 정확한 비교 가능 - -### 필수 체크 항목 - -#### A. 화수 매칭 - -| 플롯 화 | 예정 제목 | 예정 내용 | 검증 요약본 | 실제 제목 | 실제 내용 | 일치? | -|---------|----------|----------|------------|----------|----------|-------| -| 1화 | 빛 속으로 | 2024→1945 회귀 | ch-001 | 빛 속으로 | 회귀 | ✅ | -| 6화 | 금괴 탈취 | 9.11-20 금괴 | ch-006 | 금괴 탈취 | 인민공화국 | ❌ | - -#### B. 내용 일치성 - -| 항목 | 검증 내용 | -|------|----------| -| 1. 타임라인 일치 | 플롯 예정 날짜 = 검증 요약본 날짜 | -| 2. 주요 이벤트 포함 | 플롯에 명시된 이벤트가 검증 요약본에 있는지 | -| 3. 캐릭터 등장 | 플롯에 명시된 캐릭터가 등장하는지 | - -#### C. 누락/추가 확인 - -| 유형 | 확인 내용 | -|------|----------| -| 누락 | 플롯에는 있는데 검증 요약본에 없는 화 | -| 추가 | 플롯에는 없는데 검증 요약본에 있는 화 | -| 순서 변경 | 플롯 순서와 다르게 작성된 화 | - ---- - -## 플롯 검증 절차 - -### Step 1: 준비 -```bash -1. 본문 검증 완료 확인 -2. 모든 검증 요약본 파일 존재 확인 -3. plot-master.md 읽기 -``` - -### Step 2: 플롯 목록 추출 -```bash -1. plot-master.md에서 1화~51화 추출 -2. 각 화의 제목, 타임라인, 주요 내용 정리 -``` - -### Step 3: 검증 요약본 통합 -```bash -1. validation-batch-01.md ~ 06.md 읽기 -2. 전체 챕터 목록 통합 -3. ch-001 ~ ch-052 정리 -``` - -### Step 4: 1:1 매칭 -```bash -플롯 1화 vs ch-001 (검증 요약본 참조) -플롯 2화 vs ch-002 (검증 요약본 참조) -... -플롯 51화 vs ch-051 (검증 요약본 참조) -``` - -### Step 5: 불일치 분석 -```bash -1. 누락된 화 목록 작성 -2. 추가된 화 목록 작성 -3. 내용 변경 사항 분석 -``` - -### Step 6: 보고서 작성 -```bash -플롯 검증 보고서 (아래 형식 참조) -``` - ---- - -## 3️⃣ 요약본 검증 모드 - -### 전제 조건 -✅ **본문 검증 완료 필수** - -### 검증 대상 -``` -작성 요약본: summary-001-050.md (등) -검증 요약본: validation-batch-01.md ~ 06.md -``` - -### 검증 목적 - -**2종 요약본 크로스체크:** -``` -작가가 기록한 내용 vs 실제 검증 결과 - ↓ - 일치 여부 확인 - ↓ - 불일치 = 잠재적 문제 -``` - -### 필수 체크 항목 - -#### A. 범위 일치 - -| 항목 | 작성 요약본 | 검증 요약본 | 일치? | -|------|------------|------------|-------| -| 챕터 범위 | 001-050 | 001-052 | ❌ (2개 차이) | -| 총 챕터 수 | 50개 | 52개 | ❌ | - -#### B. 타임라인 일치 - -각 챕터마다: -``` -작성 요약본의 날짜 = 검증 요약본의 날짜? -``` - -#### C. 주요 이벤트 일치 - -``` -작성 요약본의 이벤트 목록 ⊆ 검증 요약본의 이벤트 목록 -``` - -**불일치 예시:** -- 작성 요약본: "트랜지스터 개발 (6월)" -- 검증 요약본: "트랜지스터 개발 (3월)" -- → 날짜 불일치 발견! - -#### D. 진행도 일치 - -``` -작성 요약본: "로맨스 진행도 95%" -검증 요약본: "로맨스 진행도 35%" (실제 작성 기준) -→ 과대 기록 발견! -``` - ---- - -## 요약본 검증 절차 - -### Step 1: 준비 -```bash -1. 작성 요약본 파일 확인 (summary-*.md) -2. 검증 요약본 파일 확인 (validation-batch-*.md) -``` - -### Step 2: 범위 비교 -```bash -1. 작성 요약본: 001-050 (50개) -2. 검증 요약본: 001-052 (52개) -3. 차이: +2개 -4. 이유 분석 -``` - -### Step 3: 챕터별 비교 -```bash -공통 범위 (001-050) 각 챕터마다: -1. 타임라인 비교 -2. 주요 이벤트 비교 -3. 캐릭터 등장 비교 -4. 불일치 사항 기록 -``` - -### Step 4: 통계 비교 -```bash -1. 진행도 비교 (로맨스, 만주, 정치 등) -2. 주요 이벤트 달성도 -3. 타임라인 범위 -``` - -### Step 5: 불일치 분석 -```bash -1. 경미한 차이 (서술 방식) -2. 중간 차이 (날짜 1-2일) -3. 심각한 차이 (월 단위 차이, 이벤트 누락) -``` - -### Step 6: 보고서 작성 -```bash -요약본 검증 보고서 (아래 형식 참조) -``` - ---- - -## 📊 검증 보고서 형식 - -### 본문 검증 보고서 (배치별) - -```markdown -# 본문 검증 보고서 - 배치 N - -**검증 일시:** YYYY-MM-DD HH:MM -**검증 범위:** ch-XXX ~ ch-YYY -**검증자:** Claude Sonnet 4.5 - -## 1. 파일 구조 -- 예상 챕터 수: 10개 -- 실제 발견: N개 -- 연속성: ✅ 정상 / ❌ 빠진 번호: [...] - -## 2. 제목 검증 - -### 화수 일치 -| 챕터 | 파일 번호 | 제목 화수 | 일치 | -|------|----------|----------|------| -| ch-001 | 001 | 1화 | ✅ | -| ch-006 | 006 | 7화 | ❌ | - -### 제목 중복 -| 챕터 1 | 챕터 2 | 제목 | -|--------|--------|------| -| ch-006 | ch-007 | 금괴 탈취 작전 | - -## 3. 타임라인 검증 - -### 시간 순서 -| 챕터 | 타임라인 | 이전 대비 | 상태 | -|------|---------|----------|------| -| ch-011 | 1945.11.25 | +1일 | ✅ | -| ch-012 | 1945.11.1 | -24일 | ❌ 역행 | - -### 타임라인 범위 -- 시작: YYYY.MM.DD -- 종료: YYYY.MM.DD -- 기간: N일 / N개월 - -## 4. 제목-내용 일치 - -| 챕터 | 제목 | 실제 내용 | 일치 | -|------|------|----------|------| -| ch-006 | 금괴 탈취 작전 | 인민공화국 선포 | ❌ | - -## 5. 중복 내용 (챕터 간) -- 발견: N개 -- 목록: - | 챕터 1 | 챕터 2 | 중복 유형 | 상세 | - -## 🔴 6. v3.0 필수 검증 항목 - -### 6-1. 빈 섹션 검증 (섹션 J) -| 챕터 | 빈 섹션 라인 | 헤더 내용 | 심각도 | -|------|-------------|----------|--------| -| ch-046 | 293 | "## 9월 30일 월요일, 저녁" | 🔴 긴급 | - -- **총 빈 섹션:** N개 -- **🔴 긴급:** N개 (파일 끝 빈 헤더) -- **🟡 주의:** N개 (내용 부족) - -### 6-2. 챕터 내부 중복 검증 (섹션 G) -| 챕터 | 중복 라인 범위 | 헤더 내용 | 중복 줄 수 | 심각도 | -|------|---------------|----------|-----------|--------| -| ch-047 | 202-254, 392-447 | "## 오후 4시, 종로 다방" | 190줄 | 🔴 긴급 | - -- **총 챕터 내부 중복:** N개 -- **🔴 긴급 (50줄 이상):** N개 -- **🟡 주의 (10-50줄):** N개 -- **🟢 경미 (10줄 미만):** N개 - -## 7. 캐릭터 일관성 -- 등급: A+ / A / B / C / F -- 호칭 일관성: ✅ / ❌ -- 말투 일관성: ✅ / ❌ -- 문제점: [...] - -## 최종 판정 -- ✅ **통과** - 문제 없음 -- ⚠️ **경고** - 경미한 문제 N개 -- ❌ **실패** - 심각한 문제 N개 - -## 다음 단계 -- [ ] 배치 N+1 진행 -- [ ] 문제 수정 필요 -- [ ] 전체 검증 완료 -``` - -### 플롯 검증 보고서 - -```markdown -# 플롯 검증 보고서 - -**검증 일시:** YYYY-MM-DD -**대상:** plot-master.md vs validation-batch-01~06.md -**검증자:** Claude Sonnet 4.5 - -## 1. 화수 매칭 - -### 일치율 -- 총 플롯 화수: 51화 -- 일치: N개 (N%) -- 불일치: N개 (N%) - -### 상세 매칭표 -| 플롯 화 | 예정 제목 | 실제 챕터 | 실제 제목 | 일치 | -|---------|----------|-----------|----------|------| -| 1화 | 빛 속으로 | ch-001 | 빛 속으로 | ✅ | -| 6화 | 금괴 탈취 | ch-006 | 금괴 탈취 | ⚠️ 내용 다름 | - -## 2. 누락된 화 -| 플롯 화 | 예정 제목 | 예정 타임라인 | 예정 내용 | 상태 | -|---------|----------|--------------|----------|------| -| 12화 | 신탁통치 반대 | 1945.12.27 | [...] | ❌ 누락 | - -## 3. 추가된 화 -| 챕터 | 제목 | 타임라인 | 내용 | 이유 | -|------|------|---------|------|------| -| ch-052 | 폐허의 도쿄 | 1946.12.31 | 일본 시점 | 플롯 51화 예정 | - -## 4. 순서 변경 -| 플롯 화 | 예정 순서 | 실제 챕터 | 실제 순서 | 이유 | -|---------|----------|-----------|----------|------| -| - | - | - | - | 없음 | - -## 5. 내용 변경 -| 화 | 플롯 예정 | 실제 작성 | 차이점 | -|----|----------|----------|--------| -| 6화 | 금괴 탈취 (9.11-20) | 인민공화국 (9.6) | 완전히 다른 내용 | - -## 최종 판정 -- ✅ **플롯 일치** - 차이 없음 -- ⚠️ **일부 차이** - N개 화 차이, 의도적 변경 가능 -- ❌ **불일치** - 심각한 차이, 수정 필요 -``` - -### 요약본 검증 보고서 - -```markdown -# 요약본 검증 보고서 (2종 크로스체크) - -**검증 일시:** YYYY-MM-DD -**대상:** 작성 요약본 vs 검증 요약본 -**검증자:** Claude Sonnet 4.5 - -## 1. 범위 비교 - -### 전체 범위 -| 항목 | 작성 요약본 | 검증 요약본 | 차이 | -|------|------------|------------|------| -| 챕터 범위 | 001-050 | 001-052 | +2개 | -| 총 챕터 수 | 50개 | 52개 | +2개 | - -### 차이 분석 -- ch-051: 약혼 (작성 요약본 누락) -- ch-052: 폐허의 도쿄 (작성 요약본 누락) -- 이유: 작성 요약본 업데이트 안됨 - -## 2. 타임라인 비교 - -### 주요 이벤트 타임라인 -| 이벤트 | 작성 요약본 | 검증 요약본 | 일치 | -|--------|------------|------------|------| -| 트랜지스터 개발 | 1946.6 | 1946.3 | ❌ 3개월 차이 | -| 이승만 망명 | 1946.3 | 1946.11 | ❌ 8개월 차이 | -| 고백 | 1946.6 | 1946.5 | ❌ 1개월 차이 | - -## 3. 주요 이벤트 비교 - -### 정치 -| 이벤트 | 작성 요약본 | 검증 요약본 | 일치 | -|--------|------------|------------|------| -| 좌우합작 출범 | 1946.5.15 | 1946.5.15 | ✅ | - -### 경제 -| 이벤트 | 작성 요약본 | 검증 요약본 | 일치 | -|--------|------------|------------|------| -| 페니실린 | 있음 | 있음 | ✅ | -| 트랜지스터 | 1946.6 | 1946.3 | ❌ | - -### 로맨스 -| 이벤트 | 작성 요약본 | 검증 요약본 | 일치 | -|--------|------------|------------|------| -| 고백 | 1946.6 | 1946.5 | ❌ | -| 약혼 | 1946.12.15 | 1946.12.15 | ✅ | -| 진행도 | 95% | 35% | ❌ 과대 기록 | - -## 4. 진행도 비교 - -| 항목 | 작성 요약본 | 검증 요약본 | 차이 | -|------|------------|------------|------| -| 로맨스 진행도 | 95% | 35% | -60% | -| 만주 진행도 | 100% | 100% | 0% | - -## 5. 불일치 분석 - -### 경미한 차이 (1-2일) -- 없음 - -### 중간 차이 (1-2개월) -- 트랜지스터: 6월 → 3월 (3개월) -- 고백: 6월 → 5월 (1개월) - -### 심각한 차이 (3개월 이상) -- 이승만 망명: 3월 → 11월 (8개월) - -## 최종 판정 -- ✅ **일치** - 차이 없음 -- ⚠️ **부분 일치** - 경미한 차이 N개 -- ❌ **불일치** - 작성 요약본 업데이트 필요 - -## 권장 조치 -1. 작성 요약본 전면 재작성 -2. 검증 요약본 기준으로 업데이트 -3. 타임라인 오류 수정 -``` - ---- - -## 🚨 검증 실패 시 조치 - -### 본문 검증 실패 -1. **즉시 중단** - 다음 배치로 넘어가지 않음 -2. 문제점 상세 보고 -3. 사용자에게 수정 방향 문의 -4. 수정 후 해당 배치 재검증 - -### 플롯 검증 실패 -1. 차이점 상세 보고 -2. 의도적 변경인지 확인 -3. 수정 필요 여부 문의 -4. 사용자 지시에 따라 조치 - -### 요약본 검증 실패 -1. 불일치 항목 상세 보고 -2. 작성 요약본 업데이트 필요성 확인 -3. 사용자 지시에 따라 조치 - ---- - -## 📌 검증 시 주의사항 - -### 1. 모드 명확히 구분 -- **본문 검증:** 본문만 검증, 플롯 안 봄 -- **플롯 검증:** 검증 요약본 vs 플롯 -- **요약본 검증:** 작성 요약본 vs 검증 요약본 - -### 2. 배치 크기 준수 -- **10개씩 고정** (마지막 배치 제외) -- 한 번에 많이 하지 말 것 - -### 3. 파일 저장 필수 -- 각 배치마다 validation-batch-XX.md 생성 -- 저장 완료 확인 후 다음 배치 - -### 4. 컴팩팅 대비 -- 배치 시작 시 이전 결과 읽기 -- 사용자가 "파일 읽어봐" 지시 가능 -- 파일 읽고 정신 차리기 - -### 5. 검증 기준 문서 참조 -- 검증 시작 전 이 문서 읽기 -- 형식 준수 - -### 6. 보고서 형식 준수 -- 위의 형식 정확히 따르기 -- 사용자가 이해하기 쉽게 - -### 7. 문제 발견 시 즉시 보고 -- 배치 끝날 때까지 기다리지 말 것 -- 심각한 문제는 즉시 보고 - ---- - -## 🎯 검증 완료 체크리스트 - -### 본문 검증 완료 -- [ ] 배치 1 완료 (ch-001~010) -- [ ] 배치 2 완료 (ch-011~020) -- [ ] 배치 3 완료 (ch-021~030) -- [ ] 배치 4 완료 (ch-031~040) -- [ ] 배치 5 완료 (ch-041~050) -- [ ] 배치 6 완료 (ch-051~052) -- [ ] 모든 검증 요약본 파일 생성 -- [ ] 전체 문제점 종합 - -### 플롯 검증 완료 -- [ ] 본문 검증 완료 확인 -- [ ] 검증 요약본 6개 파일 읽기 -- [ ] plot-master.md 읽기 -- [ ] 1:1 매칭 완료 -- [ ] 누락/추가/변경 분석 -- [ ] 플롯 검증 보고서 작성 - -### 요약본 검증 완료 -- [ ] 본문 검증 완료 확인 -- [ ] 작성 요약본 읽기 -- [ ] 검증 요약본 6개 파일 읽기 -- [ ] 2종 요약본 비교 -- [ ] 불일치 분석 -- [ ] 요약본 검증 보고서 작성 - ---- - -## 📚 v3.0 검증 실패 사례 (재발 방지) - -### 사례 1: ch-046 빈 섹션 미검출 (2026-01-17) - -**문제:** -- **챕터:** ch-046.md "1권 46화: 약혼을 위하여" -- **타임라인:** 1946년 9월 16일 ~ 9월 30일 -- **총 라인:** 297줄 -- **문제 위치:** 293-297줄 - -**실제 내용:** -```markdown -289→"저도요." -290→ -291→--- -292→ -293→## 9월 30일 월요일, 저녁 -294→ -295→--- -296→ -297→(파일 끝) -``` - -**v2.0 검증 결과:** -- "제목-내용 일치: 52/52 완벽" ✅ (오판) -- 빈 섹션을 발견하지 못함 - -**원인 분석:** -1. v2.0은 "헤더가 존재하는가"만 체크 -2. "헤더 이후 내용이 있는가"는 체크하지 않음 -3. 첫 100줄만 읽어서 파일 끝 문제 발견 못함 - -**v3.0 개선:** -- ✅ 섹션 J 추가: 빈 섹션 검증 -- ✅ 모든 헤더 이후 최소 3줄 내용 확인 -- ✅ 전체 파일 읽기 (첫 100줄이 아닌) -- ✅ 파일 끝 근처 헤더 특별 주의 - -**재발 방지:** -- 모든 배치 검증 시 섹션 J 체크 필수 -- validation-batch-XX.md에 "빈 섹션: 0건" 명시 필수 - ---- - -### 사례 2: ch-047 챕터 내부 중복 미검출 (2026-01-17) - -**문제:** -- **챕터:** ch-047.md "1권 47화: 원산행 계획" -- **타임라인:** 1946년 10월 1일 ~ 10월 15일 -- **총 라인:** 약 500줄 -- **문제 위치:** 202-254줄, 392-447줄 - -**실제 내용:** - -**첫 번째 장면 (202-254줄, 53줄):** -```markdown -202→## 오후 4시, 종로 다방 -203→ -204→두 사람은 창가에 앉았다. -205→ -206→따뜻한 보리차 향. 밖으로 거리가 보였다. -... -212→"약혼식에... 부모님을 모시고 싶어요." -... -254→"12월 15일이 기다려져요." -``` - -**두 번째 장면 (392-447줄, 56줄):** -```markdown -392→## 오후 4시, 종로 다방 -393→ -394→두 사람은 창가에 앉았다. -395→ -396→따뜻한 보리차 향. 밖으로 거리가 보였다. -... -402→"약혼식에... 부모님을 모시고 싶어요." -... -444→"12월 15일이 기다려져요." -445→ -446→"저도 그렇습니다." -447→ -``` - -**중복 규모:** -- 동일 헤더: "## 오후 4시, 종로 다방" -- 중복 내용: 약 190줄 분량 -- 중복 비율: 챕터 전체의 38% - -**v2.0 검증 결과:** -- "내용 중복: 0건" ✅ (오판) -- 190줄 대규모 중복을 발견하지 못함 - -**원인 분석:** -1. v2.0 섹션 G는 "챕터 간 중복"만 체크 -2. "챕터 내부 중복"은 체크 항목에 없었음 -3. 첫 100줄만 읽어서 392줄의 중복 발견 못함 -4. 장면 헤더 추출/비교 프로세스 미실행 - -**v3.0 개선:** -- ✅ 섹션 G 대폭 강화: 챕터 내부 중복 검증 -- ✅ 모든 "## " 헤더 추출 및 중복 확인 -- ✅ 중복 헤더 발견 시 내용 비교 -- ✅ 50줄 이상 중복 시 즉시 보고 -- ✅ 전체 파일 읽기 필수 - -**재발 방지:** -- 모든 배치 검증 시 섹션 G 체크 필수 -- validation-batch-XX.md에 "챕터 내부 중복: 0건" 명시 필수 -- 중복 헤더 발견 시 반드시 내용 비교 - ---- - -### 교훈 및 원칙 - -**v2.0의 근본적 문제:** -1. **부분 읽기:** 첫 100줄만 읽음 → 파일 끝, 중간 이후 문제 못 찾음 -2. **헤더만 체크:** 헤더 존재 확인만 함 → 헤더 이후 내용 미확인 -3. **챕터 간만 체크:** 챕터 간 중복만 봄 → 챕터 내부 중복 놓침 -4. **선택적 실행:** 섹션 G, H, I가 있었으나 실제 실행 안됨 - -**v3.0 개선 원칙:** -1. ✅ **전체 읽기:** 모든 챕터 전체 내용 읽기 -2. ✅ **내용 검증:** 헤더 뿐 아니라 헤더 이후 내용 확인 -3. ✅ **챕터 내부 검증:** 챕터 내부 중복, 빈 섹션 검증 -4. ✅ **필수 실행:** Step 4에 필수 체크리스트 명시 - -**핵심 메시지:** -> "헤더가 있다고 내용이 있는 것이 아니다" (ch-046) -> "챕터 간 중복이 없다고 챕터 내부 중복이 없는 것이 아니다" (ch-047) - ---- - -**이 문서는 검증 시 필수 참조 문서입니다.** -**검증 모드 진입 시 반드시 이 문서를 먼저 확인하세요.** -**배치 검증 + 검증 요약본 + 2종 크로스체크가 핵심입니다.** - -**v3.0 필수 사항:** -- ✅ 전체 파일 읽기 (첫 100줄이 아닌) -- ✅ 빈 섹션 검증 (섹션 J) 필수 실행 -- ✅ 챕터 내부 중복 검증 (섹션 G) 필수 실행 -- ✅ validation-batch-XX.md에 두 항목 결과 필수 기재