diff --git a/CHANGELOG.md b/CHANGELOG.md index 72b95a7..648f9d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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% (톤 일관성 안정) +- 억지 삽입 최소화, 독자 만족도 예상 향상 +- 집필자 부담 감소 (비율 맞추기 스트레스 제거) --- diff --git a/CWS Design Guide.md b/CWS Design Guide.md index 8aa9ee2..31c7f53 100644 --- a/CWS Design Guide.md +++ b/CWS Design Guide.md @@ -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 ◀──────────────────┐ - │ │ - ▼ │ -characters-master.md ◀──────┐ │ - │ │ │ - ▼ │ │ -timeline-master.md ◀────────┼───────┤ - │ │ │ - ▼ │ │ -plot-master.md ─────────────┴───────┘ - │ - ▼ -design-verification.md + ├──────────────────────────────┐ + │ │ + ▼ ▼ +authors/author-XX.md worldbuilding.md ◀──────────┐ + │ │ │ + │ (작성 시 참조) ▼ │ + │ characters-master.md ◀──────┤ + │ │ │ + │ ▼ │ + └────────────────────▶ timeline-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 핸드오프 후 설계 수정 ``` ⚠️ 작성 단계에서 설계 수정이 필요할 때: diff --git a/CWS Writing Guide.md b/CWS Writing Guide.md index d670d73..2764cdd 100644 --- a/CWS Writing Guide.md +++ b/CWS Writing Guide.md @@ -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 생성 diff --git a/README.md b/README.md index 1420a93..948fc89 100644 --- a/README.md +++ b/README.md @@ -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 **라이선스**: 개인 프로젝트 diff --git a/templates/CLAUDE.md.template b/templates/CLAUDE.md.template index 0fc293d..4cea664 100644 --- a/templates/CLAUDE.md.template +++ b/templates/CLAUDE.md.template @@ -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화: 제목 +### 이 프로젝트만의 특별한 규칙 + +(프로젝트마다 추가 규칙이 있다면 여기에 작성) + +예: +- 특정 캐릭터 호칭 규칙 +- 고유 용어 사전 +- 시대 배경 설정 --- -*이 파일은 매 세션 자동으로 읽습니다. 가볍게 유지하세요.* +**⚠️ 이 규칙을 위반하면 기준 불일치로 작업 오류 발생!** diff --git a/templates/project-structure.md b/templates/project-structure.md index 1377e63..7eaadd2 100644 --- a/templates/project-structure.md +++ b/templates/project-structure.md @@ -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 diff --git a/templates/standards/verification-mode.md b/templates/standards/verification-mode.md index a3d7b21..abfd120 100644 --- a/templates/standards/verification-mode.md +++ b/templates/standards/verification-mode.md @@ -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 diff --git a/templates/standards/writing-guide.md b/templates/standards/writing-guide.md index 7c50e6c..410f042 100644 --- a/templates/standards/writing-guide.md +++ b/templates/standards/writing-guide.md @@ -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) diff --git a/templates/standards/writing-mode.md b/templates/standards/writing-mode.md index bb40fb0..259f865 100644 --- a/templates/standards/writing-mode.md +++ b/templates/standards/writing-mode.md @@ -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가 완전히 끝남 작성 후: - [ ] 바텀 없음 확인! diff --git a/validation-standards.md b/validation-standards.md index b945929..e6e8eee 100644 --- a/validation-standards.md +++ b/validation-standards.md @@ -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에 두 항목 결과 필수 기재