배경: - 문제: VERIFICATION에서 호칭 오류 다수 발견 - 원인: characters.md에 호칭 규칙은 있지만, WRITING 시 확인하지 않음 - 결과: VERIFICATION 부담 증가, 수정 비효율 추가: - Phase 1: characters.md 호칭 규칙 필수 숙지 강조 - Phase 2: 호칭 규칙 확인 3단계 필수 체크포인트 - Phase 3: 간이 검증 강화 (Git 커밋 전 필수) 예상 효과: - VERIFICATION 호칭 오류 발견 90% 감소 - 문제를 작성 단계에서 원천 차단 관련 파일: - writing-mode.md: v2.4.0 → v2.5.0 - CWS Design Guide.md: Phase 11 강화 (v1.2.0) - README.md: 프로토콜 인덱스 업데이트 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
14 KiB
작성 모드 프로토콜
버전: 2.5.0 최종 수정: 2026-01-25 호환: CWS Writing Guide v4.2.0+ 용도: 신규 챕터 작성 (3/5/7화 유연) 주요 변경: 호칭 규칙 필수 체크포인트 추가 - 작성 전/후 검증 강화
📋 CHANGELOG
v2.5.0 (2026-01-25)
배경:
- 문제: VERIFICATION에서 호칭 오류 다수 발견
- 원인: characters.md에 호칭 규칙은 있지만, WRITING 시 확인하지 않음
- 결과: VERIFICATION 부담 증가, 수정 비효율
추가:
- 📌 Phase 1: characters.md 호칭 규칙 필수 숙지 강조
- 📌 Phase 2: 호칭 규칙 확인 3단계 필수 체크포인트
- Step 1: 이번 화 등장인물 확인
- Step 2: characters.md 호칭 테이블 확인
- Step 3: 복수/단수 규칙 확인
- 📌 Phase 3: 간이 검증 강화
- 호칭 복수/단수 자동 체크 (bash 명령)
- 시기별 호칭 정확성 체크
- 검증 통과 필수 (Git 커밋 전)
철학:
WRITING 모드 = 호칭 오류 원천 차단
VERIFICATION 모드 = 최후 확인만
→ 작성 단계에서 호칭 규칙 준수!
예상 효과:
- VERIFICATION 호칭 오류 발견 90% 감소
- 작성 시간 소폭 증가하지만 전체 효율 향상
v2.4.0 (2026-01-25)
배경:
- 문제: 플롯에 타임라인이 명시되어 있음에도 작성 시 역행 발생
- 원인: 작성 전 타임라인 체크가 선택적이고 강제성 없음
- 결과: VERIFICATION에서 발견 → FIX에서 재배치 → 비효율
추가:
- 📌 타임라인 역행 방지 필수 체크포인트 (4단계 강제 절차)
- 작성 전 이전 화 종료일 vs 현재 화 시작일 자동 비교
- 역행 감지 시 즉시 중단 및 사용자 보고
- 회상 장면 예외 처리 프로토콜
철학:
WRITING 모드 = 1차 방어선 (예방)
VERIFICATION 모드 = 최후의 보루 (검증)
→ 작성 단계에서 문제를 원천 차단!
v2.3.0 (2026-01-21)
추가:
- 완성도 체크 강화 (미완성 챕터 재발 방지)
v2.0.0 이전
자세한 이력은 Git 커밋 히스토리 참조
📋 작성 모드 개요
작성 모드는:
- 플롯 기반 신규 챕터 작성
- 매 화 완료 시 summary 누적 업데이트
- 작성 완료 후 즉시 간이 검증
- Git 자동 커밋
진입 명령:
- "작성 모드"
- "X화 작성해"
- "1-5화 작성해" (기본 권장)
- "3화 작성해" / "7화 작성해" (유연)
📚 모드 진입 시 읽을 파일
필수
standards/file-formats.md- 파일 형식 표준standards/writing-guide.md- 작성 규칙volumes/vol-XX/characters.md- 해당 권 캐릭터volumes/vol-XX/timeline.md- 해당 권 타임라인volumes/vol-XX/plots/plot-XXX-YYY.md- 이번 N화 플롯volumes/vol-XX/summaries/summary-이전.md- 이전 서머리volumes/vol-XX/foreshadows.md- 복선 추적
다른 권 시작 시 추가
volumes/vol-이전/summaries/summary-vol-XX-final.md- 이전 권 압축 서머리
🎯 작성 프로세스
Phase 1: 준비
1. 진행 상황 파악
- 마지막 작성 챕터 확인
- 다음 5화 범위 계산
2. 필수 파일 읽기 (위 목록)
🚨 특히 중요:
- characters.md → 호칭 규칙 필수 숙지! ⭐
- timeline.md → 타임라인 흐름 파악
- plot-XXX-YYY.md → 이번 화 플롯
3. CURRENT-TASK.md 생성
- 모드: WRITING
- 작업: X권 N-M화 작성
- 진행 상황: 테이블 초기화
4. 준비 완료 보고
Phase 2: 각 화 작성
1. 해당 화 플롯 확인
- 날짜, 장소, 등장인물
- 핵심 내용, 주요 장면
2. 🚨 호칭 규칙 확인 (v2.5.0 필수 체크포인트!) ⭐ 신규
❌ **이 절차를 건너뛰면 호칭 오류가 발생합니다!**
✅ **반드시 아래 3단계를 순서대로 확인하세요:**
---
**Step 1: 이번 화 등장인물 확인**
```bash
# 플롯에서 등장인물 추출
grep "등장인물" plot-XXX.md
# 예시 출력: 강민준, 서윤희, 박현우
Step 2: characters.md 호칭 테이블 확인
# 호칭 규칙 섹션 읽기
grep -A 30 "## 📋 호칭 규칙" characters.md
호칭 테이블 숙지:
예시 (1권 1946.5월 이후):
| 화자 | 청자 | 호칭 | 비고 |
|------|------|------|------|
| 강민준 | 서윤희 | 윤희 씨 | ch-031 이후 |
| 서윤희 | 강민준 | 민준 씨 | ch-031 이후 |
| 박현우 | 강민준 | 민준 형 | 현대 감각 |
| 최태준 | 강민준 | 형님 | 1명 단수 |
| 최태준 | 강민준+박현우 | 형님들 | 2명 복수 |
Step 3: 복수/단수 규칙 확인
복수형 사용 조건:
- 대상이 2명 이상일 때만 "~들" 사용
- 예: "형님들" (강민준 + 박현우 = 2명)
- 예: "형님" (강민준만 = 1명)
단수형 사용:
- 대상이 1명일 때
- 예: "형님", "선생님", "씨"
-
🚨 타임라인 역행 방지 (v2.4.0 필수 체크포인트!)
❌ 이 절차를 건너뛰면 타임라인 역행이 발생합니다! ✅ 반드시 아래 4단계를 순서대로 확인하세요:
Step 1: 이전 화 종료 날짜 확인
# 이전 화 파일 읽기 (첫 5줄) head -5 chapters/ch-027.md # 출력 예시: # # 1권 27화: 제목 # # > **타임라인:** 1946.04.05-23 → 종료일 추출: 1946.04.23Step 2: 현재 화 플롯 날짜 확인
# plot-master.md에서 현재 화 검색 grep "28화" plot-master.md # 출력 예시: # ### 28화: 제목 # - **타임라인:** 1946.03.05-15 → 시작일 추출: 1946.03.05Step 3: 타임라인 역행 체크 (필수!)
비교: - 이전 화 종료일: 1946.04.23 - 현재 화 시작일: 1946.03.05 판정: → 04.23 > 03.05 ❌ 역행! ⚠️ 즉시 중단! ⚠️ 사용자에게 보고: "❌ 타임라인 역행 감지! - 이전 화 (ch-027): 1946.04.23 종료 - 현재 화 (ch-028): 1946.03.05 시작 → 4월 다음에 3월이 올 수 없습니다. 원인: 1. 플롯 순서가 잘못됨 2. 또는 회상 장면 (제목/본문에 명시 필요) 조치: - 회상이 아니면 플롯 수정 필요 - 회상이면 제목에 \"회상:\" 추가 계속 진행하시겠습니까?" → 사용자 확인 대기Step 4: 정상인 경우만 작성 시작
비교: - 이전 화 종료일: 1946.04.23 - 현재 화 시작일: 1946.05.01 판정: → 04.23 < 05.01 ✅ 정상! ✅ 작성 시작 가능
회상 장면 예외 처리:
회상인 경우: 1. 제목에 명시: "# X권 Y화: [회상] 제목" 2. 또는 Part 헤더: "## [회상] 1945년 가을" 3. 본문 시제: "~했었다", "~였었다" 사용 → VERIFICATION에서 "회상"으로 판정됨 → FIX 모드 재배치 대상에서 제외
-
작성
- 헤더: # X권 Y화: 제목
- 타임라인: > 타임라인: YYYY.M.D-M.D
- 분량: 8,000-12,000자
- file-formats.md 형식 준수
⚠️ 각 Part 작성 후 즉시 자가 검증!
Part 1 작성 완료 → 즉시 체크: ✅ 플롯 준수 - [ ] 플롯에 있는 핵심 내용 포함됐는가? - [ ] 플롯에 없는 중요 설정 추가 안 했는가? - [ ] 등장인물이 플롯과 일치하는가? ✅ 캐릭터 일관성 - [ ] 성격이 characters.md와 맞는가? - [ ] 갑자기 못하던 걸 하진 않는가? - [ ] 몰랐던 정보를 갑자기 알진 않는가? ✅ 설정 일관성 - [ ] 이전 화와 모순 없는가? - [ ] 무기/아이템 연속성 유지되는가? - [ ] 날씨/계절이 날짜와 맞는가? 🔴 **v2.3.0 신규: 완성도 체크** - [ ] Part가 완전히 끝났는가? (중간에 안 끊김) - [ ] 대화가 중간에 끊기지 않았는가? (질문만 하고 답 없음 X) - [ ] 장면이 마무리됐는가? (시작만 하고 안 끝남 X) - [ ] 헤더 만들었으면 내용도 3줄 이상 작성했는가? → 하나라도 "아니오"면: 즉시 완성 후 다음 Part! → 모두 "예"면: Part 2 작성 (Part 2, 3, 4도 동일하게 각각 작성 후 체크!)⚠️ 마지막 Part 작성 시 중요:
## Part 4: 소제목 (본문 내용 마지막 문장.) ← 여기서 즉시 멈추세요! 절대 추가하지 마세요: - [X화 끝] - 다음 화 예고 - 구분선 (---) - 아무것도! -
저장
- volumes/vol-XX/chapters/ch-XXX.md
-
summary 즉시 업데이트
- summaries/summary-001-XXX.md 누적 업데이트
-
CURRENT-TASK.md 업데이트
- 해당 화: ✅ 완료
-
다음 화로 이동
### Phase 3: 작성 완료 + 간이 검증 (필수!)
⚠️ Git 커밋 전 필수 단계! ⚠️ 이 검증을 통과하지 못하면 커밋 금지!
-
N개 챕터 파일 확인
-
summary 최종 정리
- 전체 줄거리 완성도
- 챕터별 핵심
- 캐릭터 상태
- 복선 추적
-
🔍 즉시 간이 검증 실행 (필수!)
3-1. 자동 검증 (Bash 명령)
✅ 타임라인 연속성
# 이전 화 종료일 확인 sed -n '3p' ch-027.md | grep -oP '\d{4}\.\d+\.\d+' | tail -1 # 현재 화 시작일 확인 sed -n '3p' ch-028.md | grep -oP '\d{4}\.\d+\.\d+' | head -1 # 비교: 종료일 ≤ 시작일 확인✅ 호칭 일관성 ⭐ 강화! (v2.5.0)
# 복수형 검색 grep -n "형님들\|형들\|선배님들\|씨들" ch-XXX.md # 각 발견 건마다: # 1. 화자 확인 (누가 말했는가?) # 2. 청자 확인 (누구에게?) # 3. 청자 수 확인 (1명? 2명 이상?) # 4. 복수/단수 일치 확인 예시: - "형님들" 발견 → 화자: 최태준 → 청자: 강민준+박현우(2명) ✅ - "형님" 발견 → 화자: 최태준 → 청자: 강민준(1명) ✅ - "형님들" 발견 → 화자: 최태준 → 청자: 강민준(1명) ❌ 오류!✅ 시기별 호칭 정확성 (v2.5.0 신규)
# 강민준-서윤희 호칭 체크 (예시) grep -n "윤희 씨\|민준 씨" ch-XXX.md # 확인 사항: # - ch-031 (1946.5월) 이전인가? → "윤희 씨" 사용 금지! # - ch-031 이후인가? → "윤희 씨" 사용 가능 # characters.md 호칭 변화 시점 참조✅ 바텀 존재 여부
grep -n "\[.*화 끝\]\|다음.*화:" ch-XXX.md # 발견 시 → 즉시 삭제✅ 헤더 형식
# 첫 줄 체크 head -1 ch-028.md # 기대값: # 1권 28화: 제목 # 파일명 028 = 헤더 28화 일치 확인✅ 타임라인 형식
# 3번째 줄 체크 sed -n '3p' ch-028.md # 기대값: > **타임라인:** YYYY.M.D-M.D # 형식 검증🔴 v2.3.0: 완성도 검증
- 빈 섹션 0건
- 대화 완결성
- 최소 분량 8,000자
3-2. 검증 결과 판정
✅ 문제 0건 → 4단계로 진행 ❌ 문제 발견 → 즉시 수정 → 3-1 재실행 ⚠️ 문제가 있는데 커밋하지 마세요! ⚠️ 반드시 검증 통과 후 커밋!
-
foreshadows.md 업데이트
- 설치된 복선 추가
- 회수된 복선 체크
-
Git 커밋 "X권 N-M화 작성 완료
- ch-XXX: 제목 (분량)
- ch-XXX: 제목 (분량) ...
- summary-001-XXX.md 업데이트
- foreshadows.md 업데이트
총 XX,XXX자 간이 검증: 통과 ✅
Co-Authored-By: Claude noreply@anthropic.com"
-
CURRENT-TASK.md 업데이트 또는 삭제
-
완료 보고 + 다음 작업 안내
---
## ✅ 각 화 작성 체크리스트
작성 전:
- 플롯 확인 (날짜, 장소, 등장인물, 핵심)
- 이전 화 종료일 확인
- 타임라인 연속성 확인
작성 중 (각 Part마다!):
- 헤더 형식: # X권 Y화: 제목
- 타임라인 형식: > 타임라인: YYYY.M.D-M.D
- 분량 8,000자 이상
- Show, Don't Tell
- 캐릭터 말투/호칭 일관성
- ⭐ 각 Part 작성 후 즉시 자가 검증!
- 플롯 준수, 캐릭터 일관성, 설정 일관성
- 🔴 v2.3.0: 완성도 체크 (Part 완료, 대화 완결, 장면 마무리)
🔴 v2.3.0 신규: 작성 완료 전 최종 체크
- 모든 섹션 헤더 이후 내용 3줄 이상 존재
- 마지막 대화가 완결됨 (질문으로 안 끝남)
- 마지막 장면이 마무리됨 (중간에 안 끊김)
- 최소 분량 8,000자 이상
- 각 Part가 완전히 끝남
작성 후:
- 바텀 없음 확인!
- summary 즉시 업데이트
- CURRENT-TASK.md 업데이트
---
## 🚫 작성 모드 금지사항
❌ 플롯 없이 작성
❌ summary 업데이트 생략
❌ 바텀 추가 ([X화 끝], 다음 X화: 등)
❌ 타임라인 역행
❌ 캐릭터 OOC (Out Of Character)
❌ 호칭 불일치
---
## 📊 summary 형식
```markdown
# 1-X화 누적 서머리
> 최종 업데이트: YYYY-MM-DD HH:MM
> 현재: ch-XXX (X화)
## 📌 전체 줄거리
(누적 3-5문단)
## 📖 챕터별 핵심
### ch-001: [제목]
**날짜:** YYYY.M.D
**핵심:** 1줄 요약
### ch-002: [제목]
...
## 🎭 캐릭터 상태
### [이름]:
- ch-001: 상태
- ch-005: 상태 변화
## ⚠️ 복선
- [ ] [내용] (ch-XXX) → 회수 예정: X권
## 📊 통계
- 총 챕터: X화
- 총 분량: XX,XXX자
🔢 유연한 작업 단위
기본 권장: 5화
플롯: plot-001-005.md (5화)
작성: ch-001 ~ ch-005
서머리: summary-001-005.md
장점:
- 토큰 효율 최적
- 한 세션 완료 가능
- 관리 용이
허용: 3화, 7화, 10화
"3화 작성해"
→ plot-001-003.md 기준
→ ch-001 ~ ch-003
→ summary-001-003.md
"7화 작성해"
→ plot-001-007.md 기준
→ ch-001 ~ ch-007
→ summary-001-007.md
"10화 작성해"
→ plot-001-010.md 기준
→ ch-001 ~ ch-010
→ summary-001-010.md
권장 사항
✅ 권장:
- 일반: 5화 (기본)
- 짧게: 3화 (시간 부족)
- 길게: 7화 (몰입 중)
⚠️ 주의:
- 10화 이상: 컴팩팅 위험
- 1-2화: 너무 잦은 세션 전환
❌ 비권장:
- 불규칙 단위 (4화, 6화)
- 단위 혼용 (5화 → 3화 → 7화)
summary 누적 규칙
예: 1-5화 작성 후 6-10화 작성
summary-001-005.md 생성
↓
summary-001-010.md 생성 (1-10화 전체 누적!)
→ summary-001-005.md는 유지 (백업)
→ summary-001-010.md가 최신
작성 모드는 속도가 핵심입니다. 플롯대로 빠르게 작성하고, 간이 검증 후 커밋!