Files
novel-writing-guide/templates/standards/fix-mode.md
Alex c56b6f1f76 Design Guide v1.6.0: Phase 4 태스크 기반 재설계 + 전체 프로세스 검증 완료
- Phase 4 아키텍처 재설계: 수량 기반 → 태스크 실행 기반
- phase4-master-design.md 신규 (전체 Phase 4 아키텍처)
- 설계 모드 11개 신규/갱신:
  - plot-master-mode/verification (Phase 4-1)
  - volume-timeline-mode/verification (Phase 4-2선행)
  - volume-characters-mode/verification (Phase 4-2선행)
  - volume-plot-mode/verification (Phase 4-2)
  - plot-detail-verification (Phase 4-3)
  - design-verification-mode (Phase 5)
- 검증 프로토콜 강화:
  - 에스컬레이션 경로, 신뢰 모델, 유효성 조건 전 프로토콜 통일
  - 검증 보고서 유효성 관리 (report-management.md 연동)
  - 권 경계 교차 검증 추가 (Phase 4-2 §6.3, 4-3 §4.3, Phase 5 검증 6)
  - 입력 소비 확인 (Phase 4-1 검증 0)
- 작성 파이프라인 보강:
  - writing-mode: Phase 5 통과 전제 명시, vol-XX-plot.md INPUT 추가
  - polish-mode: VERIFICATION→FIX 완료 필수 진입 조건
- 3회 종합 감사 통과 (설계+작성 전체, 실제 문제 0건)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 21:52:24 +09:00

17 KiB

FIX 모드 프로토콜

버전: 2.0.0 최종 수정: 2026-01-25 호환: CWS Writing Guide v4.2.0+ 용도: 검증 보고서 기반 일괄 수정 (타임라인 역행 재배치 포함) 주요 변경: 챕터 재배치 프로토콜 추가, 리포트 유효성 검증, Git 워크플로우 명확화


📋 CHANGELOG

v2.0.0 (2026-01-25) - Major Update

추가:

  • 📌 챕터 재배치 프로토콜 (3-stage 안전 프로세스)
  • 📌 롤백 메커니즘 및 에러 복구
  • 📌 리포트 유효성 검증 (report-management.md 연동)
  • 📌 Git 커밋 타이밍 명확화
  • 📌 영향받는 배치 자동 무효화

변경:

  • 워크플로우 개선 (백업 → 수정 → 검증 → 커밋)
  • 체크리스트 세분화

v1.1.0 (2026-01-20)

추가:

  • WORK-MODE.txt 시스템 (컴팩팅 대응)

v1.0.0 (2025-XX-XX)

초기 버전:

  • 기본 FIX 모드 프로토콜

🔄 컴팩팅 대응 시스템

일괄 수정 시 WORK-MODE.txt 사용

FIX 모드 시작 시:

1. WORK-MODE.txt 파일 생성
---
CURRENT_MODE: FIX
READ_FILE: standards/fix-mode.md
---
SOURCE_REPORT: validation-report-vol-01.md
TOTAL_ISSUES: 45
COMPLETED: 0
NEXT_ISSUE: 1
STATUS: IN_PROGRESS
STARTED: 2026-01-25 10:30
---

2. fix-progress.md 파일 생성 (진행 상황 체크리스트)

각 문제 수정 후:

1. fix-progress.md에 [x] 표시
2. 수정 내용 기록
3. WORK-MODE.txt의 COMPLETED, NEXT_ISSUE 업데이트
4. 파일 저장
5. 다음 문제

컴팩팅 후 재개 시:

1. WORK-MODE.txt 읽기
2. CURRENT_MODE 확인 → FIX
3. READ_FILE 확인 → fix-mode.md (이 파일)
4. SOURCE_REPORT 읽기 → 원본 검증 보고서
5. fix-progress.md 읽기 → 진행 상황 확인
6. NEXT_ISSUE부터 재개

FIX 완료 시:

1. 전체 [x] 확인
2. WORK-MODE.txt 삭제
3. 사용자에게 완료 보고

핵심 원칙:

❌ 전체 문제를 메모리에서 처리 후 한 번에 기록
✅ 1개 수정 → 즉시 파일 업데이트 → WORK-MODE.txt 업데이트 → 다음

📋 리포트 유효성 검증 (v2.0.0 신규)

참고: standards/report-management.md 참조

🚨 필수: 검증 보고서 읽기 전 유효성 체크

FIX 모드 진입 시:

# 1. 검증 보고서 날짜 확인
grep "검증일" validation-report-vol-01.md
# 예: **검증일:** 2026-01-21

# 2. 대상 파일 수정 시간 확인
ls -l chapters/*.md

# 3. 유효성 판정
if [ 보고서_날짜 < 파일_수정 ]; then
    echo "❌ 검증 보고서 무효 → 재검증 필요"
else
    echo "✅ 검증 보고서 유효 → FIX 진행"
fi

무효 시 처리:

검증 보고서 확인:
- 작성일: 2026-01-21
- 파일 수정: 2026-01-24 (보고서 이후!)
- 상태: ❌ 무효

이유: FIX 모드에서 파일 재배치 발생

→ VERIFICATION 재실행 필요
→ FIX 모드 중단

📋 FIX 모드 개요

FIX 모드는:

  • VERIFICATION 모드의 검증 보고서를 기반으로
  • 발견된 문제를 일괄 수정
  • 심각도 순서대로 처리 (🔴🟡🟢)
  • 타임라인 역행 발견 시 챕터 재배치 수행

핵심 원칙:

VERIFICATION = 발견 + 기록
FIX = 일괄 수정 (재배치 포함)
(분리!)

진입 조건:

  • VERIFICATION 모드 완료 후
  • 검증 보고서 존재 및 유효

진입 명령:

  • "FIX 모드"
  • "수정 진행해"
  • "검증 결과 수정해"

모드 진입 시 자동 실행:

  • WORK-MODE.txt 업데이트 (CURRENT_MODE: FIX)
  • 필수 파일 자동 읽기 (검증 보고서, vol-XX-characters.md, vol-XX-timeline.md)
  • 준비 완료 보고 및 대기

📚 모드 진입 시 읽을 파일

필수

  1. 검증 보고서 (VERIFICATION 결과)
  2. standards/report-management.md - 리포트 유효성 검증
  3. settings/characters-master.md - 호칭 수정 시
  4. volumes/vol-XX/vol-XX-timeline.md - 타임라인 수정 시

수정 대상

  1. volumes/vol-XX/chapters/ch-*.md - 해당 챕터들

🎯 FIX 모드 워크플로우 (v2.0.0)

검증 보고서 유효성 체크 ⭐ NEW!
    ↓
검증 보고서 읽기
    ↓
심각도별 분류 확인
    ↓
Git 현재 상태 확인 (clean working tree)
    ↓
🔴 타임라인 역행 → 챕터 재배치 ⭐ NEW!
    ↓
🔴 기타 심각 항목 처리
    ↓
🟡 중요 항목 처리
    ↓
🟢 경미 항목 처리 (선택)
    ↓
영향받는 배치 리포트 무효화 ⭐ NEW!
    ↓
Git 커밋 ⭐ 타이밍 명확화
    ↓
재검증 (자동) ⭐ NEW!
    ↓
POLISH 모드로 전환 (선택)

📌 챕터 재배치 프로토콜 (v2.0.0 신규)

언제 사용하나?

타임라인 역행 발견 시:

검증 결과:
- ch-027: 1946.04.05-23
- ch-028: 1946.03.05-15 ← 역행!

판정: 🔴 긴급 오류 (회상 표시 없음)
조치: ch-028을 올바른 위치로 재배치

3-Stage 안전 프로세스

Stage 0: 사전 준비

# 1. Git 상태 확인
git status
# → clean working tree 확인

# 2. 백업 생성 (선택)
cp -r chapters/ chapters-backup-$(date +%Y%m%d-%H%M%S)/

# 3. 재배치 계획 확인
# ch-028 (3월) → ch-022 위치로 이동
# 영향받는 파일: ch-022~028 (7개)

Stage 1: Temp 파일로 이동

# 목적: 파일 덮어쓰기 방지

# ch-028을 제외한 나머지를 temp로
mv chapters/ch-022.md chapters/temp-023.md
mv chapters/ch-023.md chapters/temp-024.md
mv chapters/ch-024.md chapters/temp-025.md
mv chapters/ch-025.md chapters/temp-026.md
mv chapters/ch-026.md chapters/temp-027.md
mv chapters/ch-027.md chapters/temp-028.md

# ch-028은 temp-022로
mv chapters/ch-028.md chapters/temp-022.md

# 검증: temp-022~028 존재 확인
ls chapters/temp-*.md

Stage 2: 헤더 수정

# 각 temp 파일의 내부 헤더 수정

for file in temp-022.md ~ temp-028.md:
    old_header = "# 1권 XX화: ..."
    new_number = extract_number(file)  # temp-022 → 22
    new_header = f"# 1권 {new_number}화: ..."

    replace_in_file(file, old_header, new_header)

# 검증: 각 파일 헤더 확인
for f in temp-*.md:
    head -1 $f  # "# 1권 22화", "# 1권 23화" 등 확인

Stage 3: 최종 이름 변경

# temp → 최종 파일명

mv chapters/temp-022.md chapters/ch-022.md
mv chapters/temp-023.md chapters/ch-023.md
mv chapters/temp-024.md chapters/ch-024.md
mv chapters/temp-025.md chapters/ch-025.md
mv chapters/temp-026.md chapters/ch-026.md
mv chapters/temp-027.md chapters/ch-027.md
mv chapters/temp-028.md chapters/ch-028.md

# 검증: ch-022~028 존재 확인
ls chapters/ch-022.md chapters/ch-023.md ... chapters/ch-028.md

# temp 파일 남아있는지 확인
ls chapters/temp-*.md 2>&1
# → "No such file" 확인

Stage 4: 검증

# 1. 파일 개수 확인
ls chapters/ch-*.md | wc -l
# → 이전과 동일한 개수

# 2. 헤더 확인
for i in {022..028}; do
    echo "ch-$i:"
    head -1 chapters/ch-$i.md
done

# 3. 타임라인 순서 확인
for i in {022..028}; do
    grep "타임라인" chapters/ch-$i.md
done
# → 시간 순서대로 정렬되었는지 확인

롤백 메커니즘 (v2.0.0 신규)

각 Stage 실패 시:

# Stage 1 실패 (일부만 temp로 이동됨)
→ 이동된 temp 파일을 원래 이름으로 복구
→ mv chapters/temp-023.md chapters/ch-022.md

# Stage 2 실패 (헤더 수정 중 에러)
→ temp 파일은 그대로 (원본 보존됨)
→ 에러 파일만 다시 수정 시도
→ 또는 전체 롤백

# Stage 3 실패 (일부만 최종 이름 변경됨)
→ 이동된 파일을 temp로 복구
→ mv chapters/ch-022.md chapters/temp-022.md
→ Stage 3 재시도

# 최악의 경우 (복구 불가)
→ 백업에서 복원
→ cp -r chapters-backup-YYYYMMDD-HHMMSS/* chapters/

에러 처리 프로토콜

에러 발생 시 절차:

  1. 즉시 중단

    • 현재 Stage 중단
    • 에러 메시지 기록
  2. 상태 확인

    ls chapters/ch-*.md
    ls chapters/temp-*.md
    
  3. 롤백 판단

    • Stage 1-2: temp 파일 삭제 → 원본 유지
    • Stage 3: temp로 복구 → Stage 3 재시도
  4. 사용자 보고

    ❌ 재배치 실패 (Stage 2)
    
    에러: ch-025.md 헤더 수정 중 파일 읽기 오류
    
    현재 상태:
    - temp-022~024: 헤더 수정 완료 ✅
    - temp-025: 헤더 수정 실패 ❌
    - temp-026~028: 대기 중
    
    조치:
    1. temp-025.md 수동 확인 필요
    2. 또는 전체 롤백 후 재시도
    
    롤백하시겠습니까?
    

📝 수정 유형별 처리

1. 타임라인 역행 → 재배치 (최우선)

## 발견 내용
| 위치 | 타임라인 | 문제 |
|------|----------|------|
| ch-027 | 1946.04.05-23 | - |
| ch-028 | 1946.03.05-15 | ← 역행! |

## 조치
1. 재배치 프로토콜 실행 (3-stage)
2. ch-028 → ch-022 위치로 이동
3. ch-022~027 → 한 칸씩 뒤로
4. 검증 완료

2. 설정 충돌 수정

## 발견 내용
| 위치 | 내용 |
|------|------|
| ch-012:34 | 민준 나이 32→34 불일치 |

## 수정 방법
1. characters-master.md 확인 (정답: 32세)
2. ch-012 열기
3. 34줄 수정: "34세" → "32세"
4. 체크: ✅

3. 타임라인 헤더 형식 수정

## 발견 내용
| 챕터 | 현재 | 올바른 형식 |
|------|------|------------|
| ch-025 | 타임라인: 1945.05.15 | > **타임라인:** 1945.05.15 |

## 수정 방법
1. ch-025 열기
2. Edit 도구 사용:
   old_string: "타임라인: 1945.05.15"
   new_string: "> **타임라인:** 1945.05.15"
3. 체크: ✅

4. 호칭 오류 수정

## 발견 내용
| 위치 | 내용 |
|------|------|
| ch-018:45 | "윤희 씨" → "서 선생님" (시점 이전) |

## 수정 방법
1. characters-master.md 호칭 규칙 확인
2. ch-018 시점 확인 (첫 만남 직후)
3. 45줄 수정: "윤희 씨" → "서 선생님"
4. 체크: ✅

5. 바텀 제거

## 발견 내용
| 챕터 | 바텀 내용 |
|------|----------|
| ch-033 | "[33화 끝]" |
| ch-041 | "[41화 끝]\n다음 42화:" |

## 수정 방법
1. 해당 챕터 열기
2. "[X화 끝]" 패턴 삭제
3. "다음 X화:" 패턴 삭제
4. 체크: ✅

🔗 영향받는 배치 자동 무효화 (v2.0.0 신규)

재배치 후 처리

재배치 완료 후 필수:

# 1. 영향받는 파일 범위 계산
repositioned = "ch-028"
new_position = "ch-022"
affected_files = ["ch-022", "ch-023", ..., "ch-028"]

# 2. 영향받는 배치 계산
# 배치 3: ch-021~030
# affected_files에 ch-022~028 포함됨
affected_batches = ["batch-03"]

# 3. 리포트 무효화
for batch in affected_batches:
    report = f"validation-batch-{batch}.md"
    if exists(report):
        # 옵션 A: 삭제
        delete(report)

        # 옵션 B: 아카이브
        archive(report, f"archive/{report}.invalid")

        # 옵션 C: 무효 표시
        add_invalid_marker(report)

# 4. 사용자 보고
print(f"""
재배치 완료: ch-028 → ch-022

영향받는 배치:
- 배치 3 (ch-021~030)
  → validation-batch-03.md 무효화됨
  → 다음 검증 시 재검증 필요
""")

💾 Git 워크플로우 (v2.0.0 명확화)

커밋 타이밍

원칙:

각 수정 유형별로 논리적 단위로 커밋
재배치는 별도 커밋 (영향 범위가 크므로)

구체적 타이밍:

1. 재배치 완료 후 즉시 커밋

# ch-028 재배치 완료
git add chapters/ch-022.md chapters/ch-023.md ... chapters/ch-028.md

git commit -m "$(cat <<'EOF'
Fix timeline reversal: reposition ch-028 (March) to ch-022

Problem:
- ch-027: 1946.04.05-23 (April)
- ch-028: 1946.03.05-15 (March) ← reversal!

Changes:
- ch-028 (old pos) → ch-022 (new pos)
- ch-022~027 → shifted to ch-023~028
- Internal headers updated

Affected batches:
- batch-03 (ch-021~030) invalidated

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
EOF
)"

2. 형식 수정 완료 후 커밋

# 타임라인 헤더 형식 수정 완료 (23건)
git add chapters/ch-*.md

git commit -m "$(cat <<'EOF'
Fix timeline header format in 23 chapters

Changes:
- "타임라인: YYYY.M.D" → "> **타임라인:** YYYY.M.D"
- Chapters: ch-002~008, ch-012~016, ch-020~025

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
EOF
)"

3. 호칭 수정 완료 후 커밋

git add chapters/ch-*.md

git commit -m "Fix honorific inconsistencies (5 instances)

..."

커밋 묶음 예시:

1st commit: Timeline reversal repositioning (ch-028)
2nd commit: Timeline header format fixes (23 files)
3rd commit: Honorific fixes (5 instances)
4th commit: Bottom text removal (3 files)

→ 총 4개 커밋 (유형별)

Git 상태 체크

FIX 시작 전:

git status
# → clean working tree 확인
# → 미커밋 변경 있으면 먼저 처리

FIX 중간:

# 각 커밋 후
git log --oneline -5
# → 커밋 히스토리 확인

FIX 완료 후:

git status
# → clean working tree 확인

git push
# → 원격 저장소에 푸시

📊 수정 진행 보고 형식

# FIX 모드 진행 보고

> **수정일:** 2026-01-25
> **검증 보고서 기준:** 2026-01-24

---

## 📊 진행 현황

| 심각도 | 총 건수 | 완료 | 남음 |
|--------|--------|------|------|
| 🔴 심각 | 3 | 3 | 0 |
| 🟡 중요 | 20 | 20 | 0 |
| 🟢 경미 | 2 | 0 | 2 (보류) |
| **합계** | **25** | **23** | **2** |

---

## ✅ 완료된 수정

### 🔴 타임라인 역행 재배치

| # | 챕터 | 조치 | 커밋 |
|---|------|------|------|
| 1 | ch-028 | ch-022로 재배치 | abc123f |

**영향받는 배치:**
- validation-batch-03.md 무효화됨

### 🟡 형식 수정

| # | 위치 | 유형 | 수정 내용 |
|---|------|------|----------|
| 1 | ch-002~008 | 타임라인 헤더 | 형식 수정 |
| 2 | ch-012~016 | 타임라인 헤더 | 형식 수정 |
| ... | | | |

---

## ⏳ 보류/미완료

| # | 위치 | 유형 | 사유 |
|---|------|------|------|
| 1 | ch-005:12 | 날짜 겹침 | 🟢 경미, 추후 처리 |
| 2 | ch-010:34 | 병렬 서사 | ✅ 정상 (오판) |

---

## 🔄 Git 커밋 히스토리

1. `abc123f` - Fix timeline reversal: reposition ch-028 to ch-022
2. `def456a` - Fix timeline header format in 23 chapters
3. `ghi789b` - Fix honorific inconsistencies (5 instances)

---

## ➡️ 다음 단계

- [x] VERIFICATION 완료
- [x] FIX 완료 (23/25건)
- [ ] RE-VERIFICATION (자동 실행 예정)
- [ ] POLISH 진행 (선택)

FIX 모드 체크리스트 (v2.0.0)

수정 전

  • 검증 보고서 유효성 확인
  • 총 수정 건수 파악
  • 심각도별 분류 확인
  • Git clean working tree 확인
  • 백업 생성 (재배치 시)

수정 중

  • 🔴 타임라인 역행 재배치 (최우선)
  • 🔴 기타 심각 항목 완료
  • 🟡 중요 항목 완료
  • 🟢 경미 항목 처리 (선택)
  • 각 유형별 Git 커밋

수정 후

  • 영향받는 배치 리포트 무효화
  • 수정 완료 보고 작성
  • Git 푸시
  • 재검증 (자동) 대기

🚫 FIX 모드 금지사항

❌ 검증 보고서 유효성 체크 생략 (v2.0.0)
❌ Git 상태 확인 없이 수정 시작
❌ 재배치 시 백업 없이 진행
❌ 수정하면서 새 문제 발견해도 범위 확장 (→ 다시 VERIFICATION)
❌ 플롯/내용 변경 (→ MODIFICATION 모드에서)
❌ 수정 기록 누락
❌ Git 커밋 누락
❌ 영향받는 배치 무효화 누락 (v2.0.0)

🔗 연계 모드

VERIFICATION (검증, 기록)
    ↓
FIX (일괄 수정 + 재배치) ← 현재
    ↓
RE-VERIFICATION (자동)
    ↓
POLISH (가독성/문체)

💡 효율적인 FIX 팁

1. 타임라인 역행 재배치부터 (영향이 크므로)

2. 같은 유형끼리 묶어서 처리
   - 형식 수정 → 한번에
   - 호칭 수정 → 한번에

3. 같은 챕터 수정은 한번에
   - ch-012에 3건 있으면 한번에 처리

4. 심각도 순서 지키기
   - 🔴 먼저, 시간 부족하면 🟢은 보류

5. 수정 후 바로 커밋
   - 논리적 단위로 커밋 (롤백 용이)

6. 재배치 후 영향 배치 확인
   - 무효화 누락 방지

🔧 에러 복구 시나리오

시나리오 1: 재배치 Stage 2 실패

상황: 헤더 수정 중 파일 읽기 오류

조치:
1. 즉시 중단
2. temp 파일 확인
3. 에러 파일만 수동 수정
4. Stage 2 재개

시나리오 2: Git 충돌

상황: 푸시 중 리모트 변경 감지

조치:
1. git pull --rebase
2. 충돌 해결
3. git rebase --continue
4. git push

시나리오 3: 재배치 후 검증 실패

상황: 재배치 완료했지만 타임라인 여전히 역행

조치:
1. 재배치 로직 재확인
2. 타임라인 다시 읽기
3. 올바른 위치 재계산
4. 재배치 재실행

📋 관련 문서

  • verification-mode.md - 검증 모드 프로토콜
  • report-management.md - 리포트 유효성 관리
  • polish-mode.md - POLISH 모드 프로토콜

FIX는 검증 결과 기반! 새 문제 발견 시 다시 VERIFICATION!