v4.0: Single Source of Truth 시스템 확립

- 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>
This commit is contained in:
Alex
2026-01-23 12:41:35 +09:00
parent 854ff7d1f5
commit 271c11d6fc
10 changed files with 1768 additions and 190 deletions

View File

@@ -10,7 +10,85 @@
### 추가 예정
- CLAUDE.md.template 프로젝트 변수 섹션
- foreshadows.md.template (복선 추적 시스템)
- 1945 프로젝트 적용 후 피드백 반영
---
## [v4.3.0] - 2026-01-20 (로맨스 자연스러움 가이드)
### Added
- **로맨스-가이드.md v1.0.0**: 자연스러운 로맨스 집필 가이드 신규 생성
- 핵심 원칙: 비율 강제 금지, 자연스러움 최우선
- ❌ 하지 말아야 할 것 3가지 (비율 강제, 가족 일상 착각, 과도한 수위)
- ✅ 해야 할 것 3가지 (자연스러운 배치, 감정 고조 순간 집중, 은유와 여백)
- 화별 로맨스 배분: 집중 화 50-80%, 일반 화 0-20%, 중간 화 20-40%
- 구체적 작법: 첫날밤 장면, 일상 vs 로맨스, 갈등/화해
- 우수 사례 4개 + 주의 사례 2개
- 최종 원칙 4가지
- **writing-guide.md v2.4.0**: 로맨스 섹션 통합
- "로맨스 ⭐ 중요" 섹션 신규 추가 (라인 339-448)
- 핵심 원칙: 비율 강제 금지, 장르 정체성 유지
- 로맨스 정의 명확화 (카운트 vs 비카운트)
- 화별 로맨스 배분 유연 가이드
- 신혼/출산 장면 수위 가이드 (은유적 표현 + 페이드 아웃)
- 자연스러운 로맨스 예시
- 상세 가이드 참조 링크
- **로맨스-조정-완료-보고서.md**: 작업 결과 문서화
- 조정 방침: 기계적 배분 → 자연스러운 유연 배분
- 6권 2화, 4권 19화 수정 내용
- 억지 로맨스 제거 권장 사항
- 예상 효과 (비율 정규화, 톤 일관성 안정)
- 집필 시 적용 원칙 4가지
### Changed
- **1945-novel/volumes/vol-06/plot-master.md**: 2화 신혼 장면 수정
- 수정 전: 첫날밤 상세 묘사 3,000자
- 수정 후: 은유적 표현 + 다음날 아침 페이드 아웃 (300자)
- **1945-novel/volumes/vol-04/plot-master.md**: 19화 신혼 장면 수정
- 수정 전: 첫날밤 상세 묘사
- 수정 후: 은유적 표현 + 신혼 일상 + 임신 소식
### Standards 버전
| 파일 | 이전 버전 | 현재 버전 | 변경사항 |
|------|----------|----------|------------|
| writing-guide.md | v2.3.0 | v2.4.0 | 로맨스 섹션 통합 |
| 로맨스-가이드.md | - | v1.0.0 | 신규 생성 |
### 적용 배경
- **1945-novel 로맨스 비율 강제 문제 발견**:
- 모든 화에 로맨스 20-30% 기계적 배분
- 억지로 부부 대화 삽입 → 자연스럽지 않음
- 6권 2화: 과도한 신혼 첫날밤 묘사 (3,000자)
- 일반 가족 일상을 로맨스로 착각 (저녁 식사, 육아 상담 등)
- **디렉터의 핵심 인사이트**:
- "로맨스 비율을 고정한다는 거 자체가 문제"
- 자연스러운 흐름 우선, 비율은 결과적으로 평균 20-30%면 충분
- **장르 정체성 재확립**:
- 대체역사 소설 > 로맨스 (주재료 vs 양념)
- 로맨스 집중 화는 50-80% OK
- 일반 화는 0-20% 또는 0%도 OK
### 핵심 개선
```
기존: 모든 화 로맨스 20-30% 강제 → 억지 삽입
개선: 자연스러운 배분 (0% ~ 80% 유연) → 평균 20-30%
로맨스 정의 명확화:
✅ 로맨스: 고백, 키스, 프러포즈, 애정 표현, 갈등/화해
❌ 로맨스 아님: 일반 가족 대화, 일상 생활, 출퇴근
신혼 장면 수위:
❌ 3,000자 상세 묘사 (로맨스 소설 수위)
✅ 은유적 표현 + 페이드 아웃 (300자)
```
### 파급 효과
- 6권 평균 로맨스: 32% → 26% (자연스러움 증가)
- 4권 2부 평균: 42% → 32% (톤 일관성 안정)
- 억지 삽입 최소화, 독자 만족도 예상 향상
- 집필자 부담 감소 (비율 맞추기 스트레스 제거)
---

View File

@@ -1,9 +1,11 @@
# Creative Writing System - Design Guide (v1.0)
# Creative Writing System - Design Guide (v1.1)
> **작성일:** 2026-01-18
> **버전:** 1.0.0
> **최종 수정:** 2026-01-21
> **버전:** 1.1.0
> **시스템:** Creative Writing System (CWS)
> **목적:** 창작 프로젝트의 설계 단계를 체계화하여, 작성 단계에서의 수정을 최소화
> **주요 변경 (v1.1):** Multi-작가 시스템 - 작가 문체 정의 기능 추가
---
@@ -49,13 +51,14 @@
1. [모델별 역할 분담](#1-모델별-역할-분담)
2. [설계 원칙](#2-설계-원칙)
3. [Phase 0: 아이디어 → 컨셉](#3-phase-0-아이디어--컨셉)
4. [Phase 1: 세계관 설계](#4-phase-1-세계관-설계)
5. [Phase 2: 캐릭터 설계](#5-phase-2-캐릭터-설계)
6. [Phase 3: 타임라인 설계](#6-phase-3-타임라인-설계)
7. [Phase 4: 플롯 설계](#7-phase-4-플롯-설계)
8. [Phase 5: 설계 검증](#8-phase-5-설계-검증)
9. [산출물 명세](#9-산출물-명세)
10. [Writing Guide로 핸드오프](#10-writing-guide로-핸드오프)
4. [Phase 0.5: 작가 문체 정의](#4-phase-05-작가-문체-정의) ⭐ **v1.1 신규**
5. [Phase 1: 세계관 설계](#5-phase-1-세계관-설계)
6. [Phase 2: 캐릭터 설계](#6-phase-2-캐릭터-설계)
7. [Phase 3: 타임라인 설계](#7-phase-3-타임라인-설계)
8. [Phase 4: 플롯 설계](#8-phase-4-플롯-설계)
9. [Phase 5: 설계 검증](#9-phase-5-설계-검증)
10. [산출물 명세](#10-산출물-명세)
11. [Writing Guide로 핸드오프](#11-writing-guide로-핸드오프)
---
@@ -73,6 +76,7 @@
```
Phase 0: 아이디어/컨셉 → Opus (창의성, 깊이)
Phase 0.5: 작가 문체 정의 → Sonnet (분석, 패턴 추출) ⭐ v1.1 신규
Phase 1: 세계관 설계 → Sonnet (체계적 정리)
Phase 2: 캐릭터 설계 → Opus (심리, 관계, 감정)
Phase 3: 타임라인 설계 → Sonnet (정확성, 구조)
@@ -251,7 +255,430 @@ Phase 0 완료 조건:
---
## 4. Phase 1: 세계관 설계
## 4. Phase 0.5: 작가 문체 정의
> **담당 모델:** Sonnet
> **신규 기능:** v1.1 Multi-작가 시스템
### 4.1 목표
- 프로젝트의 문체(Writing Style) 정의
- 작가 프로필 생성 또는 선택
- 문체 일관성 기준 수립
- 작성 단계에서 문체 준수 가능하도록 명확한 가이드 제공
### 4.2 왜 작가 문체를 정의하는가?
```
❌ 문체 정의 없이 작성:
작성 → 챕터마다 문장 길이 다름 → 어미 불일치 → 독자 위화감
✅ 문체 정의 후 작성:
작가 정의 → 문체 기준 명확 → 일관된 작성 → 독자 몰입
```
**핵심:**
- 여러 세션에 걸쳐 작성해도 문체가 일관됨
- Multi-작가 시스템: 프로젝트마다 다른 작가(문체) 사용 가능
- 검증 단계에서 문체 체크 가능
### 4.3 작가 정의 프로세스
```
1. project-config.md 읽기
- 장르, 톤, 분위기 파악
2. 작가 생성 방법 선택
- 방법 A: 기존 작품 분석 (추천)
- 방법 B: 처음부터 정의
- 방법 C: 기존 작가 프로필 재사용
3. 작가 문체 분석/정의
- 10가지 항목 정의 (아래 템플릿 참조)
4. 산출물: authors/author-XX.md
```
### 4.4 작가 정의 10가지 항목
이 10가지 항목을 모두 정의해야 합니다:
```
1⃣ 문장 길이 패턴
2⃣ 어미 패턴 (과거형/현재형 비율)
3⃣ 문장 구조 (단문/복문 비율)
4⃣ 어휘 특성 (한자어/고유어, 감탄사, 반복 표현)
5⃣ 묘사 스타일 (Show Don't Tell, 5감 묘사)
6⃣ 대화 스타일 (짧음/김, 비율, 호칭)
7⃣ 단락 구조 (1단락당 문장 수, 빈 줄 사용)
8⃣ 리듬감 (짧은 문장 연타, 삼박자 등)
9⃣ 시제 사용 (과거/현재, 독백 시제)
🔟 관점 (1인칭/3인칭, POV 전환)
```
### 4.5 방법 A: 기존 작품 분석 (추천)
**상황:** 이미 작성한 챕터 3~6개가 있을 때
```
1. 기존 챕터 3~6개 읽기
2. 10가지 항목별로 패턴 추출
- 문장 길이: 평균 __자, 짧은 문장 빈도 __%
- 어미 패턴: "-었다" _%, "-는다" _%
- ...
3. author-XX.md 생성
4. 체크리스트 작성
```
**예시:**
- 1945 소설 → ch-001~006 분석 → `author-01.md` 생성
- 로맨스 소설 → ch-001~005 분석 → `author-02.md` 생성
### 4.6 방법 B: 처음부터 정의
**상황:** 새 프로젝트 시작, 작성된 챕터 없음
```
1. project-config.md 톤/분위기 참고
- "진지한 대체역사" → 짧은 문장, 과거형, 직설적
- "가벼운 로맨스" → 긴 문장, 현재형, 감탄사 多
2. 10가지 항목 하나씩 결정
- "문장 길이: 평균 20자, 단문 위주"
- "어미: 과거형 90%, 현재형 10%"
- ...
3. author-XX.md 생성
4. 테스트 작성 (1화 샘플)
- 정의한 문체대로 1화 작성
- 위화감 있으면 조정
- author-XX.md 업데이트
```
### 4.7 방법 C: 기존 작가 재사용
**상황:** 이전 프로젝트와 비슷한 톤/장르
```
1. 기존 author-XX.md 복사
2. project-config.md와 비교
- 톤/분위기 일치하면 그대로 사용
- 차이 있으면 부분 수정
3. authors/author-YY.md로 저장
```
### 4.8 author-XX.md 템플릿
```markdown
# Author-XX: [프로젝트명 또는 장르] 작가 스타일
> **생성일:** YYYY-MM-DD
> **분석 대상:** (기존 챕터 또는 "신규 정의")
> **용도:** [프로젝트명] 집필 시 문체 기준
---
## 📝 작가 개요
**특징:** (한 줄 요약)
**장르:**
**톤:**
---
## 1⃣ 문장 길이 패턴
### 특징
- 평균 문장 길이: __~__자
- 짧은 문장 (10자 이하) 빈도: __%
- 긴 문장 (40자 이상) 빈도: __%
### 예시
```
(실제 예시 3~5개)
```
### 규칙
- ✅ (작성 시 지킬 규칙)
- ❌ (피해야 할 패턴)
---
## 2⃣ 어미 패턴
### 통계
- **과거형 "-었다/-였다/-았다"**: __%
- **현재형 "-는다/-ㄴ다"**: __%
- **의문형 "-까/-나/-ㄹ까"**: __%
### 예시
```
(실제 예시)
```
### 규칙
- ✅
- ❌
---
## 3⃣ 문장 구조
### 특징
- **단문**: __% (한 문장 = 한 정보)
- **복문**: __% (접속사 연결)
### 예시
```
✅ 선호 구조:
(예시)
❌ 비권장 구조:
(예시)
```
### 규칙
- ✅
- ❌
---
## 4⃣ 어휘 특성
### 특징
- 한자어 vs 고유어 비율: __ : __
- 감탄사/의성어: (많음/보통/적음)
- 핵심 단어 반복: (함/안 함)
### 예시
```
(특징적 어휘 패턴)
```
### 규칙
- ✅
- ❌
---
## 5⃣ 묘사 스타일
### 원칙
- **Show Don't Tell**: (철저/보통/Tell 허용)
- **5감 묘사**: (시각 _%, 청각 _%, 촉각 _%, ...)
### 예시
```
❌ Tell:
(예시)
✅ Show:
(예시)
```
### 규칙
- ✅
- ❌
---
## 6⃣ 대화 스타일
### 특징
- 대화 길이: (짧음/보통/김)
- 대화 비율: __% (서술 __%)
- 대화 태그: (많음/적음)
### 예시
```
✅ 선호 스타일:
(예시)
❌ 비권장:
(예시)
```
### 규칙
- ✅
- ❌
---
## 7⃣ 단락 구조
### 특징
- 1단락 = __~__문장
- 빈 줄 사용: (매 단락/특정 상황만)
- 최대 단락 길이: __문장
### 예시
```
✅ 선호 구조:
(실제 단락 예시)
❌ 비권장:
(너무 긴 단락 예시)
```
### 규칙
- ✅
- ❌
---
## 8⃣ 리듬감
### 특징
- 짧은 문장 연타: (자주 사용/가끔/안 함)
- 삼박자 리듬 (Rule of Three): (사용/안 함)
### 예시
```
✅ 리듬감 조성:
(예시)
```
### 규칙
- ✅
- ❌
---
## 9⃣ 시제 사용
### 규칙
- **기본 시제:** (과거/현재)
- **독백 시제:** (과거/현재)
- **회상 시제:** (과거완료/현재)
### 예시
```
✅ 기본:
(예시)
✅ 독백:
(예시)
```
### 규칙
- ✅
- ❌
---
## 🔟 관점 (POV)
### 특징
- **기본 관점:** (1인칭/3인칭 전지적/3인칭 제한)
- **POV 전환:** (함/안 함)
- **내면 묘사:** (빈번/보통/적음)
### 예시
```
(POV 예시)
```
### 규칙
- ✅
- ❌
---
## 📊 문체 체크리스트
작성 후 자가 점검:
### 문장
- [ ] 문장 길이가 기준 범위 내인가?
- [ ] 어미 비율이 기준과 맞는가?
- [ ] 문장 구조가 일관되는가?
### 어휘
- [ ] 어휘 특성이 일관되는가?
- [ ] 부적절한 어휘 사용 없는가?
### 묘사
- [ ] 묘사 스타일 준수했는가?
- [ ] 5감 묘사 비율 적절한가?
### 대화
- [ ] 대화 길이/비율 적절한가?
- [ ] 호칭 일관성 유지했는가?
### 구조
- [ ] 단락 구조 일관되는가?
- [ ] 리듬감 적절한가?
### 시제/관점
- [ ] 시제 사용 일관되는가?
- [ ] POV 일탈 없는가?
---
## 📌 핵심 원칙 (Top 5)
1. (가장 중요한 문체 특징 1)
2. (가장 중요한 문체 특징 2)
3. (가장 중요한 문체 특징 3)
4. (가장 중요한 문체 특징 4)
5. (가장 중요한 문체 특징 5)
---
**이 작가 스타일은 [프로젝트명] 전체에 적용됩니다.**
```
### 4.9 작가 선택 및 적용
```markdown
## project-config.md에 작가 명시
프로젝트 설정 파일에 사용할 작가를 명시:
```markdown
# 프로젝트 설정
## 기본 정보
- **제목:** 1945
- **장르:** 대체역사
- **작가 스타일:** author-01 ⭐ 명시!
...
```
작성 모드 진입 시 AI가 해당 작가 파일을 읽고 문체 준수.
```
### 4.10 Multi-작가 시스템
```
프로젝트A: author-01 (짧고 강렬한 문장)
프로젝트B: author-02 (부드럽고 긴 문장)
프로젝트C: author-01 재사용 (동일 톤)
→ 각 프로젝트마다 일관된 문체 유지
→ 프로젝트 간 문체 혼동 방지
```
### 4.11 체크리스트
```
Phase 0.5 완료 조건:
- [ ] 작가 정의 방법 선택 (A/B/C)
- [ ] 10가지 항목 모두 정의
- [ ] 예시 문장 3개 이상 작성
- [ ] 문체 체크리스트 작성
- [ ] 핵심 원칙 Top 5 명시
- [ ] authors/author-XX.md 생성 완료
- [ ] project-config.md에 작가 명시
```
---
## 5. Phase 1: 세계관 설계
> **담당 모델:** Sonnet
@@ -390,7 +817,7 @@ Phase 1 완료 조건:
---
## 5. Phase 2: 캐릭터 설계
## 6. Phase 2: 캐릭터 설계
> **담당 모델:** Opus
@@ -561,7 +988,7 @@ Phase 2 완료 조건:
---
## 6. Phase 3: 타임라인 설계
## 7. Phase 3: 타임라인 설계
> **담당 모델:** Sonnet
@@ -682,7 +1109,7 @@ Phase 3 완료 조건:
---
## 7. Phase 4: 플롯 설계
## 8. Phase 4: 플롯 설계
> **담당 모델:** Sonnet
@@ -870,9 +1297,9 @@ Phase 4 완료 조건:
---
## 8. Phase 5: 설계 검증
## 9. Phase 5: 설계 검증
### 8.1 2단계 검증 체계
### 9.1 2단계 검증 체계
```
┌─────────────────────────────────────────────────────────┐
@@ -894,7 +1321,7 @@ Phase 4 완료 조건:
└─────────────────────────────────────────────────────────┘
```
### 8.2 Phase 5-1: 품질 검증 (Opus)
### 9.2 Phase 5-1: 품질 검증 (Opus)
> **담당 모델:** Opus
@@ -933,7 +1360,7 @@ Phase 4 완료 조건:
- [ ] 감정 고조와 이완이 번갈아 있는가?
```
### 8.3 Phase 5-2: 일관성 검증 (Codex)
### 9.3 Phase 5-2: 일관성 검증 (Codex)
> **담당 모델:** Codex
@@ -971,7 +1398,7 @@ Phase 4 완료 조건:
- [ ] Deus Ex Machina가 없는가?
```
### 8.4 검증 결과 기록
### 9.4 검증 결과 기록
```markdown
# 설계 검증 보고서
@@ -1023,7 +1450,7 @@ Phase 4 완료 조건:
*검증을 통과한 설계만 작성 단계로 넘어갑니다.*
```
### 8.5 체크리스트
### 9.5 체크리스트
```
Phase 5 완료 조건:
@@ -1036,20 +1463,21 @@ Phase 5 완료 조건:
---
## 9. 산출물 명세
## 10. 산출물 명세
### 9.1 설계 단계 산출물 목록
### 10.1 설계 단계 산출물 목록
| 파일 | Phase | 담당 | 필수 |
|------|-------|------|------|
| `project-config.md` | 0 | Opus | ✅ |
| `authors/author-XX.md` | 0.5 | Sonnet | ✅ ⭐ v1.1 신규 |
| `worldbuilding.md` | 1 | Sonnet | ✅ |
| `characters-master.md` | 2 | Opus | ✅ |
| `timeline-master.md` | 3 | Sonnet | ✅ |
| `plot-master.md` | 4 | Sonnet | ✅ |
| `design-verification.md` | 5 | Opus+Codex | ✅ |
### 9.2 파일 저장 위치
### 10.2 파일 저장 위치
```
project/
@@ -1061,6 +1489,11 @@ project/
│ ├── plot-master.md # Phase 4
│ └── design-verification.md # Phase 5
├── authors/ # 작가 문체 프로필 ⭐ v1.1 신규
│ ├── author-01.md # Phase 0.5
│ ├── author-02.md # (필요 시)
│ └── ...
├── standards/ # 방법론 (CWS에서 복사)
│ └── ...
@@ -1068,47 +1501,54 @@ project/
└── ...
```
### 9.3 파일 간 참조 관계
### 10.3 파일 간 참조 관계
```
project-config.md
worldbuilding.md ◀──────────────────┐
├──────────────────────────────┐
│ │
▼ ▼
authors/author-XX.md worldbuilding.md ◀──────────┐
│ │ │
│ (작성 시 참조) ▼ │
│ characters-master.md ◀──────┤
│ │ │
│ ▼ │
└────────────────────▶ timeline-master.md ◀───────┤
│ │
▼ │
characters-master.md ──────┐ │
│ │ │
▼ │ │
timeline-master.md ◀────────┼───────┤
│ │ │
▼ │ │
plot-master.md ─────────────┴───────┘
plot-master.md ─────────────┘
design-verification.md
```
**v1.1 신규:**
- `author-XX.md``project-config.md` 톤/분위기 기반 생성
- 작성 모드에서 `author-XX.md` 참조하여 문체 준수
---
## 10. Writing Guide로 핸드오프
## 11. Writing Guide로 핸드오프
### 10.1 핸드오프 조건
### 11.1 핸드오프 조건
```
✅ 모든 Phase 완료
✅ 모든 Phase 완료 (0 ~ 5)
✅ 검증 통과
✅ 산출물 6개 완성
✅ 산출물 7개 완성 ⭐ v1.1: author-XX.md 추가
✅ 파일 간 참조 정상
```
### 10.2 핸드오프 체크리스트
### 11.2 핸드오프 체크리스트
```markdown
## 설계 → 작성 핸드오프 체크리스트
### 파일 확인
- [ ] project-config.md 존재
- [ ] authors/author-XX.md 존재 ⭐ v1.1 신규
- [ ] worldbuilding.md 존재
- [ ] characters-master.md 존재
- [ ] timeline-master.md 존재
@@ -1129,12 +1569,13 @@ design-verification.md
- [ ] 작성 모드 진입 가능!
```
### 10.3 Writing Guide에서 읽을 파일
### 11.3 Writing Guide에서 읽을 파일
```
작성 모드 시작 시 AI가 읽는 파일:
✅ CLAUDE.md
✅ authors/author-XX.md ⭐ v1.1 신규 (문체 준수)
✅ settings/characters-master.md (해당 권 부분)
✅ settings/timeline-master.md (해당 권 부분)
✅ volumes/vol-XX/plots/plot-XXX-YYY.md
@@ -1146,7 +1587,7 @@ design-verification.md
❌ design-verification.md (검증용)
```
### 10.4 핸드오프 후 설계 수정
### 11.4 핸드오프 후 설계 수정
```
⚠️ 작성 단계에서 설계 수정이 필요할 때:

View File

@@ -1,10 +1,11 @@
# Creative Writing System - Writing Guide (v3.3)
# Creative Writing System - Writing Guide (v3.4)
> **작성일:** 2026-01-15
> **버전:** 3.3.0
> **최종 수정:** 2026-01-18
> **버전:** 3.4.0
> **최종 수정:** 2026-01-21
> **시스템:** Creative Writing System (CWS)
> **목적:** AI와 협업하여 장편 창작물을 체계적으로 작성하기 위한 가이드
> **주요 변경 (v3.4):** Multi-작가 시스템 - 작가 문체 정의 기능 추가
---
@@ -29,6 +30,7 @@ CLAUDE.md = 내비게이션 (매번 운전할 때마다)
**매 세션마다 읽음:**
```
✅ CLAUDE.md (각 프로젝트 고유!)
✅ authors/author-XX.md (작가 스타일) ⭐ v3.4 신규
✅ volumes/vol-XX/characters.md
✅ volumes/vol-XX/timeline.md
✅ settings/writing-guide.md
@@ -610,6 +612,10 @@ novel-project/
│ ├── timeline-master.md # 전체 타임라인
│ └── plot-master.md # 전체 플롯
├── authors/ # 🎨 작가 문체 프로필 ⭐ v3.4 신규
│ ├── author-01.md # 프로젝트 작가 스타일 정의
│ └── ... # (다른 작가 스타일, 필요 시)
├── volumes/ # 📚 권별 폴더
│ ├── vol-01/
│ │ ├── plot-master.md # 1권 전체 플롯 (50화)
@@ -663,6 +669,8 @@ novel-project/
| `characters-master.md` | 전체 캐릭터 | 큼 | 설계/작성 | 캐릭터 추가 시 |
| `timeline-master.md` | 전체 타임라인 | 큼 | 설계/수정 | 수정 시 |
| `plot-master.md` | 전체 플롯 | 큼 | 설계 시만 | 거의 없음 |
| **authors/** ⭐ v3.4 | | | | |
| `author-XX.md` | 작가 문체 정의 | 중간 | 작성 모드 | 거의 없음 |
| **작업 파일** | | | | |
| `vol-XX/characters.md` | 권별 캐릭터 | 작음 | 매 세션 | 캐릭터 추가 시 |
| `vol-XX/timeline.md` | 권별 타임라인 | 작음 | 매 세션 | 수정 시 |
@@ -720,6 +728,12 @@ AI가 순차적으로 질문:
- "어떤 톤으로 쓸까요?" (진지함, 유머, 로맨틱 등)
- "시점은?" (1인칭, 3인칭)
- "금지 사항은?"
9. 작가 문체 정의: ⭐ v3.4 신규
- "기존 작품이 있나요?" (있으면 분석, 없으면 신규 정의)
- "선호하는 문장 길이는?" (짧음/보통/김)
- "어미 패턴은?" (과거형/현재형 비율)
→ authors/author-XX.md 생성
```
### 7.3 생성 파일
@@ -875,7 +889,82 @@ AI가 순차적으로 질문:
### 2권: ...
```
#### 7.3.4 writing-guide.md
#### 7.3.4 authors/author-XX.md ⭐ v3.4 신규
```markdown
# Author-XX: [프로젝트명] 작가 스타일
> **생성일:** YYYY-MM-DD
> **분석 대상:** (기존 챕터 또는 "신규 정의")
> **용도:** [프로젝트명] 집필 시 문체 기준
---
## 📝 작가 개요
**특징:** (한 줄 요약)
**장르:**
**톤:**
---
## 1⃣ 문장 길이 패턴
### 특징
- 평균 문장 길이: __~__자
- 짧은 문장 빈도: __%
### 예시
```
(실제 예시)
```
### 규칙
- ✅ (지킬 규칙)
- ❌ (피할 규칙)
---
## 2⃣ 어미 패턴
### 통계
- **과거형 "-었다"**: __%
- **현재형 "-는다"**: __%
(... 총 10가지 항목)
---
## 📊 문체 체크리스트
작성 후 자가 점검:
- [ ] 문장 길이 범위 내
- [ ] 어미 비율 준수
- [ ] Show Don't Tell 준수
(...)
---
## 📌 핵심 원칙 (Top 5)
1. (가장 중요한 문체 특징 1)
2. (가장 중요한 문체 특징 2)
3. (...)
```
**생성 방법:**
1. **기존 작품 분석:** 챕터 3~6개 분석 → 패턴 추출
2. **신규 정의:** 톤/장르 기반 → 10가지 항목 결정
3. **재사용:** 이전 프로젝트 author 복사/수정
**작성 모드에서 사용:**
- 작성 전 author-XX.md 필수 읽기
- Part별 문체 체크리스트 실행
- 핵심 원칙 Top 5 최우선 준수
**자세한 내용:** CWS Design Guide "Phase 0.5: 작가 문체 정의" 참조
#### 7.3.5 writing-guide.md
```markdown
# 작성 가이드 (전체 공통)
@@ -1273,8 +1362,9 @@ AI가 자동으로 파일 읽기:
```
🔄 세션 초기화...
읽기 (총 ~13,000 토큰):
읽기 (총 ~15,000 토큰):
✅ CLAUDE.md (2,000)
✅ authors/author-XX.md (2,000) ⭐ v3.4 신규
✅ volumes/vol-01/characters.md (2,000)
✅ volumes/vol-01/timeline.md (2,000)
✅ settings/writing-guide.md (3,000)
@@ -1320,6 +1410,12 @@ plot-001-005.md 참조:
- 핵심: 회귀 순간
- 분량: 10,000자
author-XX.md 준수: ⭐ v3.4 신규
- 문장 길이: 15~25자 (짧은 문장 위주)
- 어미: 과거형 "-었다" 90%+
- 묘사: Show Don't Tell 철저
- 리듬: 짧은 문장 연타
writing-guide.md 준수:
- Show, Don't Tell
- 5감 묘사
@@ -1554,6 +1650,7 @@ AI 자동 업데이트:
[4/6] 내용 검증
- 플롯 일치도
- 호칭 일관성 ⭐
- 작가 스타일 준수 ⭐ v3.4 신규
- 캐릭터 등장/퇴장
[5/6] 일관성 검증
@@ -1590,6 +1687,27 @@ characters-master.md에 호칭 규칙 정의:
| 결혼 후 | 당신/윤희 | 당신/민준 |
```
### 12.5 작가 스타일 검증 기준 ⭐ v3.4 신규
```
authors/author-XX.md에 정의된 스타일 준수 확인:
체크 항목:
✅ 문장 길이: 평균 __~__자 범위 내
✅ 어미 패턴: 과거형 __%+
✅ 문장 구조: 단문 중심 (복문 최소)
✅ 묘사 스타일: Show Don't Tell 준수
✅ 대화 스타일: 1~2문장 짧게
✅ 단락 구조: 1단락 = 1~3문장
✅ 리듬감: 중요 장면 짧은 문장 연타
✅ 시제: 서술=과거, 독백=현재
✅ POV: 일관성 유지
스타일 이탈 발견 시:
→ "🟡 ch-XXX: 작가 스타일 이탈 (복문 과다)"
→ 수정 권장 (심각도: 낮음~중간)
```
---
## 13. Phase 7: 권 완료
@@ -2398,6 +2516,22 @@ A: 수동 해결 후 AI에게 "/git status" 보고.
## 변경 이력
### v3.4.0 (2026-01-21)
-**Multi-Writer 시스템 추가**
- authors/author-XX.md 파일 구조 추가
- 작가 스타일 10가지 항목 정의
- Design Guide Phase 0.5 추가 (작가 문체 정의)
- Writing Guide 작가 스타일 적용 섹션 추가
- 세션 시작 시 author-XX.md 자동 읽기
- 작성 프로세스에 작가 스타일 준수 추가
### v3.3.0 (2026-01-21)
-**작성 기준 강화 (미완성 방지)**
- writing-guide.md v2.4 → v2.5
- 완성도 체크 규칙 추가
- 미완성 방지 체크리스트
- 긴급 수정 vs 권장 수정 구분
### v3.2.0 (2026-01-18)
-**리비전 관리 시작**
- CHANGELOG.md 생성

View File

@@ -1,8 +1,9 @@
# Novel Writing Guide
> **버전:** 3.1
> **최종 수정:** 2026-01-17
> **버전:** 4.0
> **최종 수정:** 2026-01-23
> **용도:** AI 협업 장편 소설 작성 시스템
> **주요 변경:** Single Source of Truth - claude.md 시스템 (필수)
---
@@ -82,13 +83,39 @@ mkdir my-novel-project
cd my-novel-project
```
### 3. 템플릿 복사
### 3. 템플릿 복사 (필수!)
```bash
cp ../Guide/templates/CLAUDE.md.template ./CLAUDE.md
# ⭐ claude.md (필수!) - Claude 작업 규칙
cp ../Guide/templates/claude.md.template ./claude.md
# 프로젝트 구조 참고용
cp ../Guide/templates/project-structure.md ./docs/
# CLAUDE.md (선택, deprecated)
cp ../Guide/templates/CLAUDE.md.template ./CLAUDE.md
```
### 4. 프로젝트 설정
**⚠️ 중요:**
- `claude.md`**반드시** 생성해야 함!
- Claude가 표준 파일을 Guide에서 읽도록 강제
- standards 파일들은 프로젝트에 복사하지 않음!
### 4. claude.md 수정
```markdown
# Claude 작업 규칙 (my-novel-project) ← 프로젝트명 수정
...
## 📌 프로젝트별 설정
### 이 프로젝트만의 특별한 규칙
- 특정 캐릭터 호칭 규칙
- 고유 용어 사전
- 시대 배경 설정
```
### 5. 프로젝트 설정
AI와 함께 "큰 틀 정하자" 명령으로 설계 시작:
- Phase 1: 설계 (마스터 파일 생성)
- Phase 2: 권별 플롯 작성
@@ -99,7 +126,13 @@ AI와 함께 "큰 틀 정하자" 명령으로 설계 시작:
## 🎯 핵심 컨셉
### 1. **설계와 실행의 분리**
### 1. **Single Source of Truth (v4.0 신규)**
- **표준 파일 위치**: `Guide/templates/standards/` (유일한 소스)
- **프로젝트 규칙**: `claude.md`로 표준 위치 명시 (필수!)
- **금지**: 프로젝트별/권별 standards 복사 ❌
- **목적**: 버전 불일치 원천 차단, 기준 통일
### 2. **설계와 실행의 분리**
- **마스터 파일**: 전체 10권 통합 설계 (크고 무거움, 작성 시 읽지 않음)
- **작업 파일**: 필요한 부분만 추출 (작고 가벼움, 매 세션 읽음)
@@ -132,7 +165,8 @@ AI와 함께 "큰 틀 정하자" 명령으로 설계 시작:
```
my-novel-project/
├── CLAUDE.md # AI 협업 프로토콜
├── claude.md # ⭐ Claude 작업 규칙 (필수!)
├── CLAUDE.md # AI 협업 프로토콜 (선택)
├── README.md
├── CHANGELOG.md
@@ -140,12 +174,10 @@ my-novel-project/
│ ├── characters-master.md
│ ├── timeline-master.md
│ ├── plot-master.md
── writing-guide.md
├── chapter-format-standard.md # v3.0
├── writing-mode.md # v3.0
├── modification-mode.md # v3.0
│ ├── verification-mode.md # v3.0
│ └── renaming-protocol.md # v3.0
── writing-guide.md
# ⚠️ standards 파일들은 Guide/templates/standards/에서 읽기!
# 프로젝트별로 복사하지 않음!
├── volumes/ # 권별 폴더
│ ├── vol-01/
@@ -236,6 +268,14 @@ my-novel-project/
## 📝 버전 히스토리
### v4.0 (2026-01-23)
-**Single Source of Truth 시스템 확립**
-`claude.md` 파일 도입 (프로젝트별 필수)
-`templates/claude.md.template` 추가
- ✅ standards 파일 Guide 중앙 관리 (복사 금지)
- ✅ 프로젝트/권별 standards 생성 금지
- ✅ 버전 불일치 원천 차단
### v3.1 (2026-01-17)
-**validation-standards.md 추가** (검증 모드 전용 가이드)
- ✅ 배치 검증 시스템 (10개씩 분할, 컴팩팅 대응)
@@ -277,6 +317,6 @@ my-novel-project/
---
**마지막 업데이트**: 2026-01-17
**버전**: 3.1
**마지막 업데이트**: 2026-01-23
**버전**: 4.0
**라이선스**: 개인 프로젝트

View File

@@ -1,121 +1,124 @@
# CLAUDE.md - AI 협업 프로토콜
# Claude 작업 규칙 (프로젝트명)
> **프로젝트:** [프로젝트명]
> **장르:** [장르]
> **현재 진행:** [X권 작성 중 / 수정 중 / 완료]
> **용도:** Claude가 이 프로젝트에서 작업 시 반드시 따라야 할 규칙
> **작성일:** YYYY-MM-DD
> **중요도:** 🔴 필수 준수
---
## 🔴 세션 시작 시 필수!
## 📂 표준 파일 위치 (Single Source of Truth)
### ⚠️ 중요: 표준 파일은 Guide에서만 읽기
모든 모드(VERIFICATION, FIX, POLISH, MODIFICATION 등) 진입 시, 표준 파일은 **반드시** 아래 위치에서 읽어야 합니다:
### 1. CURRENT-TASK.md 확인
```
CURRENT-TASK.md 있으면 → 읽고 해당 작업 이어서
CURRENT-TASK.md 없으면 → 사용자에게 "무엇을 할까요?" 질문
l:\내 드라이브\Writing\Guide\templates\standards\
```
### 2. 복구 시 읽을 파일
CURRENT-TASK.md에 명시된 파일들 자동 읽기
### 📋 표준 파일 목록
| 파일명 | 용도 | 위치 |
|--------|------|------|
| verification-mode.md | 검증 모드 프로토콜 | Guide/templates/standards/ |
| fix-mode.md | 수정 모드 프로토콜 | Guide/templates/standards/ |
| polish-mode.md | 다듬기 모드 프로토콜 | Guide/templates/standards/ |
| modification-mode.md | 수정 모드 프로토콜 | Guide/templates/standards/ |
| writing-mode.md | 작성 모드 프로토콜 | Guide/templates/standards/ |
| writing-guide.md | 문체/분량 규칙 | Guide/templates/standards/ |
| file-formats.md | 파일 형식 표준 | Guide/templates/standards/ |
| chapter-format.md | 챕터 형식 | Guide/templates/standards/ |
| creative-writing.md | 창작 가이드 | Guide/templates/standards/ |
| retouch-mode.md | 재작성 모드 | Guide/templates/standards/ |
| renaming-protocol.md | 이름 변경 규칙 | Guide/templates/standards/ |
---
## 🔄 작업 재개 프로토콜 (컴팩팅 대응)
## 🚫 금지 사항
### 대화 재개 시 (컴팩팅 후):
```
Step 1: WORK-MODE.txt 확인
→ 파일 있으면 → 읽기
→ CURRENT_MODE 확인
→ READ_FILE에 지시된 모드 파일만 읽기
→ 작업 재개
### ❌ 절대 하지 말 것
→ 파일 없으면 → CURRENT-TASK.md 확인 (일반 흐름)
```
1. **프로젝트 내 standards/ 생성 금지**
- `PROJECT/standards/` ❌
- 반드시 `Guide/templates/standards/` 사용
**WORK-MODE.txt 역할:**
- 중단된 배치 작업 감지
- 어느 모드인지 (VERIFICATION/POLISH/FIX)
- 어느 파일을 읽어야 하는지
- 어디까지 완료했는지
2. **권별 standards 생성 금지**
- `volumes/vol-01/standards/` ❌
- `volumes/vol-02/standards/` ❌
- 표준은 프로젝트 전체에 통일
3. **권별 검증 기준 파일 생성 금지**
- `volumes/vol-XX/validation-standards.md` ❌
- `Guide/templates/standards/verification-mode.md` 사용
---
## 📂 파일 위치
## ✅ 올바른 작업 절차
### 모드 진입 시
### 🔧 작업 표준 (How to write)
```
standards/
├── writing-mode.md # 작성 모드 절차
├── modification-mode.md # 수정 모드 절차
├── verification-mode.md # 점검 모드 절차
├── chapter-format.md # 챕터 형식 규칙
├── renaming-protocol.md # 리네임 안전 규칙
└── writing-guide.md # 작성 규칙 (문체, 분량)
사용자: "POLISH 모드로 ch-001~010 다듬어줘"
Claude 절차:
1. ✅ l:\내 드라이브\Writing\Guide\templates\standards\polish-mode.md 읽기
2. ✅ l:\내 드라이브\Writing\Guide\templates\standards\writing-guide.md 읽기
3. ✅ l:\내 드라이브\Writing\프로젝트명\settings\characters-master.md 읽기
4. ✅ 해당 챕터 작업 시작
❌ 프로젝트 내 standards 파일 읽기 → 금지!
```
### 📚 소설 설정 (What to write)
```
settings/
├── characters-master.md # 전체 캐릭터 + 호칭 규칙
├── timeline-master.md # 전체 타임라인
└── plot-master.md # 전체 플롯
```
### 검증 시
### 📖 권별 작업 파일
```
volumes/vol-XX/
├── characters.md # 해당 권 캐릭터 (추출본)
├── timeline.md # 해당 권 타임라인 (추출본)
├── plot-master.md # 해당 권 플롯
├── plots/ # 5화별 플롯
├── summaries/ # 누적 서머리
├── chapters/ # 실제 원고
└── CHANGELOG.md # 변경 이력
사용자: "2권 검증해줘"
Claude 절차:
1. ✅ l:\내 드라이브\Writing\Guide\templates\standards\verification-mode.md 읽기
2. ✅ l:\내 드라이브\Writing\프로젝트명\settings\*.md 읽기
3. ✅ 검증 시작
❌ volumes/vol-02/validation-standards.md → 생성 금지!
```
---
## 🎯 모드 진입
## 📝 버전 관리
| 명령어 | 모드 | 읽을 파일 |
|--------|------|----------|
| "작성 모드" / "X화 작성해" | WRITING | standards/writing-mode.md |
| "수정 모드" / "수정 준비해" | MODIFICATION | standards/modification-mode.md |
| "점검 모드" / "검증해" | VERIFICATION | standards/verification-mode.md |
표준 파일 버전은 `Guide/templates/standards/`에서만 관리됩니다.
### 모드 진입 시 행동
1. 해당 모드 파일 읽기
2. 모드 파일이 지시하는 추가 파일 읽기
3. CURRENT-TASK.md 생성/업데이트
4. "준비 완료" 보고
5. 작업 시작
**최신 버전 확인:**
- `Guide/templates/standards/` 디렉토리 참조
- 각 파일 헤더의 버전 정보 확인
---
## 📌 프로젝트 정보
## 💡 왜 이렇게 하는가?
**제:** [소설 제목]
**장르:** [장르]
**총 권수:** [N]권
**화/권:** [50]화
**분량/화:** 8,000-12,000자
**제:**
- 표준 파일이 여러 곳에 복사되면 버전 불일치 발생
- Guide 업데이트가 프로젝트에 반영 안됨
- 권별로 기준이 달라지면 일관성 깨짐
**시간 배경:** [시작년도] - [종료년도]
**주인공:** [이름]
**핵심 줄거리:**
[3문장 요약]
**해결:**
- Single Source of Truth: Guide만 관리
- 모든 프로젝트가 Guide 참조
- 버전 불일치 원천 차단
---
## 🚫 절대 규칙
## 📌 프로젝트별 설정
1. **CURRENT-TASK.md 확인 필수** - 세션 시작 시
2. **모드 파일 읽고 작업** - 맨땅에 헤딩 금지
3. **summary 업데이트 필수** - 매 화 완료 시
4. **바텀 금지** - 챕터 끝에 "[X화 끝]" 넣지 말 것
5. **헤더만 화수 표시** - # X권 Y화: 제목
### 이 프로젝트만의 특별한 규칙
(프로젝트마다 추가 규칙이 있다면 여기에 작성)
예:
- 특정 캐릭터 호칭 규칙
- 고유 용어 사전
- 시대 배경 설정
---
*이 파일은 매 세션 자동으로 읽습니다. 가볍게 유지하세요.*
**⚠️ 이 규칙을 위반하면 기준 불일치로 작업 오류 발생!**

View File

@@ -1,8 +1,9 @@
# 소설 프로젝트 폴더 구조
> **버전:** 3.0 (모드 시스템 포함)
> **작성일:** YYYY-MM-DD
> **버전:** 4.0 (Single Source of Truth)
> **작성일:** 2026-01-23
> **용도:** 새 프로젝트 폴더 구조 참조
> **주요 변경:** claude.md 필수, standards 파일 Guide 참조
---
@@ -11,7 +12,8 @@
```
novel-project/
├── CLAUDE.md # AI 협업 프로토콜 ⭐
├── claude.md # ⭐ Claude 작업 규칙 (필수!)
├── CLAUDE.md # AI 협업 프로토콜 (deprecated)
├── README.md # 프로젝트 소개
├── CHANGELOG.md # 전체 변경 이력
├── .gitignore # Git 제외 파일
@@ -21,13 +23,10 @@ novel-project/
│ ├── characters-master.md # 전체 권 통합 캐릭터
│ ├── timeline-master.md # 전체 타임라인
│ ├── plot-master.md # 전체 권 줄거리
── writing-guide.md # 전체 공통 작성 규칙
├── chapter-format-standard.md # v3.0: 챕터 형식 표준
├── writing-mode.md # v3.0: 작성 모드 절차
│ ├── modification-mode.md # v3.0: 수정 모드 절차
│ ├── verification-mode.md # v3.0: 점검 모드 절차
│ └── renaming-protocol.md # v3.0: 안전한 리네임
── writing-guide.md # 전체 공통 작성 규칙
# ⚠️ standards 파일들은 Guide/templates/standards/에서 읽기!
# 프로젝트별로 복사하지 않음!
├── volumes/ # 📚 권별 폴더
│ ├── vol-01/
@@ -79,7 +78,8 @@ novel-project/
| 파일 | 용도 | 업데이트 주기 |
|------|------|--------------|
| `CLAUDE.md` | AI 협업 프로토콜, 세션마다 자동 읽음 | 거의 없음 |
| `claude.md` | ⭐ Claude 작업 규칙 (표준 위치 명시, 필수!) | 프로젝트 시작 시 1회 |
| `CLAUDE.md` | AI 협업 프로토콜 (deprecated) | 거의 없음 |
| `README.md` | 프로젝트 소개, 독자/협업자용 | 필요 시 |
| `CHANGELOG.md` | 전체 변경 이력 (선택) | 주요 변경 시 |
@@ -96,14 +96,21 @@ novel-project/
| `plot-master.md` | 큼 (10,000 토큰) | 전체 줄거리 | 설계 시만 |
| `writing-guide.md` | 중간 (3,000 토큰) | 작성 규칙 | 매 세션 |
**v3.0 추가 파일:**
| 파일 | 용도 | 읽기 시점 |
|------|------|----------|
| `chapter-format-standard.md` | 챕터 형식 표준 | 설정 시, 수정 시 |
| `writing-mode.md` | 작성 모드 절차 | 작성 시 |
| `modification-mode.md` | 수정 모드 절차 | 수정 시 |
| `verification-mode.md` | 점검 모드 절차 | 점검 시 |
| `renaming-protocol.md` | 안전한 리네임 | 리네임 시 |
**⚠️ standards 파일은 프로젝트에 복사하지 않음!**
모든 standards 파일은 `Guide/templates/standards/`에서 읽기:
- verification-mode.md (검증)
- fix-mode.md (수정)
- polish-mode.md (다듬기)
- modification-mode.md (수정)
- writing-mode.md (작성)
- file-formats.md (형식)
- chapter-format.md (챕터)
- creative-writing.md (창작)
- retouch-mode.md (재작성)
- renaming-protocol.md (리네임)
**이유:** Single Source of Truth - 버전 불일치 방지
---
@@ -265,6 +272,13 @@ summary-vol-01-final.md (압축 버전)
## 🚀 프로젝트 생성 순서
### Phase 0: 프로젝트 초기화 (v4.0)
```bash
# claude.md 생성 (필수!)
cp ../Guide/templates/claude.md.template ./claude.md
# 프로젝트명 수정 필요!
```
### Phase 1: 설계
```bash
mkdir settings
@@ -296,12 +310,14 @@ mkdir -p volumes/vol-01/{plots,summaries,chapters}
- **메인 가이드:** `Novel Writing Project Guide.md`
- **템플릿:**
- `templates/CLAUDE.md.template`
- `templates/claude.md.template` ⭐ (필수!)
- `templates/CLAUDE.md.template` (선택)
- `templates/chapter-template.md`
- `templates/project-structure.md` (이 파일)
- **표준 파일:** `templates/standards/` (중앙 관리)
---
**작성일:** YYYY-MM-DD
**버전:** 3.0
**작성일:** 2026-01-23
**버전:** 4.0
**작성자:** Alex

View File

@@ -1,10 +1,10 @@
# 검증 모드 프로토콜
> **버전:** 2.4.1
> **최종 수정:** 2026-01-20
> **버전:** 2.4.2
> **최종 수정:** 2026-01-21
> **호환:** CWS Writing Guide v4.2.0+
> **용도:** 전체 검증 및 기록 (수정 없음)
> **주요 변경:** 날씨/계절 일관성 검증 추가 (명시적)
> **주요 변경:** 오류 카운트 원칙 추가 (중복 카운트 방지)
---
@@ -345,6 +345,206 @@ FIX = 수정
---
## 📏 오류 카운트 원칙 (v2.4.2 신규)
**목적:** 중복 카운트 방지 및 정확한 오류 개수 산출
### ⚠️ 주의: 중복 카운트 금지
**문제 상황:**
```
타임라인 헤더 오류: 7건
챕터 간 연결 오류: 3건
---
합계: 10건 ❌ 잘못된 카운트!
```
**왜 잘못되었나?**
- "챕터 간 연결 오류" 3건이 **타임라인 문제에서 발생**
- 실제로는 **같은 오류**를 두 번 센 것!
- 정확한 합계: 7건 (타임라인 헤더만)
---
### ✅ 정확한 카운트 방식
#### 1. 유형별 카운트 (Primary)
**각 오류를 정확히 하나의 카테고리에만 분류:**
```markdown
1. 타임라인 헤더 오류: 7건
- ch-002, 003, 004, 005, 006, 007, 008
- 헤더 날짜 ≠ 본문 날짜
2. 챕터 간 연결 오류: 3건
- ch-002→003, ch-003→004, ch-004→005
- 날짜 건너뜀, 본문 표현 문제
- ⚠️ 타임라인 오류와 **별개**
3. 호칭 복수/단수 오류: 2건
- ch-002:139, ch-011:511
4. 설정 모순: 2건
- ch-003:417 (나이), ch-003:427 (신분)
---
총 오류: 7+3+2+2 = 14건 ✅
```
#### 2. 챕터별 카운트 (Verification)
**각 챕터에서 발견된 오류를 개별로 세기:**
```markdown
- ch-002: 2건 (타임라인 1 + 호칭 1)
- ch-003: 2건 (타임라인 1 + 설정 1)
- ch-004: 3건 (타임라인 1 + 연결 1 + 설정 1)
- ch-005: 2건 (타임라인 1 + 연결 1)
- ch-006: 1건 (타임라인 1)
- ch-007: 1건 (타임라인 1)
- ch-008: 1건 (타임라인 1)
- ch-011: 2건 (타임라인 1 + 호칭 1)
---
챕터별 합계: 2+2+3+2+1+1+1+2 = 14건 ✅
```
#### 3. 검증 (Mandatory)
**두 방식의 합계가 반드시 일치해야 함:**
```
유형별 합계: 14건
챕터별 합계: 14건
---
✅ 일치! 정확한 카운트
```
**불일치 시:**
```
유형별 합계: 17건
챕터별 합계: 12건
---
❌ 불일치! 중복 카운트 발생
→ 재확인 필수
```
---
### 🚨 중복 카운트가 발생하는 패턴
#### 패턴 1: 연결 문제를 두 번 세기
**잘못된 방식:**
```markdown
타임라인 오류 (10건):
- 헤더 오류: ch-002~008 (7건)
- 연결 문제: ch-002→003, ch-003→004, ch-004→005 (3건)
챕터 간 연결 오류 (3건):
- ch-002→003, ch-003→004, ch-004→005
---
합계: 10 + 3 = 13건 ❌ (연결 3건 중복!)
```
**올바른 방식:**
```markdown
타임라인 헤더 오류 (7건):
- ch-002~008
챕터 간 연결 오류 (3건):
- ch-002→003, ch-003→004, ch-004→005
---
합계: 7 + 3 = 10건 ✅
```
#### 패턴 2: 하위 카테고리를 상위와 중복
**잘못된 방식:**
```markdown
설정 오류 (5건):
- 나이 불일치: 2건
- 신분 모순: 1건
- 위치 충돌: 2건
나이 불일치 (2건):
- ch-003, ch-015
---
합계: 5 + 2 = 7건 ❌ (나이 2건 중복!)
```
**올바른 방식:**
```markdown
설정 오류 (5건):
- 나이 불일치: 2건 (ch-003, ch-015)
- 신분 모순: 1건
- 위치 충돌: 2건
---
합계: 5건만 ✅
```
---
### 📋 보고서 작성 체크리스트
**보고서 완성 전 필수 확인:**
- [ ] 1. 유형별 오류 합계 계산
- [ ] 2. 챕터별 오류 합계 계산
- [ ] 3. 두 합계가 일치하는지 확인
- [ ] 4. 불일치 시 중복 카운트 찾기
- [ ] 5. 중복 제거 후 재계산
- [ ] 6. 최종 합계 확정
- [ ] 7. "총 X건" 표기
**예시:**
```markdown
## 검증 요약
### 유형별
- 타임라인: 7건
- 연결: 3건
- 호칭: 2건
- 설정: 2건
**합계: 14건**
### 챕터별
- ch-002: 2건
- ch-003: 2건
- ...
**합계: 14건**
✅ 검증 완료 (일치)
**총 발견 오류: 14건**
```
---
### 🔧 보완 권장 사항
1. **validation 작성 시**
- 각 오류를 정확히 하나의 카테고리에만 할당
- 중복 가능성이 있는 항목은 명시적으로 분리
- 예: "타임라인 헤더" vs "챕터 간 연결"
2. **최종 보고 전**
- 유형별/챕터별 합계 검증 필수
- 불일치 발생 시 중복 카운트 재확인
- 정확한 숫자 확정 후 보고
3. **카운트 방식 표준화**
- 명확한 카테고리 정의
- 중복 방지 원칙 적용
- 검증 절차 준수
---
## 📊 검증 보고서 형식
```markdown

View File

@@ -1,10 +1,143 @@
# 작성 가이드 (문체/분량 규칙)
> **버전:** 2.3.0
> **최종 수정:** 2026-01-20
> **버전:** 2.5.0
> **최종 수정:** 2026-01-21
> **호환:** CWS Writing Guide v4.2.0+
> **용도:** 소설 작성 시 문체, 분량, 표현 규칙
> **주요 변경:** 작성 중 흔한 실수 예시 추가 (OOC, 능력 모순, 정보 모순)
> **주요 변경 (v2.5):** 작가 스타일 적용 기능 추가 (Multi-작가 시스템)
---
## 🎨 작가 스타일 적용 (v2.5 신규)
### 개요
**작가 스타일(Author Style)**: 프로젝트별로 정의된 문체 기준
```
프로젝트마다 다른 작가 스타일 사용 가능:
- 1945 소설 → author-01 (짧고 강렬한 문장)
- 로맨스 소설 → author-02 (부드럽고 긴 문장)
```
### 작성 전 필수: 작가 파일 읽기
```
작성 모드 진입 시 반드시 읽을 파일:
✅ authors/author-XX.md (프로젝트 작가 스타일)
작가 파일에는 다음 10가지 항목이 정의되어 있음:
1. 문장 길이 패턴
2. 어미 패턴
3. 문장 구조
4. 어휘 특성
5. 묘사 스타일
6. 대화 스타일
7. 단락 구조
8. 리듬감
9. 시제 사용
10. 관점 (POV)
```
### 작성 중 체크포인트
**Part 작성 후 즉시 확인:**
```
✅ 문장 길이가 작가 기준 범위 내인가?
- author-XX.md에서: "평균 15~25자"
→ 작성한 문장들이 이 범위에 있는가?
✅ 어미 비율이 맞는가?
- author-XX.md에서: "과거형 90%, 현재형 10%"
→ 현재형 너무 많이 쓰지 않았는가?
✅ 묘사 스타일 준수했는가?
- author-XX.md에서: "Show Don't Tell 철저"
→ "슬펐다" 같은 감정 단어 안 썼는가?
✅ 단락 구조 일관되는가?
- author-XX.md에서: "1단락 = 1~3문장"
→ 너무 긴 단락 없는가?
```
### 작가 스타일 핵심 원칙 (Top 5)
**각 작가마다 "핵심 원칙 Top 5"가 정의되어 있음.**
예시 (author-01):
```
1. 짧게 쓴다: 한 문장 = 한 정보
2. 과거형 "-었다": 90% 이상
3. Show Don't Tell: 감정 단어 금지
4. 리듬감: 짧은 문장 연타 + 삼박자
5. 직설적: 부사 최소화, 핵심만
```
**작성 시 이 5가지를 최우선으로 준수!**
### 문체 일탈 감지
**작성 중 문체가 벗어났다고 느껴지면:**
```
1. 즉시 author-XX.md 다시 읽기
2. 해당 Part 문체 체크리스트 실행
3. 문제 문장 수정 후 계속 작성
→ Part 끝날 때까지 기다리지 말고 즉시 수정!
```
### 작가 전환 (Multi-프로젝트)
**다른 프로젝트 작성 시:**
```
프로젝트 A (author-01) 작성 중
→ 프로젝트 B (author-02) 전환
필수:
1. project-config.md 확인 → 작가 확인
2. authors/author-02.md 읽기
3. 핵심 원칙 Top 5 숙지
4. 문체 전환 완료 후 작성 시작
→ 이전 프로젝트 문체 혼동 방지!
```
### 체크리스트: 작가 스타일 준수
**작성 완료 후 최종 확인:**
```
문장:
- [ ] 문장 길이 범위 내
- [ ] 어미 비율 준수
- [ ] 문장 구조 일관
어휘:
- [ ] 어휘 특성 준수
- [ ] 금지 표현 미사용
묘사:
- [ ] 묘사 스타일 준수
- [ ] 5감 비율 적절
대화:
- [ ] 대화 길이/비율 적절
- [ ] 호칭 일관
구조:
- [ ] 단락 구조 일관
- [ ] 리듬감 적절
시제/관점:
- [ ] 시제 일관
- [ ] POV 일탈 없음
핵심 원칙:
- [ ] Top 5 원칙 모두 준수
```
---
@@ -383,7 +516,121 @@ characters-master.md의 호칭 규칙 참조
---
## 🚫 작성 중 흔한 실수 (신규)
## 🚫 미완성 방지 규칙 (v2.4.0 신규)
### 1. 헤더 작성 시 주의
**규칙:** 헤더를 만들면 즉시 최소 3줄 내용 작성!
```markdown
❌ 나쁜 예:
## 오후 3시, 회의실
---
[여기서 멈춤 - 내용 0줄!]
✅ 좋은 예:
## 오후 3시, 회의실
민준이 회의실 문을 열었다. 안에는 이미 여러 사람이 앉아 있었다.
"늦어서 죄송합니다." 그가 말했다.
(최소 3줄 내용 즉시 작성!)
```
**왜 중요한가?**
- 헤더만 만들고 멈추면 "빈 섹션"
- ch-046 실패 사례: "## 9월 30일 저녁" 헤더만 있고 내용 0줄
- validation v2.0도 못 잡음 → v3.0에서야 발견
### 2. 대화 완결 규칙
**규칙:** 대화를 시작하면 최소 3왕복 완결!
```markdown
❌ 나쁜 예:
"형님, 뭐 하세요?"
"응?"
[여기서 멈춤 - 질문만 하고 답 없음!]
✅ 좋은 예:
"형님, 뭐 하세요?"
"응? 아, 보고서 쓰고 있어."
"도와드릴까요?"
"아니야, 거의 다 됐어."
(질문-답변-반응 최소 3왕복!)
```
**왜 중요한가?**
- 대화 중간에 멈추면 독자 혼란
- ch-032 실패 사례: "근데 형님." "응?" [파일 끝]
- 질문만 하고 대답 없으면 미완성
### 3. 장면 마무리 규칙
**규칙:** 장면을 시작하면 전개-절정-마무리 완성!
```markdown
❌ 나쁜 예:
민준이 문을 열고 들어갔다.
[여기서 멈춤 - 무슨 일이 일어났는지 모름!]
✅ 좋은 예:
민준이 문을 열고 들어갔다. (시작)
안에는 여운형이 서류를 보고 있었다. (전개)
"기다리고 있었네." 여운형이 말했다. (전개)
민준은 고개를 끄덕이고 자리에 앉았다. (마무리)
(시작-전개-마무리 완성!)
```
**왜 중요한가?**
- 장면 시작만 하고 끝내지 않으면 미완성
- ch-034 실패 사례: "따라오세요." [파일 끝]
- 독자가 "그래서 어떻게 됐는데?"라고 궁금해함
### 4. Part 완성 체크
**규칙:** Part를 끝내기 전 자가 질문 3개!
```markdown
Part 작성 완료 전 체크:
- [ ] 이 Part에서 의도한 내용을 다 썼는가?
- [ ] 대화가 중간에 끊기지 않았는가?
- [ ] 장면이 자연스럽게 마무리됐는가?
→ 하나라도 "아니오"면 계속 작성!
→ 모두 "예"면 Part 완료!
```
**왜 중요한가?**
- Part 중간에 멈추면 다음 작성 시 맥락 끊김
- 작성 중 자가 검증으로 즉시 발견 가능
- 미완성 챕터 7건 모두 이 체크로 방지 가능
### 5. 최소 내용 분량
**규칙:** 각 섹션 최소 분량 준수!
```markdown
✅ 헤더 이후: 최소 3줄 (약 150자)
✅ 대화 블록: 최소 3왕복 (약 200자)
✅ 장면 묘사: 최소 5줄 (약 250자)
✅ 각 Part: 최소 30줄 (약 1,500자)
✅ 각 화: 최소 8,000자
→ 분량이 너무 짧으면 미완성 의심!
```
**왜 중요한가?**
- 분량이 기준보다 현저히 적으면 뭔가 빠짐
- 간이 검증에서 자동으로 체크
- 작성 중에도 육감으로 알 수 있음
---
## 🚫 작성 중 흔한 실수
### 1. 캐릭터 OOC (Out Of Character)

View File

@@ -1,10 +1,10 @@
# 작성 모드 프로토콜
> **버전:** 2.2.0
> **최종 수정:** 2026-01-20
> **버전:** 2.3.0
> **최종 수정:** 2026-01-21
> **호환:** CWS Writing Guide v4.2.0+
> **용도:** 신규 챕터 작성 (3/5/7화 유연)
> **주요 변경:** 각 Part 작성 후 즉시 자가 검증 추가 (문제 조기 발견)
> **주요 변경:** 완성도 체크 강화 (미완성 챕터 재발 방지)
---
@@ -76,7 +76,7 @@
- 분량: 8,000-12,000자
- file-formats.md 형식 준수
⚠️ **각 Part 작성 후 즉시 자가 검증! (신규)**
⚠️ **각 Part 작성 후 즉시 자가 검증!**
```
Part 1 작성 완료 → 즉시 체크:
@@ -95,8 +95,14 @@
- [ ] 무기/아이템 연속성 유지되는가?
- [ ] 날씨/계절이 날짜와 맞는가?
→ 문제 발견 시: 즉시 수정 후 다음 Part
→ 통과 시: Part 2 작성
🔴 **v2.3.0 신규: 완성도 체크**
- [ ] Part가 완전히 끝났는가? (중간에 안 끊김)
- [ ] 대화가 중간에 끊기지 않았는가? (질문만 하고 답 없음 X)
- [ ] 장면이 마무리됐는가? (시작만 하고 안 끝남 X)
- [ ] 헤더 만들었으면 내용도 3줄 이상 작성했는가?
→ 하나라도 "아니오"면: 즉시 완성 후 다음 Part!
→ 모두 "예"면: Part 2 작성
(Part 2, 3, 4도 동일하게 각각 작성 후 체크!)
```
@@ -139,7 +145,7 @@
- 캐릭터 상태
- 복선 추적
3. 🔍 즉시 간이 검증 (1-2분)
3. 🔍 즉시 간이 검증 (2-3분)
✅ 타임라인 연속성
- 이전 화 종료일 ≤ 현재 화 시작일
@@ -149,7 +155,7 @@
- characters.md 호칭 규칙 기준
- 갑작스러운 호칭 변화 없는지
✅ 호칭 복수/단수 정확성 (신규!)
✅ 호칭 복수/단수 정확성
- characters.md 나이 관계 테이블 기준
- "형님들" vs "형님" 체크
- 예: 박현우 → 강민준(1명) = "형님" (단수)
@@ -166,6 +172,17 @@
- 파일명 번호 = 헤더 화수
- 타임라인 형식 (YYYY.M.D-M.D)
🔴 **v2.3.0 신규: 완성도 검증**
- [ ] 빈 섹션 0건
- Grep: "^## " 검색 → 각 헤더 이후 10줄 체크
- 실제 내용 (빈 줄/구분선 제외) 3줄 미만 = ❌
- [ ] 대화 완결성
- 마지막 대화가 질문으로 끝나지 않는지
- "?" 또는 불완전한 대화 패턴 체크
- [ ] 최소 분량
- 각 챕터 8,000자 이상
- 마지막 Part가 너무 짧지 않은지 (300자 이상)
→ 문제 발견 시: 즉시 수정 후 다시 검증
→ 통과 시: 다음 단계
@@ -208,8 +225,16 @@
- [ ] 분량 8,000자 이상
- [ ] Show, Don't Tell
- [ ] 캐릭터 말투/호칭 일관성
- [ ] ⭐ 각 Part 작성 후 즉시 자가 검증! (신규)
- [ ] ⭐ 각 Part 작성 후 즉시 자가 검증!
- 플롯 준수, 캐릭터 일관성, 설정 일관성
- 🔴 v2.3.0: 완성도 체크 (Part 완료, 대화 완결, 장면 마무리)
🔴 **v2.3.0 신규: 작성 완료 전 최종 체크**
- [ ] 모든 섹션 헤더 이후 내용 3줄 이상 존재
- [ ] 마지막 대화가 완결됨 (질문으로 안 끝남)
- [ ] 마지막 장면이 마무리됨 (중간에 안 끊김)
- [ ] 최소 분량 8,000자 이상
- [ ] 각 Part가 완전히 끝남
작성 후:
- [ ] 바텀 없음 확인!

View File

@@ -1,6 +1,13 @@
# 1945 소설 검증 기준 문서 (v2.0)
# 1945 소설 검증 기준 문서 (v3.0)
**최종 개정일:** 2026-01-21
**이전 버전:** v2.0 (2026-01-17)
**주요 변경사항:**
- **ch-046 검증 실패 사례 반영:** 빈 섹션 헤더 검출 강화 (섹션 J 신규)
- **ch-047 검증 실패 사례 반영:** 챕터 내부 장면 중복 검증 강화 (섹션 G 대폭 강화)
- **검증 실행 프로토콜 강화:** Step 4에 필수 체크 항목 추가
- **실패 사례 문서화:** 재발 방지를 위한 참조 예시 추가
**최종 개정일:** 2026-01-17
**목적:** 소설 검증 시 명확한 기준 제시 및 누락 방지
**핵심:** 배치 검증 + 검증 요약본 + 2종 요약본 크로스체크
@@ -135,6 +142,10 @@ validation-batch-06.md
- ✅ 일치 / ❌ 불일치
- 불일치 사유: [...]
#### 🔴 v3.0 필수 검증 항목
- **빈 섹션 검증 (J):** 0건 / N건 (라인 XXX)
- **챕터 내부 중복 검증 (G):** 0건 / N건 (라인 XXX-YYY, N줄 중복)
#### 특이사항
- 중복: 없음 / 있음 (상세)
- 시간 역행: 없음 / 있음 (상세)
@@ -304,6 +315,205 @@ L:\내 드라이브\Writing\1945-novel\volumes\vol-01\chapters\ch-*.md
- 완전히 동일한 내용 반복
- 같은 제목으로 같은 내용
#### 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)
```
---
## 본문 검증 절차 (배치별)
@@ -336,13 +546,38 @@ L:\내 드라이브\Writing\1945-novel\volumes\vol-01\chapters\ch-*.md
3. 중복 제목 즉시 확인
```
### Step 4: 챕터별 상세 검증
### Step 4: 챕터별 상세 검증 (v3.0 강화)
```bash
각 챕터마다:
1. 첫 100줄 읽기
1. 전체 파일 읽기 (첫 100줄이 아닌 전체)
2. 타임라인, 이벤트, 캐릭터 파악
3. 제목-내용 일치 확인
4. 검증 요약본에 기록
🔴 **v3.0 필수 체크 (반드시 실행):**
4. **빈 섹션 검증 (섹션 J):**
- 모든 "## " 헤더 추출
- 각 헤더 이후 3줄 내 실제 내용 확인
- 빈 섹션 발견 시 즉시 보고
- 결과: "빈 섹션: 0건" 또는 "빈 섹션: N건 (라인 XXX)"
5. **챕터 내부 중복 검증 (섹션 G):**
- 모든 "## " 헤더 추출 및 중복 확인
- 중복 헤더 발견 시 내용 비교
- 50줄 이상 중복 시 즉시 보고
- 결과: "챕터 내부 중복: 0건" 또는 "챕터 내부 중복: N건 (라인 XXX-YYY)"
6. 검증 요약본에 기록 (필수 항목 포함)
```
**Step 4 체크리스트 (필수):**
```markdown
각 챕터 검증 완료 시 다음을 확인:
- [ ] 타임라인 확인 완료
- [ ] 주요 이벤트 파악 완료
- [ ] 제목-내용 일치 확인 완료
- [ ] 🔴 빈 섹션 검증 완료 (섹션 J)
- [ ] 🔴 챕터 내부 중복 검증 완료 (섹션 G)
- [ ] 검증 요약본에 모든 항목 기록 완료
```
### Step 5: 배치 전체 분석
@@ -642,12 +877,33 @@ L:\내 드라이브\Writing\1945-novel\volumes\vol-01\chapters\ch-*.md
|------|------|----------|------|
| ch-006 | 금괴 탈취 작전 | 인민공화국 선포 | ❌ |
## 5. 중복 내용
## 5. 중복 내용 (챕터 간)
- 발견: N개
- 목록:
| 챕터 1 | 챕터 2 | 중복 유형 | 상세 |
## 6. 캐릭터 일관성
## 🔴 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
- 호칭 일관성: ✅ / ❌
- 말투 일관성: ✅ / ❌
@@ -880,6 +1136,144 @@ L:\내 드라이브\Writing\1945-novel\volumes\vol-01\chapters\ch-*.md
---
## 📚 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에 두 항목 결과 필수 기재