Files
novel-writing-guide/templates/standards/plot-mode.md
Alex 7225abbfe8 plot-mode v2.1.0: 4단계 플롯 밀도 체계 적용
주요 변경사항:
- Design Guide v1.3.0 호환 (Phase 4-3: 5화별 상세 플롯)
- 4단계 플롯 밀도 체계 다이어그램 추가
  - 이 프로토콜 = 3단계 (최대밀도: Part별 장면 상세)
  - 산출물: volumes/vol-XX/plots/plot-XXX-YYY.md

파일 경로 업데이트:
- 참조: volumes/vol-XX/volume-plot.md (2단계: 권별)
- 참조: settings/plot-master.md (0단계+1단계: 전체 시즌)
- 산출물: volumes/vol-XX/plots/plot-XXX-YYY.md (3단계: 5화별 상세)
- 삭제: volumes/vol-XX/plot-master.md (volume-plot.md로 대체)

타임라인 검증 범위 수정:
- Phase 3: 권 전체(50화) → 5화 단위 검증
- 이전 5화 플롯과 연결 검증 추가

Best Practices 수정:
- 권별 플롯 작성 순서 → 5화별 상세 플롯 작성 순서
- 2단계(권별) 완료 후 3단계(5화별 상세) 실행

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-25 12:50:17 +09:00

719 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 플롯 모드 프로토콜 (5화별 상세 플롯)
> **버전:** 2.1.0
> **최종 수정:** 2026-01-25
> **호환:** CWS Design Guide v1.3.0+
> **용도:** Design Guide Phase 4-3 - 5화별 상세 플롯 작성 (3단계 밀도)
> **산출물:** `volumes/vol-XX/plots/plot-XXX-YYY.md`
---
## 📋 CHANGELOG
### v2.1.0 (2026-01-25) - 4단계 플롯 밀도 체계 적용
**변경:**
- 📌 파일 구조 업데이트 (Design Guide v1.3.0 호환)
- 참조: `volumes/vol-XX/volume-plot.md` (2단계: 권별 플롯)
- 참조: `settings/plot-master.md` (0단계+1단계: 전체 시즌)
- 산출물: `volumes/vol-XX/plots/plot-XXX-YYY.md` (3단계: 5화별 상세)
- ~~volumes/vol-XX/plot-master.md~~ (삭제됨, volume-plot.md로 대체)
- 📌 플롯 밀도 체계 명시
- 이 프로토콜 = 3단계 (최대밀도: Part별 장면 상세)
- 2단계 (권별) 완료 후 이 프로토콜 실행
- 📌 호환 정보 변경: Design Guide v1.3.0+
### v2.0.0 (2026-01-25) - Major Update
**배경:**
- 문제: 기존 플롯이 너무 간략 (날짜, 장소, 핵심 내용만)
- 원인: 작성 시 즉흥적 해석 → 플롯 불일치, 설정 모순
- 결과: VERIFICATION에서 대량 발견, 예술성 부족
**추가:**
- 📌 상세 설계 템플릿 (프로그래밍 설계서 수준)
- 📌 캐릭터 목표 & 갈등 설계
- 📌 감정선 설계 (시작→중간→끝)
- 📌 장면별 상세 (Part 단위 분량, 분위기, 대화 주제)
- 📌 복선 체크리스트
- 📌 설정 일관성 체크리스트
**철학:**
```
PLOT = 상세 설계서
WRITING = 설계 구현
VERIFICATION = 구현 검증
설계가 완벽하면 구현도 완벽!
→ 프로그래밍처럼 접근
```
**예상 효과:**
- 플롯 불일치: 10-20건 → 2-5건 (80% 감소)
- 설정 모순: 5건 → 1건 (80% 감소)
- 예술성 향상: 감정선 설계로 몰입도 상승
- 90% 품질 달성 확률 대폭 증가
### v1.0.0 (2026-01-25) - 초기 버전
**배경:**
- 문제: 플롯 자체에 타임라인 역행 존재
- 예시: 8화(11월) → 9화(10월), 20화(4월) → 21화(3월)
- 결과: 작성 단계에서 역행 발생 → FIX 모드 재배치 필요
- 근본 원인: **설계 단계(플롯)에 검증 프로토콜 없음**
**추가:**
- 📌 플롯 작성 시 타임라인 검증 프로토콜
- 이전 화 종료일 ≤ 다음 화 시작일 강제 검증
- 전체 플롯 타임라인 일관성 체크
- 회상/병렬 서사 명시 규칙
- 플롯 형식 표준
**철학:**
```
PLOT 모드 = 설계 단계 품질 보증
WRITING 모드 = 1차 방어선 (예방)
VERIFICATION 모드 = 최후의 보루 (검증)
→ 설계가 올바르면 작성도 올바르다!
```
---
## 🎯 플롯 모드 개요
### 4단계 플롯 밀도 체계에서의 위치
```
┌─────────────────────────────────────────────────────┐
│ 0단계: 전체 시즌 (15권) 초저밀도 │
│ settings/volume-plot.md │
│ 3시즌 = 반 페이지 │
├─────────────────────────────────────────────────────┤
│ 1단계: 시즌별 (5권) 최소밀도 │
│ settings/volume-plot.md │
│ 1시즌 = 1페이지 │
├─────────────────────────────────────────────────────┤
│ 2단계: 권별 (50화) 중간밀도 │
│ volumes/vol-XX/volume-plot.md │
│ 50화 = 1-2페이지 │
├─────────────────────────────────────────────────────┤
│ 3단계: 5화별 상세 ⭐ 이 프로토콜! 최대밀도 │
│ volumes/vol-XX/plots/plot-XXX-YYY.md │
│ Part별 장면 상세 (2,500자 단위) │
└─────────────────────────────────────────────────────┘
```
**이 프로토콜은:**
- Design Guide Phase 4-3 (5화별 상세 플롯)
- 3단계 밀도 (최대밀도) 플롯 작성
- 2단계 (권별 플롯) 완료 후 실행
- 타임라인 일관성 필수 검증
- 회상/병렬 서사 명시
- 플롯 완성 후 전체 검증
**진입 명령:**
- "1-5화 상세 플롯 작성"
- "plot-001-005.md 작성해"
- "X-Y화 플롯 작성해"
- "5화 플롯 검증"
---
## 📝 플롯 작성 프로세스
### Phase 1: 준비
```
1. 플롯 범위 확인
- 신규: X-Y화 (보통 5화 단위)
- 수정: 특정 화 또는 전체
- 예: plot-001-005.md, plot-006-010.md
2. 필수 파일 읽기
- settings/volume-plot.md (0단계+1단계: 전체 시즌)
- volumes/vol-XX/volume-plot.md (2단계: 권별 플롯)
- volumes/vol-XX/timeline.md
- volumes/vol-XX/characters.md
3. 이전 화 마지막 날짜 확인
- 이전 5화 플롯 파일에서 마지막 화 타임라인 추출
- 예: plots/plot-001-005.md에서 5화 종료일 = 1945.9.20
```
### Phase 2: 각 화 플롯 작성
```
1. 화수 및 제목 설정
예: ### 8화: 금괴 탈취 작전
2. 🚨 타임라인 설정 및 검증 (필수!)
❌ **이 절차를 건너뛰면 타임라인 역행이 발생합니다!**
✅ **반드시 아래 3단계를 순서대로 확인하세요:**
---
**Step 1: 이전 화 종료 날짜 확인**
```bash
# 이전 5화 플롯 파일에서 마지막 화 검색
# 예: 6-10화 작성 중이면 plots/plot-001-005.md에서 5화 확인
grep "5화" plots/plot-001-005.md
# 출력 예시:
# ### 5화: 금괴 탈취 작전
# - **타임라인:** 1945.9.11-9.20
→ 이전 화 종료일: 1945.9.20
```
**Step 2: 현재 화 타임라인 설정**
```
현재 화: 8화
플롯 내용: 건준 활동, 신탁통치 준비
→ 예상 기간: 1945.9.21-9.30 (10일)
시작일: 1945.9.21
종료일: 1945.9.30
```
**Step 3: 타임라인 역행 체크 (필수!)**
```
비교:
- 이전 화 종료일: 1945.9.20
- 현재 화 시작일: 1945.9.21
판정:
→ 9.20 < 9.21 ✅ 정상!
→ 타임라인 설정: 1945.9.21-9.30
```
**역행 감지 예시:**
```
비교:
- 이전 화 종료일: 1945.11.10
- 현재 화 시작일: 1945.10.1
판정:
→ 11.10 > 10.1 ❌ 역행!
⚠️ 즉시 중단!
원인 파악:
1. 회상 장면인가? → 제목에 "[회상]" 추가
2. 병렬 서사인가? → 제목에 "[병렬]" 추가
3. 플롯 순서 오류인가? → 순서 재조정
조치 후 다시 검증
```
---
3. 상세 설계 작성 ⭐ v2.0.0 강화!
**3-1. 기본 정보 (필수)**
```markdown
### 28화: 만주 희토류 확보
- **타임라인:** 1946.03.05-15
- **장소:** 만주 연길
- **등장인물:** 최태준, 강세우, 조선족 협력자
```
**3-2. 핵심 이벤트 (3개, 필수)**
```markdown
- **주요내용:**
* 희토류 광산 10만 평 매입 협상
* 국공내전 양측과 비밀 접촉
* 조선족 네트워크 구축 완료
```
**3-3. 캐릭터 목표 & 갈등 ⭐ 신규! (v2.0.0)**
```markdown
- **목표:**
* 최태준: 50만 평 토지 확보 (현재 30만 평 → 목표 50만 평)
* 상대방: 최대한 높은 가격으로 판매
- **갈등:**
* 외부: 국민당 관리의 의심 (조선인이 왜 땅을?)
* 내부: 자금 한계 (남은 예산 부족)
* 시간: 국공내전 임박 (서두르지 않으면 기회 상실)
- **해결:**
* 조선 독립 명분 제시 (공감 유도)
* 분할 지불 조건 (자금 부담 감소)
* 신속 계약 (시간 압박 활용)
```
**3-4. 감정선 설계 ⭐ 신규! (v2.0.0)**
```markdown
- **감정 흐름:**
* 시작: 긴장 (냉랭한 협상, 상호 불신)
* 중간: 반전 (공통 이익 발견, 마음 열림)
* 끝: 해소 (합의, 악수)
- **독자 감정:**
* 초반: 불안 ("협상 깨지면 어쩌지?")
* 중반: 기대 ("이렇게 풀리는구나!")
* 끝: 만족 ("성공!")
- **긴장도:** [6/10] → 적당한 긴장감
```
**3-5. 복선 체크 ⭐ 신규! (v2.0.0)**
```markdown
- **설치할 복선:**
* 국공내전 예측 ("곧 전쟁이 터질 것")
* 희토류 가치 암시 ("이 돌이 미래를 바꿀 것")
- **회수할 복선:**
* ch-015: 최태준 만주 출발 → 목적 달성
* ch-008: 만주 계획 언급 → 구체화
```
**3-6. 장면별 상세 (Part 단위) ⭐ 신규! (v2.0.0)**
```markdown
## Part 1: 냉랭한 협상 (2,500자)
- **시간:** 오전 9시
- **장소:** 연길 찻집
- **분위기:** 냉랭, 긴장
- **등장:** 최태준, 강세우, 국민당 관리
- **대화 주제:** 땅 가격, 조건
- **캐릭터 행동:**
* 최태준: 냉정하게 협상, 압박 전술
* 국민당 관리: 의심의 눈초리, 경계
* 강세우: 통역, 분위기 중재 시도
- **종료 상태:** 결렬 직전
## Part 2: 반전 (2,500자)
- **시간:** 오후 1시
- **장소:** 같은 찻집 (재회)
- **분위기:** 변화 (우연한 재회, 분위기 전환)
- **대화 주제:** 조선 독립, 일본 침략
- **캐릭터 행동:**
* 최태준: 진심 어린 설득, 명분 제시
* 국민당 관리: 공감, 마음 열림
- **종료 상태:** 협상 재개
## Part 3: 합의 (2,500자)
- **시간:** 저녁 7시
- **장소:** 계약서 작성 장소
- **분위기:** 진지, 긍정적
- **대화 주제:** 최종 조건, 계약
- **캐릭터 행동:**
* 최태준: 신중하게 계약 검토
* 국민당 관리: 악수, 신뢰 표시
- **종료 상태:** 계약 완료, 10만 평 확보
## Part 4: 여운 (2,500자)
- **시간:** 밤 10시
- **장소:** 숙소
- **분위기:** 안도, 피로
- **내용:** 최태준 독백, 향후 계획
- **캐릭터 행동:**
* 최태준: 지도 보며 다음 계획
* 강세우: 보고서 작성
- **종료 상태:** 50만 평 목표 재확인
**총 예상 분량:** 10,000자 (Part 4개 × 2,500자)
```
**3-7. 체크리스트 ⭐ 신규! (v2.0.0)**
```markdown
- [ ] 이전 화(ch-027) 연결 확인
- [ ] 캐릭터 성격 일치 (최태준: 대담, 실행력)
- [ ] 날씨/계절 (3월 만주 = 추위, 눈 녹기 시작)
- [ ] 숫자 일관성 (기존 30만 평 + 신규 10만 평 = 40만 평)
- [ ] 복선 회수 완료
- [ ] 감정선 설계 완료
```
4. 다음 화로 이동
```
### Phase 3: 5화 타임라인 검증 (필수!)
```
5화 플롯 작성 완료 후 반드시 실행:
1. 타임라인 추출
```bash
# 현재 작성 중인 5화 플롯 파일에서 추출
# 예: plots/plot-006-010.md
grep "타임라인:" plots/plot-006-010.md | grep -v "^**타임라인:"
```
2. 순서대로 검증
```python
# 의사 코드
timelines = extract_all_timelines("plots/plot-006-010.md")
for i in range(1, len(timelines)):
prev_end = timelines[i-1].end_date
curr_start = timelines[i].start_date
if curr_start < prev_end:
# 역행 감지!
if is_flashback(timelines[i].title):
# 회상이면 OK
continue
elif is_parallel(timelines[i].title):
# 병렬 서사면 OK
continue
else:
# 역행 오류!
report_error(i, prev_end, curr_start)
```
3. 검증 결과 보고
```
✅ 타임라인 검증 통과
- plot-006-010.md (6-10화)
- 총 5화
- 역행 0건
- 회상 0건
- 병렬 0건
또는
❌ 타임라인 역행 발견!
7화 → 8화:
- 7화 종료: 1945.11.10
- 8화 시작: 1945.10.1
→ 11월 다음에 10월 ❌
조치 필요:
- 8화가 회상이면 제목에 "[회상]" 추가
- 아니면 7화/8화 타임라인 재조정
```
4. 이전 5화 플롯과의 연결 검증
```bash
# 이전 5화 플롯의 마지막 화 종료일 확인
grep "5화" plots/plot-001-005.md -A 1 | grep "타임라인:"
# → 1945.9.20
# 현재 5화 플롯의 첫 화 시작일 확인
grep "6화" plots/plot-006-010.md -A 1 | grep "타임라인:"
# → 1945.9.21
# 검증: 9.20 ≤ 9.21 ✅
```
```
---
## 🔄 회상/병렬 서사 처리
### 회상 장면
**명시 규칙:**
```markdown
### 21화: [회상] 1945년 가을
- **타임라인:** 1945.10.1-10.15
- **주요내용:**
* 과거 회상
* 플래시백 장면
```
**특징:**
- 타임라인이 이전 화보다 과거여도 OK
- 제목에 반드시 `[회상]` 또는 `[플래시백]` 표시
- WRITING 모드에서도 회상 처리
- VERIFICATION 모드에서 역행 검증 제외
### 병렬 서사
**명시 규칙:**
```markdown
### 24화: [병렬] 만주에서
- **타임라인:** 1946.3.20-3.22
- **주요내용:**
* 만주 사건 (메인 서사와 동시 진행)
* 다른 장소, 같은 시간
```
**특징:**
- 메인 서사와 시간대 겹침 OK
- 제목에 반드시 `[병렬]` 표시
- 지리적으로 다른 장소에서 동시 진행
- VERIFICATION 모드에서 역행 검증 제외
---
## ✅ 플롯 작성 체크리스트
### 각 화 작성 시
```
- [ ] 이전 화 종료일 확인
- [ ] 현재 화 시작일 ≥ 이전 화 종료일
- [ ] 타임라인 형식: YYYY.M.D-M.D
- [ ] 회상이면 제목에 "[회상]" 명시
- [ ] 병렬이면 제목에 "[병렬]" 명시
- [ ] 장소, 등장인물 명시
- [ ] 주요내용 3개 이상
```
### 전체 플롯 완성 후
```
- [ ] 전체 타임라인 추출
- [ ] 순서대로 역행 검증
- [ ] 역행 발견 시 회상/병렬 확인
- [ ] 회상/병렬 아니면 수정
- [ ] 최종 검증 통과
- [ ] Git 커밋
```
---
## 🚨 플롯 타임라인 검증 명령어
### Bash 스크립트 예시
```bash
#!/bin/bash
# plot-timeline-check.sh
# 5화 플롯 파일 타임라인 추출
# 예: plots/plot-006-010.md
grep -n "### [0-9]" plots/plot-006-010.md | while read line; do
chapter=$(echo "$line" | grep -oP '\d+화')
timeline=$(grep -A 5 "$line" plots/plot-006-010.md | grep "타임라인:" | grep -oP '\d{4}\.\d+\.\d+-\d+\.\d+')
echo "$chapter: $timeline"
done
# 수동 검증:
# 1. 각 화의 종료일 < 다음 화 시작일 확인
# 2. 역행 발견 시 "[회상]" 또는 "[병렬]" 확인
# 3. 이전 5화 플롯 파일의 마지막 화와 연결 확인
```
---
## 📊 플롯 형식 표준
### 필수 형식
```markdown
### X화: 제목
- **타임라인:** YYYY.M.D-M.D
- **장소:** 위치
- **등장인물:** 이름1, 이름2, 이름3
- **주요내용:**
* 핵심 내용 1
* 핵심 내용 2
* 핵심 내용 3
```
### 회상 형식
```markdown
### X화: [회상] 제목
- **타임라인:** YYYY.M.D-M.D (과거 날짜 OK)
- **장소:** 위치
- **등장인물:** 이름1, 이름2
- **주요내용:**
* 회상 장면 설명
```
### 병렬 서사 형식
```markdown
### X화: [병렬] 제목
- **타임라인:** YYYY.M.D-M.D (메인과 겹침 OK)
- **장소:** 위치 (메인과 다름)
- **등장인물:** 이름1, 이름2
- **주요내용:**
* 병렬 서사 설명
```
---
## 🔧 플롯 수정 프로토콜
### 타임라인 수정 필요 시
```
1. 문제 파악
- 어느 화에서 역행 발생?
- 회상/병렬이 맞는가?
2. 영향 범위 확인
- 해당 화만 수정?
- 이후 모든 화 조정?
3. 수정 방법 선택
**옵션 1: 해당 화를 회상/병렬로 변경**
- 제목에 "[회상]" 또는 "[병렬]" 추가
- 빠르고 간단
- 서사적으로 타당한 경우
**옵션 2: 타임라인 재조정**
- 이전 화 또는 현재 화 날짜 수정
- 이후 화들도 영향받을 수 있음
- 서사 흐름 유지
**옵션 3: 화 순서 변경**
- 플롯 순서 자체를 재배치
- 가장 큰 변경
- 필요시에만 사용
4. 수정 후 전체 재검증
5. Git 커밋
"plots/plot-XXX-YYY.md: X화 타임라인 수정
문제: X화(날짜A) → Y화(날짜B) 역행
조치: [선택한 옵션]
5화 타임라인 검증: 통과 ✅"
```
---
## 📋 Best Practices
### 1. 타임라인 간격
```
✅ 권장:
- 화 간격: 최소 1일 이상
- 긴 기간: 명시 (예: 1946.1.1-3.31)
- 짧은 기간: 시간 명시 (예: 1946.5.15 오후-저녁)
⚠️ 주의:
- 같은 날짜 연속 사용 가능 (시간 구분)
- 예:
- 32화: 1946.5.15 오전
- 33화: 1946.5.15 오후
```
### 2. 회상/병렬 사용
```
✅ 회상 사용 케이스:
- 과거 사건 설명
- 캐릭터 백스토리
- 플래시백 장면
✅ 병렬 사용 케이스:
- 다른 장소 동시 사건
- 멀티 시점 서사
- 동시다발 전개
```
### 3. 5화 플롯 작성 순서 (3단계 밀도)
```
전제 조건:
- 2단계 (권별 플롯) 완료: volumes/vol-XX/volume-plot.md 존재
- 50화 전체 흐름 파악 완료
권장 작성 순서:
1. 권별 플롯에서 1-5화 부분 확인
- volume-plot.md에서 1-5화 요약 확인
- 타임라인, 주요 이벤트 파악
2. 5화별 상세 플롯 작성
- plots/plot-001-005.md 작성
- 각 화별 Part 단위 장면 상세 설계
- 캐릭터 목표/갈등, 감정선 설계
- 타임라인 검증 (Phase 3)
3. 다음 5화 진행
- plots/plot-006-010.md 작성
- 이전 5화(plot-001-005.md)와 연결 확인
- 타임라인 검증
4. 10개 파일 완성
- plot-001-005.md ~ plot-046-050.md
- 각 파일마다 타임라인 검증
- 파일 간 연결 확인
```
---
## 🔄 다른 모드와의 연계
### PLOT → WRITING
```
PLOT 모드에서 타임라인 검증 완료
→ WRITING 모드에서 타임라인 체크포인트 통과 가능
→ 작성 단계 역행 0건
```
### PLOT → VERIFICATION
```
PLOT 타임라인 정상
→ WRITING 정상 작성
→ VERIFICATION 타임라인 검증 통과
→ FIX 모드 재배치 불필요
```
---
## ⚠️ 금지사항
```
❌ 타임라인 없이 플롯 작성
❌ 역행 무시하고 진행
❌ 회상/병렬을 명시하지 않고 역행 사용
❌ 전체 검증 없이 플롯 완료
❌ 날짜 형식 불일치 (YYYY.M.D-M.D 필수)
```
---
## 📊 플롯 타임라인 검증 예시
### 정상 케이스
```markdown
### 7화: 금괴 탈취 작전
- **타임라인:** 1945.9.11-9.20
### 8화: 건준 활동
- **타임라인:** 1945.9.21-9.30 ✅ 9.20 < 9.21
### 9화: 신탁통치 준비
- **타임라인:** 1945.10.1-10.15 ✅ 9.30 < 10.1
```
### 역행 케이스 (오류)
```markdown
### 7화: 금괴 탈취 작전
- **타임라인:** 1945.9.11-9.20
### 8화: 건준 활동
- **타임라인:** 1945.11.1-11.10
### 9화: 신탁통치 준비
- **타임라인:** 1945.10.1-10.15 ❌ 11.10 > 10.1 역행!
```
### 회상 케이스 (정상)
```markdown
### 20화: 만주 진출
- **타임라인:** 1946.4.1-4.30
### 21화: [회상] 1945년 가을
- **타임라인:** 1945.10.1-10.15 ✅ 회상으로 명시됨
### 22화: 희토류 확보
- **타임라인:** 1946.5.1-5.10 ✅ 20화 이후 정상
```
---
*플롯이 올바르면 작성도 올바르다. 설계 단계 품질이 모든 것의 시작!*