Files
novel-writing-guide/templates/standards/plot-mode.md
Alex e6962cb577 plot-mode.md v1.0.0 추가: 설계 단계 타임라인 검증 프로토콜
배경:
- 문제: 플롯 자체에 타임라인 역행 존재 (8화 11월 → 9화 10월)
- 근본 원인: 설계 단계(플롯)에 검증 프로토콜 없음
- 결과: 작성 단계에서 역행 발생 → FIX 모드 재배치 필요

추가 사항:
- 📌 PLOT 모드 프로토콜 신규 작성 (v1.0.0)
  - 플롯 작성 시 타임라인 검증 (3단계 체크포인트)
  - 이전 화 종료일 ≤ 다음 화 시작일 강제 검증
  - 전체 플롯 타임라인 일관성 체크
  - 회상/병렬 서사 명시 규칙 ([회상], [병렬] 태그)
  - 플롯 형식 표준 및 수정 프로토콜

- 📌 3단계 방어선 체계 확립
  - 1차 방어선: PLOT 모드 (설계 오류 차단)
  - 2차 방어선: WRITING 모드 (작성 시 예방)
  - 3차 방어선: VERIFICATION 모드 (최후의 보루)

- 📌 README.md 업데이트
  - 설계 모드 섹션 신규 추가
  - 워크플로우에 PLOT 모드 추가 (0단계)
  - 버전 관리 테이블에 PLOT v1.0.0 추가
  - FAQ 업데이트 (플롯 타임라인, 회상 처리)
  - 사용 가이드 개선 (신규 작품 vs 기존 작품)

철학:
```
PLOT 모드 = 설계 단계 품질 보증
WRITING 모드 = 1차 방어선 (예방)
VERIFICATION 모드 = 최후의 보루 (검증)

→ 설계가 올바르면 작성도 올바르다!
```

효과:
- 설계 단계에서 타임라인 역행 원천 차단
- FIX 모드 재배치 작업 대폭 감소
- 작성 효율성 향상

변경 파일:
- plot-mode.md: 신규 작성 (v1.0.0)
  - 플롯 작성 프로세스
  - 타임라인 검증 체크리스트
  - 회상/병렬 서사 처리
  - 전체 타임라인 검증
  - 플롯 수정 프로토콜
  - Best Practices
- README.md: 업데이트
  - 설계 모드 섹션 추가
  - 워크플로우 재구성
  - 버전 테이블 업데이트
  - FAQ 및 사용 가이드 개선

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-25 10:03:53 +09:00

517 lines
11 KiB
Markdown

# 플롯 모드 프로토콜
> **버전:** 1.0.0
> **최종 수정:** 2026-01-25
> **호환:** CWS Writing Guide v4.2.0+
> **용도:** 플롯 작성 및 타임라인 검증 (설계 단계 품질 보증)
---
## 📋 CHANGELOG
### v1.0.0 (2026-01-25) - 초기 버전
**배경:**
- 문제: 플롯 자체에 타임라인 역행 존재
- 예시: 8화(11월) → 9화(10월), 20화(4월) → 21화(3월)
- 결과: 작성 단계에서 역행 발생 → FIX 모드 재배치 필요
- 근본 원인: **설계 단계(플롯)에 검증 프로토콜 없음**
**추가:**
- 📌 플롯 작성 시 타임라인 검증 프로토콜
- 이전 화 종료일 ≤ 다음 화 시작일 강제 검증
- 전체 플롯 타임라인 일관성 체크
- 회상/병렬 서사 명시 규칙
- 플롯 형식 표준
**철학:**
```
PLOT 모드 = 설계 단계 품질 보증
WRITING 모드 = 1차 방어선 (예방)
VERIFICATION 모드 = 최후의 보루 (검증)
→ 설계가 올바르면 작성도 올바르다!
```
---
## 🎯 플롯 모드 개요
**플롯 모드는:**
- 신규 플롯 작성 또는 기존 플롯 수정
- 타임라인 일관성 필수 검증
- 회상/병렬 서사 명시
- 플롯 완성 후 전체 검증
**진입 명령:**
- "플롯 작성"
- "플롯 검증"
- "X-Y화 플롯 작성해"
- "plot-master.md 타임라인 검증해"
---
## 📝 플롯 작성 프로세스
### Phase 1: 준비
```
1. 플롯 범위 확인
- 신규: X-Y화 (보통 5화 단위)
- 수정: 특정 화 또는 전체
2. 필수 파일 읽기
- volumes/vol-XX/plot-master.md
- volumes/vol-XX/timeline.md
- volumes/vol-XX/characters.md
3. 이전 화 마지막 날짜 확인
- plot-master.md에서 이전 화 타임라인 추출
- 예: 7화 종료일 = 1945.9.20
```
### Phase 2: 각 화 플롯 작성
```
1. 화수 및 제목 설정
예: ### 8화: 금괴 탈취 작전
2. 🚨 타임라인 설정 및 검증 (필수!)
❌ **이 절차를 건너뛰면 타임라인 역행이 발생합니다!**
✅ **반드시 아래 3단계를 순서대로 확인하세요:**
---
**Step 1: 이전 화 종료 날짜 확인**
```bash
# plot-master.md에서 이전 화 검색
grep "7화" plot-master.md
# 출력 예시:
# ### 7화: 금괴 탈취 작전
# - **타임라인:** 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. 주요 내용 작성
- 날짜, 장소, 등장인물
- 핵심 내용 (3-5개 불릿)
- 주요 장면 (구체적으로)
4. 형식 준수
```markdown
### X화: 제목
- **타임라인:** YYYY.M.D-M.D
- **장소:** 위치
- **등장인물:** 이름1, 이름2
- **주요내용:**
* 내용1
* 내용2
```
5. 다음 화로 이동
```
### Phase 3: 전체 타임라인 검증 (필수!)
```
플롯 작성 완료 후 반드시 실행:
1. 타임라인 추출
```bash
grep "타임라인:" plot-master.md | grep -v "^**타임라인:"
```
2. 순서대로 검증
```python
# 의사 코드
timelines = extract_all_timelines("plot-master.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. 검증 결과 보고
```
✅ 타임라인 검증 통과
- 총 52화
- 역행 0건
- 회상 2건 (명시됨)
- 병렬 3건 (명시됨)
또는
❌ 타임라인 역행 발견!
8화 → 9화:
- 8화 종료: 1945.11.10
- 9화 시작: 1945.10.1
→ 11월 다음에 10월 ❌
조치 필요:
- 9화가 회상이면 제목에 "[회상]" 추가
- 아니면 8화/9화 타임라인 재조정
```
```
---
## 🔄 회상/병렬 서사 처리
### 회상 장면
**명시 규칙:**
```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
# 타임라인 추출 (화수 제외)
grep -n "### [0-9]" plot-master.md | while read line; do
chapter=$(echo "$line" | grep -oP '\d+화')
timeline=$(grep -A 5 "$line" plot-master.md | grep "타임라인:" | grep -oP '\d{4}\.\d+\.\d+-\d+\.\d+')
echo "$chapter: $timeline"
done
# 수동 검증:
# 1. 각 화의 종료일 < 다음 화 시작일 확인
# 2. 역행 발견 시 "[회상]" 또는 "[병렬]" 확인
```
---
## 📊 플롯 형식 표준
### 필수 형식
```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 커밋
"plot-master.md: X화 타임라인 수정
문제: X화(날짜A) → Y화(날짜B) 역행
조치: [선택한 옵션]
전체 타임라인 검증: 통과 ✅"
```
---
## 📋 Best Practices
### 1. 타임라인 간격
```
✅ 권장:
- 화 간격: 최소 1일 이상
- 긴 기간: 명시 (예: 1946.1.1-3.31)
- 짧은 기간: 시간 명시 (예: 1946.5.15 오후-저녁)
⚠️ 주의:
- 같은 날짜 연속 사용 가능 (시간 구분)
- 예:
- 32화: 1946.5.15 오전
- 33화: 1946.5.15 오후
```
### 2. 회상/병렬 사용
```
✅ 회상 사용 케이스:
- 과거 사건 설명
- 캐릭터 백스토리
- 플래시백 장면
✅ 병렬 사용 케이스:
- 다른 장소 동시 사건
- 멀티 시점 서사
- 동시다발 전개
```
### 3. 플롯 작성 순서
```
권장:
1. 전체 타임라인 스케치
- 1부: 1945.8-10 (10화)
- 2부: 1945.11-12 (10화)
- 3부: 1946.1-6 (20화)
- 4부: 1946.7-12 (12화)
2. 각 부별 상세 플롯 작성
- 1부 1-10화 작성 → 타임라인 검증
- 2부 11-20화 작성 → 타임라인 검증
- ...
3. 전체 통합 검증
- 1-52화 전체 타임라인 체크
- 역행 0건 확인
```
---
## 🔄 다른 모드와의 연계
### 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화 이후 정상
```
---
*플롯이 올바르면 작성도 올바르다. 설계 단계 품질이 모든 것의 시작!*