Major protocol update: fix-mode v2.0.0, CHANGELOG, and protocol index

Problems addressed:
1. fix-mode.md lacked chapter repositioning protocol
2. No CHANGELOG tracking for protocol revisions
3. No centralized protocol index/documentation

Changes:

1. fix-mode.md (v1.1.0 → v2.0.0) - Major Update
   Added:
   - Chapter repositioning protocol (3-stage safe process)
   - Rollback mechanism and error recovery
   - Report validity check integration
   - Git workflow clarification (commit timing)
   - Affected batch auto-invalidation
   Changed:
   - Workflow improved (backup → fix → verify → commit)
   - Checklist detailed

2. verification-mode.md (v2.9.0)
   Added:
   - CHANGELOG section

3. polish-mode.md (v2.4.0)
   Added:
   - CHANGELOG section

4. report-management.md (v1.0.0)
   Added:
   - CHANGELOG section

5. README.md (NEW)
   - Complete protocol index
   - Version tracking table
   - Workflow diagrams
   - FAQ section
   - Usage guide

Protocol standardization:
- All protocols now have CHANGELOG sections
- Version history tracked
- Changes documented
- Centralized documentation

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Alex
2026-01-25 09:40:16 +09:00
parent e8c671b521
commit 9c6c978030
5 changed files with 973 additions and 97 deletions

View File

@@ -1,14 +1,41 @@
# FIX 모드 프로토콜
> **버전:** 1.1.0
> **최종 수정:** 2026-01-20
> **호환:** CWS Writing Guide v3.3.0+
> **용도:** 검증 보고서 기반 일괄 수정
> **주요 변경:** WORK-MODE.txt 시스템 추가 (컴팩팅 대응)
> **버전:** 2.0.0
> **최종 수정:** 2026-01-25
> **호환:** CWS Writing Guide v4.2.0+
> **용도:** 검증 보고서 기반 일괄 수정 (타임라인 역행 재배치 포함)
> **주요 변경:** 챕터 재배치 프로토콜 추가, 리포트 유효성 검증, Git 워크플로우 명확화
---
## 🔄 컴팩팅 대응 시스템 (v1.1.0 신규)
## 📋 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 사용
@@ -24,7 +51,7 @@ TOTAL_ISSUES: 45
COMPLETED: 0
NEXT_ISSUE: 1
STATUS: IN_PROGRESS
STARTED: 2026-01-20 16:00
STARTED: 2026-01-25 10:30
---
2. fix-progress.md 파일 생성 (진행 상황 체크리스트)
@@ -64,23 +91,63 @@ STARTED: 2026-01-20 16:00
---
## 📋 리포트 유효성 검증 (v2.0.0 신규)
> **참고:** `standards/report-management.md` 참조
### 🚨 필수: 검증 보고서 읽기 전 유효성 체크
**FIX 모드 진입 시:**
```bash
# 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 = 일괄 수정
FIX = 일괄 수정 (재배치 포함)
(분리!)
```
**진입 조건:**
- VERIFICATION 모드 완료 후
- 검증 보고서 존재
- 검증 보고서 존재 및 유효
**진입 명령:**
- "FIX 모드"
@@ -93,39 +160,235 @@ FIX = 일괄 수정
### 필수
1. 검증 보고서 (VERIFICATION 결과)
2. `settings/characters-master.md` - 호칭 수정 시
3. `volumes/vol-XX/timeline.md` - 타임라인 수정 시
2. `standards/report-management.md` - 리포트 유효성 검증
3. `settings/characters-master.md` - 호칭 수정 시
4. `volumes/vol-XX/timeline.md` - 타임라인 수정 시
### 수정 대상
4. `volumes/vol-XX/chapters/ch-*.md` - 해당 챕터들
5. `volumes/vol-XX/chapters/ch-*.md` - 해당 챕터들
---
## 🎯 FIX 모드 워크플로우
## 🎯 FIX 모드 워크플로우 (v2.0.0)
```
검증 보고서 유효성 체크 ⭐ NEW!
검증 보고서 읽기
심각도별 분류 확인
🔴 심각 항목 먼저 처리
Git 현재 상태 확인 (clean working tree)
🔴 타임라인 역행 → 챕터 재배치 ⭐ NEW!
🔴 기타 심각 항목 처리
🟡 중요 항목 처리
🟢 경미 항목 처리 (선택)
수정 완료 보고
영향받는 배치 리포트 무효화 ⭐ NEW!
Git 커밋
Git 커밋 ⭐ 타이밍 명확화
재검증 (자동) ⭐ NEW!
POLISH 모드로 전환 (선택)
```
---
## 📌 챕터 재배치 프로토콜 (v2.0.0 신규)
### 언제 사용하나?
**타임라인 역행 발견 시:**
```
검증 결과:
- ch-027: 1946.04.05-23
- ch-028: 1946.03.05-15 ← 역행!
판정: 🔴 긴급 오류 (회상 표시 없음)
조치: ch-028을 올바른 위치로 재배치
```
### 3-Stage 안전 프로세스
#### Stage 0: 사전 준비
```bash
# 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 파일로 이동
```bash
# 목적: 파일 덮어쓰기 방지
# 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: 헤더 수정
```python
# 각 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: 최종 이름 변경
```bash
# 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: 검증
```bash
# 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 실패 시:**
```bash
# 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. **상태 확인**
```bash
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. 설정 충돌 수정
### 1. 타임라인 역행 → 재배치 (최우선)
```markdown
## 발견 내용
| 위치 | 타임라인 | 문제 |
|------|----------|------|
| 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. 설정 충돌 수정
```markdown
## 발견 내용
@@ -138,29 +401,25 @@ POLISH 모드로 전환 (선택)
2. ch-012 열기
3. 34줄 수정: "34세" → "32세"
4. 체크: ✅
## 수정 후
| # | 상태 |
|---|------|
| 1 | ✅ 완료 |
```
### 2. 타임라인 오류 수정
### 3. 타임라인 헤더 형식 수정
```markdown
## 발견 내용
| 위치 | 내용 |
|------|------|
| ch-025:102 | 5월인데 단풍 묘사 |
| 챕터 | 현재 | 올바른 형식 |
|------|------|------------|
| ch-025 | 타임라인: 1945.05.15 | > **타임라인:** 1945.05.15 |
## 수정 방법
1. timeline.md 확인 (ch-025 = 1945년 5월)
2. ch-025 열기
3. 102줄 수정: "단풍이 물든" → "신록이 우거진"
4. 체크: ✅
1. ch-025 열기
2. Edit 도구 사용:
old_string: "타임라인: 1945.05.15"
new_string: "> **타임라인:** 1945.05.15"
3. 체크: ✅
```
### 3. 호칭 오류 수정
### 4. 호칭 오류 수정
```markdown
## 발견 내용
@@ -175,7 +434,7 @@ POLISH 모드로 전환 (선택)
4. 체크: ✅
```
### 4. 바텀 제거
### 5. 바텀 제거
```markdown
## 발견 내용
@@ -191,19 +450,150 @@ POLISH 모드로 전환 (선택)
4. 체크: ✅
```
### 5. 앞뒤 연결 오류 수정
---
```markdown
## 발견 내용
| 위치 | 내용 |
|------|------|
| ch-015→ch-016 | 끝: 집에서 / 시작: 사무실에서 (장소 점프) |
## 🔗 영향받는 배치 자동 무효화 (v2.0.0 신규)
## 수정 방법
옵션 A: ch-015 끝에 이동 암시 추가
옵션 B: ch-016 시작에 이동 설명 추가
### 재배치 후 처리
→ 사용자 선택 또는 자연스러운 쪽으로
**재배치 완료 후 필수:**
```python
# 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. 재배치 완료 후 즉시 커밋
```bash
# 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. 형식 수정 완료 후 커밋
```bash
# 타임라인 헤더 형식 수정 완료 (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. 호칭 수정 완료 후 커밋
```bash
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 시작 전:**
```bash
git status
# → clean working tree 확인
# → 미커밋 변경 있으면 먼저 처리
```
**FIX 중간:**
```bash
# 각 커밋 후
git log --oneline -5
# → 커밋 히스토리 확인
```
**FIX 완료 후:**
```bash
git status
# → clean working tree 확인
git push
# → 원격 저장소에 푸시
```
---
@@ -213,8 +603,8 @@ POLISH 모드로 전환 (선택)
```markdown
# FIX 모드 진행 보고
> **수정일:** YYYY-MM-DD
> **검증 보고서 기준:** YYYY-MM-DD
> **수정일:** 2026-01-25
> **검증 보고서 기준:** 2026-01-24
---
@@ -222,20 +612,30 @@ POLISH 모드로 전환 (선택)
| 심각도 | 총 건수 | 완료 | 남음 |
|--------|--------|------|------|
| 🔴 심각 | 5 | 5 | 0 |
| 🟡 중요 | 8 | 6 | 2 |
| 🟢 경미 | 3 | 0 | 3 (보류) |
| **합계** | **16** | **11** | **5** |
| 🔴 심각 | 3 | 3 | 0 |
| 🟡 중요 | 20 | 20 | 0 |
| 🟢 경미 | 2 | 0 | 2 (보류) |
| **합계** | **25** | **23** | **2** |
---
## ✅ 완료된 수정
### 🔴 타임라인 역행 재배치
| # | 챕터 | 조치 | 커밋 |
|---|------|------|------|
| 1 | ch-028 | ch-022로 재배치 | abc123f |
**영향받는 배치:**
- validation-batch-03.md 무효화됨
### 🟡 형식 수정
| # | 위치 | 유형 | 수정 내용 |
|---|------|------|----------|
| 1 | ch-012:34 | 설정 | 나이 34→32 |
| 2 | ch-025:102 | 타임라인 | 단풍→신록 |
| 3 | ch-018:45 | 호칭 | 윤희 씨→서 선생님 |
| 1 | ch-002~008 | 타임라인 헤더 | 형식 수정 |
| 2 | ch-012~016 | 타임라인 헤더 | 형식 수정 |
| ... | | | |
---
@@ -245,75 +645,63 @@ POLISH 모드로 전환 (선택)
| # | 위치 | 유형 | 사유 |
|---|------|------|------|
| 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 완료 (11/16건)
- [ ] POLISH 진행
- [x] FIX 완료 (23/25건)
- [ ] RE-VERIFICATION (자동 실행 예정)
- [ ] POLISH 진행 (선택)
```
---
## 🔄 일괄 처리 명령
### 바텀 일괄 제거
```
"바텀 일괄 제거해"
→ 검증 보고서의 바텀 목록 기준
→ 모든 해당 챕터에서 바텀 패턴 제거
→ 완료 보고
```
### 호칭 일괄 수정
```
"호칭 일괄 수정해"
→ 검증 보고서의 호칭 오류 목록 기준
→ 각 항목 순차 수정
→ 완료 보고
```
### 심각도별 처리
```
"🔴 항목만 수정해" → 심각 항목만 처리
"🟡까지 수정해" → 심각 + 중요 처리
"전체 수정해" → 모든 항목 처리
```
---
## ✅ FIX 모드 체크리스트
## ✅ FIX 모드 체크리스트 (v2.0.0)
### 수정 전
- [ ] 검증 보고서 확인
- [ ] 검증 보고서 유효성 확인 ⭐
- [ ] 총 수정 건수 파악
- [ ] 심각도별 분류 확인
- [ ] Git 현재 상태 확인
- [ ] Git clean working tree 확인
- [ ] 백업 생성 (재배치 시) ⭐
### 수정 중
- [ ] 🔴 심각 항목 완료
- [ ] 🔴 타임라인 역행 재배치 (최우선) ⭐
- [ ] 🔴 기타 심각 항목 완료
- [ ] 🟡 중요 항목 완료
- [ ] 🟢 경미 항목 처리 (선택)
- [ ]수정 후 체크 (✅)
- [ ] 각 유형별 Git 커밋 ⭐
### 수정 후
- [ ] 영향받는 배치 리포트 무효화 ⭐
- [ ] 수정 완료 보고 작성
- [ ] 미완료 항목 사유 기록
- [ ] Git 커밋
- [ ] POLISH 모드 전환 여부 결정
- [ ] Git 푸시 ⭐
- [ ] 재검증 (자동) 대기 ⭐
---
## 🚫 FIX 모드 금지사항
```
❌ 검증 보고서 없이 수정 시작
❌ 검증 보고서 유효성 체크 생략 (v2.0.0)
❌ Git 상태 확인 없이 수정 시작
❌ 재배치 시 백업 없이 진행
❌ 수정하면서 새 문제 발견해도 범위 확장 (→ 다시 VERIFICATION)
❌ 플롯/내용 변경 (→ MODIFICATION 모드에서)
❌ 수정 기록 누락
❌ Git 커밋 누락
❌ 영향받는 배치 무효화 누락 (v2.0.0)
```
---
@@ -323,7 +711,9 @@ POLISH 모드로 전환 (선택)
```
VERIFICATION (검증, 기록)
FIX (일괄 수정) ← 현재
FIX (일괄 수정 + 재배치) ← 현재
RE-VERIFICATION (자동)
POLISH (가독성/문체)
```
@@ -333,20 +723,73 @@ POLISH (가독성/문체)
## 💡 효율적인 FIX 팁
```
1. 같은 유형끼리 묶어서 처리
- 바텀 제거 → 한번에
1. 타임라인 역행 재배치부터 (영향이 크므로)
2. 같은 유형끼리 묶어서 처리
- 형식 수정 → 한번에
- 호칭 수정 → 한번에
2. 같은 챕터 수정은 한번에
3. 같은 챕터 수정은 한번에
- ch-012에 3건 있으면 한번에 처리
3. 심각도 순서 지키기
4. 심각도 순서 지키기
- 🔴 먼저, 시간 부족하면 🟢은 보류
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!*