- claude.md.template 추가 (프로젝트별 필수 파일) - README.md v4.0: Single Source of Truth 핵심 컨셉 추가 - project-structure.md v4.0: claude.md 필수화, standards 제거 - standards 파일들은 Guide/templates/standards/에서만 관리 - 프로젝트별/권별 standards 복사 금지 - 버전 불일치 원천 차단 주요 변경사항: 1. 새 프로젝트 시작 시 claude.md 생성 필수 2. 모든 모드 진입 시 Guide/templates/standards/ 참조 3. 프로젝트 내 standards/ 디렉토리 생성 금지 4. volumes/vol-XX/validation-standards.md 생성 금지 이유: 표준 파일이 여러 곳에 복사되면 버전 불일치 발생 해결: Guide를 유일한 소스로 지정, claude.md로 강제 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1280 lines
37 KiB
Markdown
1280 lines
37 KiB
Markdown
# 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에 두 항목 결과 필수 기재
|