- 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>
37 KiB
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개 배치
배치 검증 프로토콜
배치 시작 전:
1. "배치 N 검증 시작합니다" 선언
2. 검증 범위 명시: ch-XXX ~ ch-YYY
3. (N > 1인 경우) 이전 배치 결과 파일 읽기
배치 검증 중:
1. 10개 챕터 순차 검증
2. 중간 결과를 메모리에 누적
3. 문제 발견 시 즉시 기록
배치 완료 후:
1. 검증 요약본 파일 생성: validation-batch-XX.md
2. "배치 N 완료" 선언
3. 다음 배치 진행 여부 확인
컴팩팅 대비:
- 배치 중간에 컴팩팅 발생 가능
- 다음 배치 시작 시 이전 배치 파일 읽으면 복구됨
- 사용자가 "validation-batch-XX.md 읽어봐" 지시 가능
📄 검증 요약본 형식
파일명
validation-batch-01.md
validation-batch-02.md
...
validation-batch-06.md
필수 구조
# 검증 요약본 - 배치 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종 요약본 비교 의미
작성 요약본 (주관적) ←→ 검증 요약본 (객관적)
↓ ↓
일치해야 함!
↓
불일치 = 문제 발견
비교 항목:
- 챕터 범위 (001-050 vs 실제 작성된 범위)
- 타임라인 (작성 요약본의 날짜 vs 검증 요약본의 날짜)
- 주요 이벤트 (요약본에 기록된 내용 vs 실제 본문 내용)
- 진행도 (로맨스 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. 제목 검증 (중요!)
각 챕터마다 다음을 확인:
# 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. 중복 내용 검증 (매우 중요!)
방법:
- 모든 챕터의 타임라인 추출
- 동일 날짜를 다루는 챕터 찾기
- 동일 이벤트를 다루는 챕터 찾기
허용되는 중복:
- 같은 날짜를 다른 시점에서 서술 (예: 오전/오후)
- 같은 이벤트를 다른 캐릭터 시점에서 서술
금지되는 중복:
- 완전히 동일한 내용 반복
- 같은 제목으로 같은 내용
G. 챕터 내부 장면 중복 검증 ⭐⭐⭐ (v3.0 대폭 강화)
중요도: 🔴 필수 - v2.0 검증 시 ch-047에서 190줄 중복을 놓침
검증 방법: 각 챕터 내에서 같은 장면이 반복되는지 전체 내용 확인:
1단계: 장면 헤더 추출
각 챕터의 모든 "## " 헤더 추출
→ 동일한 헤더가 2번 이상 나오는지 확인
→ 예: "## 오후 4시, 종로 다방" (202줄, 392줄 2회 등장)
2단계: 중복 헤더 발견 시 내용 비교
같은 헤더 발견 → 해당 섹션 전체 내용 비교
→ 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. 상태 변화 | 상태 변화가 일관성 있게 | 우호적 관계였는데 갑자기 적대적 (이유 없음) ❌ |
체크 방법:
- 전 챕터에서 발생한 사건 목록 작성
- 현 챕터에서 그 사건이 전제되어 있는지 확인
- 모순되는 내용이 없는지 확인
I. 정보 흐름 검증 ⭐ (신규)
방법: 독자가 정보를 순차적으로 받는지 확인:
| 항목 | 검증 내용 | 오류 예시 |
|---|---|---|
| 1. 캐릭터 소개 | 첫 등장 시 소개 있는지 | 강세우가 소개 없이 갑자기 "형님" ❌ |
| 2. 관계 형성 | 관계가 점진적으로 발전 | 첫 만남에서 바로 "형님" (과정 없음) ❌ |
| 3. 설정 공개 | 설정이 필요한 시점에 공개 | 배경 설명을 나레이션으로만 (대화 없음) ❌ |
허용되는 방식:
- 대화로 자연스럽게 소개: "여 선생님이 소개해주셨습니다. 형님으로 모시라고 하셨습니다."
- 단계적 관계 형성: "강 선생님" → "형님" (시간차)
금지되는 방식:
- 나레이션으로만 배경 설명 (캐릭터가 모르는 정보)
- 소개 없이 갑자기 친밀한 호칭
- 설명 없이 갑자기 등장
J. 빈 섹션 검증 ⭐⭐⭐ (v3.0 신규 추가)
중요도: 🔴 필수 - v2.0 검증 시 ch-046 빈 섹션을 놓침
검증 방법: 각 챕터의 모든 섹션 헤더 뒤에 실제 내용이 있는지 확인:
1단계: 섹션 헤더 추출
각 챕터의 모든 "## " 헤더 라인 번호 추출
→ 예: ch-046의 293줄 "## 9월 30일 월요일, 저녁"
2단계: 헤더 이후 내용 확인
헤더 라인 이후 최소 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에 "빈 섹션 체크" 항목 필수 기재
- ✅ 빈 섹션 발견 시 "내용 미완성" 즉시 보고
체크 알고리즘:
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: 준비
1. validation-standards.md 읽기 (이 문서)
2. 검증 범위 확인 (배치 번호)
3. (배치 N > 1) 이전 배치 결과 읽기
Step 1: 배치 시작 선언
**배치 N 검증을 시작합니다**
- 범위: ch-XXX ~ ch-YYY
- 예상 챕터 수: 10개
Step 2: 파일 구조 확인
1. Glob으로 ch-XXX ~ ch-YYY 목록 추출
2. 연속성 확인
3. 총 개수 확인
Step 3: 제목 일괄 추출
1. 배치 내 모든 챕터의 첫 줄 읽기 (Grep "^# 1권")
2. 제목 테이블 작성
3. 중복 제목 즉시 확인
Step 4: 챕터별 상세 검증 (v3.0 강화)
각 챕터마다:
1. 전체 파일 읽기 (첫 100줄이 아닌 전체)
2. 타임라인, 이벤트, 캐릭터 파악
3. 제목-내용 일치 확인
🔴 **v3.0 필수 체크 (반드시 실행):**
4. **빈 섹션 검증 (섹션 J):**
- 모든 "## " 헤더 추출
- 각 헤더 이후 3줄 내 실제 내용 확인
- 빈 섹션 발견 시 즉시 보고
- 결과: "빈 섹션: 0건" 또는 "빈 섹션: N건 (라인 XXX)"
5. **챕터 내부 중복 검증 (섹션 G):**
- 모든 "## " 헤더 추출 및 중복 확인
- 중복 헤더 발견 시 내용 비교
- 50줄 이상 중복 시 즉시 보고
- 결과: "챕터 내부 중복: 0건" 또는 "챕터 내부 중복: N건 (라인 XXX-YYY)"
6. 검증 요약본에 기록 (필수 항목 포함)
Step 4 체크리스트 (필수):
각 챕터 검증 완료 시 다음을 확인:
- [ ] 타임라인 확인 완료
- [ ] 주요 이벤트 파악 완료
- [ ] 제목-내용 일치 확인 완료
- [ ] 🔴 빈 섹션 검증 완료 (섹션 J)
- [ ] 🔴 챕터 내부 중복 검증 완료 (섹션 G)
- [ ] 검증 요약본에 모든 항목 기록 완료
Step 5: 배치 전체 분석
1. 타임라인 순서 확인
2. 중복 검사
3. 캐릭터 일관성 확인
4. 문제점 종합
Step 6: 검증 요약본 파일 생성
1. validation-batch-XX.md 파일 작성
2. 위의 "검증 요약본 형식" 준수
3. 파일 저장 완료 확인
Step 7: 배치 완료 선언
**배치 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: 준비
1. 본문 검증 완료 확인
2. 모든 검증 요약본 파일 존재 확인
3. plot-master.md 읽기
Step 2: 플롯 목록 추출
1. plot-master.md에서 1화~51화 추출
2. 각 화의 제목, 타임라인, 주요 내용 정리
Step 3: 검증 요약본 통합
1. validation-batch-01.md ~ 06.md 읽기
2. 전체 챕터 목록 통합
3. ch-001 ~ ch-052 정리
Step 4: 1:1 매칭
플롯 1화 vs ch-001 (검증 요약본 참조)
플롯 2화 vs ch-002 (검증 요약본 참조)
...
플롯 51화 vs ch-051 (검증 요약본 참조)
Step 5: 불일치 분석
1. 누락된 화 목록 작성
2. 추가된 화 목록 작성
3. 내용 변경 사항 분석
Step 6: 보고서 작성
플롯 검증 보고서 (아래 형식 참조)
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: 준비
1. 작성 요약본 파일 확인 (summary-*.md)
2. 검증 요약본 파일 확인 (validation-batch-*.md)
Step 2: 범위 비교
1. 작성 요약본: 001-050 (50개)
2. 검증 요약본: 001-052 (52개)
3. 차이: +2개
4. 이유 분석
Step 3: 챕터별 비교
공통 범위 (001-050) 각 챕터마다:
1. 타임라인 비교
2. 주요 이벤트 비교
3. 캐릭터 등장 비교
4. 불일치 사항 기록
Step 4: 통계 비교
1. 진행도 비교 (로맨스, 만주, 정치 등)
2. 주요 이벤트 달성도
3. 타임라인 범위
Step 5: 불일치 분석
1. 경미한 차이 (서술 방식)
2. 중간 차이 (날짜 1-2일)
3. 심각한 차이 (월 단위 차이, 이벤트 누락)
Step 6: 보고서 작성
요약본 검증 보고서 (아래 형식 참조)
📊 검증 보고서 형식
본문 검증 보고서 (배치별)
# 본문 검증 보고서 - 배치 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 진행
- [ ] 문제 수정 필요
- [ ] 전체 검증 완료
플롯 검증 보고서
# 플롯 검증 보고서
**검증 일시:** 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개 화 차이, 의도적 변경 가능
- ❌ **불일치** - 심각한 차이, 수정 필요
요약본 검증 보고서
# 요약본 검증 보고서 (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. 모드 명확히 구분
- 본문 검증: 본문만 검증, 플롯 안 봄
- 플롯 검증: 검증 요약본 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줄
실제 내용:
289→"저도요."
290→
291→---
292→
293→## 9월 30일 월요일, 저녁
294→
295→---
296→
297→(파일 끝)
v2.0 검증 결과:
- "제목-내용 일치: 52/52 완벽" ✅ (오판)
- 빈 섹션을 발견하지 못함
원인 분석:
- v2.0은 "헤더가 존재하는가"만 체크
- "헤더 이후 내용이 있는가"는 체크하지 않음
- 첫 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줄):
202→## 오후 4시, 종로 다방
203→
204→두 사람은 창가에 앉았다.
205→
206→따뜻한 보리차 향. 밖으로 거리가 보였다.
...
212→"약혼식에... 부모님을 모시고 싶어요."
...
254→"12월 15일이 기다려져요."
두 번째 장면 (392-447줄, 56줄):
392→## 오후 4시, 종로 다방
393→
394→두 사람은 창가에 앉았다.
395→
396→따뜻한 보리차 향. 밖으로 거리가 보였다.
...
402→"약혼식에... 부모님을 모시고 싶어요."
...
444→"12월 15일이 기다려져요."
445→
446→"저도 그렇습니다."
447→
중복 규모:
- 동일 헤더: "## 오후 4시, 종로 다방"
- 중복 내용: 약 190줄 분량
- 중복 비율: 챕터 전체의 38%
v2.0 검증 결과:
- "내용 중복: 0건" ✅ (오판)
- 190줄 대규모 중복을 발견하지 못함
원인 분석:
- v2.0 섹션 G는 "챕터 간 중복"만 체크
- "챕터 내부 중복"은 체크 항목에 없었음
- 첫 100줄만 읽어서 392줄의 중복 발견 못함
- 장면 헤더 추출/비교 프로세스 미실행
v3.0 개선:
- ✅ 섹션 G 대폭 강화: 챕터 내부 중복 검증
- ✅ 모든 "## " 헤더 추출 및 중복 확인
- ✅ 중복 헤더 발견 시 내용 비교
- ✅ 50줄 이상 중복 시 즉시 보고
- ✅ 전체 파일 읽기 필수
재발 방지:
- 모든 배치 검증 시 섹션 G 체크 필수
- validation-batch-XX.md에 "챕터 내부 중복: 0건" 명시 필수
- 중복 헤더 발견 시 반드시 내용 비교
교훈 및 원칙
v2.0의 근본적 문제:
- 부분 읽기: 첫 100줄만 읽음 → 파일 끝, 중간 이후 문제 못 찾음
- 헤더만 체크: 헤더 존재 확인만 함 → 헤더 이후 내용 미확인
- 챕터 간만 체크: 챕터 간 중복만 봄 → 챕터 내부 중복 놓침
- 선택적 실행: 섹션 G, H, I가 있었으나 실제 실행 안됨
v3.0 개선 원칙:
- ✅ 전체 읽기: 모든 챕터 전체 내용 읽기
- ✅ 내용 검증: 헤더 뿐 아니라 헤더 이후 내용 확인
- ✅ 챕터 내부 검증: 챕터 내부 중복, 빈 섹션 검증
- ✅ 필수 실행: Step 4에 필수 체크리스트 명시
핵심 메시지:
"헤더가 있다고 내용이 있는 것이 아니다" (ch-046) "챕터 간 중복이 없다고 챕터 내부 중복이 없는 것이 아니다" (ch-047)
이 문서는 검증 시 필수 참조 문서입니다. 검증 모드 진입 시 반드시 이 문서를 먼저 확인하세요. 배치 검증 + 검증 요약본 + 2종 크로스체크가 핵심입니다.
v3.0 필수 사항:
- ✅ 전체 파일 읽기 (첫 100줄이 아닌)
- ✅ 빈 섹션 검증 (섹션 J) 필수 실행
- ✅ 챕터 내부 중복 검증 (섹션 G) 필수 실행
- ✅ validation-batch-XX.md에 두 항목 결과 필수 기재