# 리포트 관리 프로토콜 > **버전:** 1.1.0 > **최종 수정:** 2026-01-31 > **호환:** CWS Writing Guide v4.2.0+ > **용도:** 모든 검증/POLISH 리포트의 유효성 관리 > **주요 변경:** AI 강제 실행 규칙 추가 (절대 무시 불가) --- ## 🚨 AI 강제 실행 규칙 (v1.1.0 신규 - 절대 무시 불가!) ### ⚠️ 이 문서는 가이드라인이 아닙니다. 체크리스트입니다. **모든 절차는 강제 실행입니다. "참고", "건너뛰기", "판단으로 생략" 절대 금지.** --- ### 규칙 1: 리포트 읽기 전 유효성 검증 강제 **모든 리포트 읽기 전 반드시 실행:** ``` 🔍 리포트 유효성 검증 체크리스트 (강제 실행): - [ ] 1단계: 리포트 파일 존재 확인 - [ ] 2단계: 리포트 작성 날짜 추출 - grep "검증일\|시작\|완료" 리포트파일 - [ ] 3단계: 대상 파일들 최종 수정 시간 확인 - ls -l 또는 stat 명령 사용 - [ ] 4단계: 비교 (리포트 날짜 < 파일 수정 시간?) - Yes → 리포트 무효 - No → 리포트 유효 - [ ] 5단계: 판정 결과 사용자에게 명확히 보고 **이 검증 없이 리포트 내용 사용 절대 금지!** **무효 리포트 사용 시 잘못된 정보 전달!** ``` --- ### 규칙 2: 무효 리포트 처리 강제 **리포트 무효 판정 시 반드시 실행:** ``` 🔍 무효 리포트 처리 체크리스트 (강제 실행): - [ ] 사용자에게 무효 사유 명확히 보고 - 리포트 날짜: YYYY-MM-DD - 파일 수정: YYYY-MM-DD - 무효 사유: (구체적으로) - [ ] 리포트 삭제 또는 아카이브 - [ ] 재검증 필요 안내 **무효 리포트를 그대로 사용 절대 금지!** ``` --- ### 위반 시 처리 **위 규칙 중 하나라도 위반 시:** - 해당 작업 무효 - 잘못된 정보 전달 위험 - 사용자에게 즉시 보고 - 규칙 준수 후 재실행 --- ## 📋 CHANGELOG ### v1.0.0 (2026-01-25) - 초기 버전 **배경:** - 문제: 리포트 작성 후 파일 수정 시 리포트가 과거 상태 반영 - 결과: 잘못된 정보를 사용자에게 전달하는 심각한 오류 **추가:** - 📌 리포트 유효성 검증 프로토콜 - 파일 수정 시간 vs 리포트 날짜 비교 로직 - 무효화 조건 명확화 - 리포트 관리 Best Practices **연동:** - VERIFICATION 모드 v2.9.0에 통합 - POLISH 모드 v2.4.0에 통합 - FIX 모드 v2.0.0에 통합 --- ## 🚨 핵심 문제 ### 리포트 재사용 시 발생하는 오류 **시나리오:** ``` 2026-01-21: POLISH 완료 → polish-batch-05.md 생성 (ch-046, 047, 050 문제 기록) 2026-01-24: FIX 모드로 ch-028, 029, 030 재배치 → 파일 수정 2026-01-25: polish-batch-05.md 읽음 → "문제 있다" 보고 ❌ 잘못됨! ``` **왜 잘못되었나?** - 리포트는 **2026-01-21 시점**의 파일 상태 반영 - 하지만 **2026-01-24에 파일 수정됨** - 리포트가 현재 파일 상태와 불일치 **결과:** - 사용자에게 잘못된 정보 전달 - "문제 있다" → 확인하면 "문제 없다" → 혼란 --- ## ✅ 해결 방법: 리포트 유효성 검증 ### 필수 절차 **리포트 읽기 전 체크:** ```python def read_report(report_file): # 1. 리포트 존재 확인 if not exists(report_file): return "리포트 없음 → 새로 검증 필요" # 2. 리포트 날짜 확인 report_date = get_report_date(report_file) # 3. 대상 파일들의 최종 수정 시간 확인 target_files = get_target_files(report_file) # ch-041~050 등 latest_file_mod = max(f.modified_time for f in target_files) # 4. 유효성 검증 if latest_file_mod > report_date: return "❌ 리포트 무효 (파일이 리포트 이후 수정됨) → 재검증 필요" else: return "✅ 리포트 유효 → 사용 가능" ``` ### 구체적 절차 #### 1단계: 리포트 날짜 추출 ```bash # 리포트 파일에서 날짜 찾기 grep "검증일\|시작\|완료" polish-batch-05.md # 예시 출력: # > **시작:** 2026-01-21 # **검토 완료:** 2026-01-21 ``` #### 2단계: 대상 파일 수정 시간 확인 ```bash # Windows ls -l "l:\내 드라이브\Writing\1945-novel\volumes\vol-01\chapters\ch-04*.md" | awk '{print $6, $7, $8, $9}' # Unix/Mac stat -c "%y %n" chapters/ch-04*.md ``` #### 3단계: 비교 및 판정 ```markdown 리포트 날짜: 2026-01-21 파일 수정 시간: - ch-041.md: 2026-01-20 (리포트 이전) ✅ - ch-042.md: 2026-01-24 (리포트 이후!) ❌ 판정: 리포트 무효 → 재검증 필요 ``` --- ## 📋 리포트 유효성 검증 체크리스트 ### VERIFICATION 모드 ```markdown - [ ] 1. validation-batch-XX.md 존재 확인 - [ ] 2. 리포트 작성 날짜 추출 - [ ] 3. 대상 챕터들의 최종 수정 시간 확인 - [ ] 4. 리포트 날짜 < 파일 수정 시간? → 무효 - [ ] 5. 무효 시: 리포트 삭제 또는 아카이브 - [ ] 6. 재검증 실행 ``` ### POLISH 모드 ```markdown - [ ] 1. polish-batch-XX.md 존재 확인 - [ ] 2. 리포트 작성 날짜 추출 - [ ] 3. 대상 챕터들의 최종 수정 시간 확인 - [ ] 4. 리포트 날짜 < 파일 수정 시간? → 무효 - [ ] 5. 무효 시: 리포트 삭제 또는 아카이브 - [ ] 6. 재검증 실행 ``` --- ## 🔄 리포트 무효화 조건 ### 자동 무효화 **다음 경우 리포트 자동 무효:** 1. **파일 수정** - 대상 파일 중 하나라도 리포트 이후 수정됨 - 예: ch-046.md 수정 시간 > polish-batch-05.md 작성 시간 2. **파일 재배치** - FIX 모드에서 챕터 번호 변경 - 예: ch-028 → ch-022 이동 시 모든 관련 배치 리포트 무효 3. **날짜 차이** - 리포트 작성일과 현재 날짜 차이 7일 이상 (선택) - 파일 수정 없어도 재검증 권장 ### 수동 무효화 **사용자가 명시적으로 요청 시:** - "리포트 무시하고 재검증해" - "처음부터 다시 검증해" --- ## 📝 리포트 관리 Best Practices ### 1. 타임스탬프 명확히 기록 ```markdown # POLISH 배치 5 진행 리포트 > **시작:** 2026-01-21 14:30 > **완료:** 2026-01-21 16:45 > **대상 파일 수정 시간 기준:** 2026-01-21 16:45까지 --- ## 검증 기준 시점 이 리포트는 **2026-01-21 16:45** 시점의 파일 상태를 반영합니다. 이후 파일이 수정되었다면 이 리포트는 무효입니다. ``` ### 2. 리포트 버전 관리 ```markdown # 옵션 1: 날짜 포함 파일명 polish-batch-05-20260121.md polish-batch-05-20260124.md # 재검증 시 # 옵션 2: 리포트 내 버전 기록 > **버전:** v1 (2026-01-21 초기) > **버전:** v2 (2026-01-24 재검증) ``` ### 3. 아카이브 ```markdown # 무효화된 리포트는 삭제 대신 아카이브 volumes/vol-01/reports/archive/ ├── polish-batch-05-20260121-INVALID.md └── validation-batch-02-20260120-INVALID.md # 현재 유효한 리포트만 루트에 volumes/vol-01/ ├── polish-batch-05.md # 최신 유효 리포트 └── validation-batch-02.md ``` --- ## 🚨 Claude가 해야 할 것 ### 리포트 읽기 전 ```markdown 1. 리포트 파일 존재 확인 2. 리포트 작성 날짜 확인 3. 대상 파일 수정 시간 확인 (ls -l 또는 stat) 4. 유효성 판정: - 유효: 리포트 사용 → 사용자에게 보고 - 무효: 리포트 무시 → "재검증 필요" 보고 ``` ### 사용자에게 보고 **✅ 리포트 유효 시:** ``` polish-batch-05.md 확인 결과: - 작성일: 2026-01-21 - 파일 수정: 2026-01-20 (리포트 이전) - 상태: ✅ 유효 배치 5 (ch-041~050): 이미 완료 - 수정: 0건 - 다음 배치로 진행할까요? ``` **❌ 리포트 무효 시:** ``` polish-batch-05.md 확인 결과: - 작성일: 2026-01-21 - 파일 수정: 2026-01-24 (리포트 이후!) ❌ - 상태: 무효 이유: ch-028, ch-029, ch-030 재배치로 인한 파일 수정 배치 5를 재검증하겠습니다. ``` --- ## 🔧 구현 가이드 ### Bash 명령어 ```bash # 리포트 날짜 추출 REPORT_DATE=$(grep -oP '(?<=완료:\s)\d{4}-\d{2}-\d{2}' polish-batch-05.md) # 대상 파일 최종 수정 시간 확인 (Unix timestamp) LATEST_MOD=$(stat -c %Y chapters/ch-04*.md | sort -n | tail -1) # 리포트 날짜를 Unix timestamp로 변환 REPORT_TS=$(date -d "$REPORT_DATE" +%s) # 비교 if [ $LATEST_MOD -gt $REPORT_TS ]; then echo "❌ 리포트 무효 (파일이 리포트 이후 수정됨)" else echo "✅ 리포트 유효" fi ``` --- ## 📊 프로세스 통합 ### VERIFICATION 모드 진입 시 ``` 1. WORK-MODE.txt 확인 2. BATCH 확인 → validation-batch-XX.md 찾기 3. 리포트 유효성 검증 ← NEW! - 유효: 리포트 읽고 계속 - 무효: 리포트 삭제, 재검증 4. 검증 진행 ``` ### POLISH 모드 진입 시 ``` 1. WORK-MODE.txt 확인 2. BATCH 확인 → polish-batch-XX.md 찾기 3. 리포트 유효성 검증 ← NEW! - 유효: 리포트 읽고 다음 배치로 - 무효: 리포트 삭제, 재검증 4. POLISH 진행 ``` --- ## ✅ 체크리스트 (Claude용) **모든 리포트 읽기 전 필수:** - [ ] 리포트 파일 존재 확인 - [ ] 리포트 작성 날짜 추출 - [ ] 대상 파일들 목록 확인 - [ ] 각 파일의 최종 수정 시간 확인 - [ ] 리포트 날짜와 파일 수정 시간 비교 - [ ] 하나라도 리포트 이후 수정됨? → 무효 - [ ] 무효 시: 사용자에게 명확히 보고 - [ ] 유효 시: 리포트 내용 사용 --- ## 🔗 관련 문서 **작성 단계:** - `verification-mode.md` - 검증 모드 프로토콜 - `polish-mode.md` - POLISH 모드 프로토콜 - `fix-mode.md` - FIX 모드 프로토콜 **설계 단계 (Design Phase):** - `plot-master-verification.md` - Phase 4-1 검증 - `volume-timeline-verification.md` - Phase 4-2선행 검증 (타임라인) - `volume-characters-verification.md` - Phase 4-2선행 검증 (캐릭터) - `volume-plot-verification.md` - Phase 4-2 검증 - `plot-detail-verification.md` - Phase 4-3 검증 - `design-verification-mode.md` - Phase 5 검증 > **설계 단계 적용:** 설계 검증 보고서에도 동일한 유효성 규칙이 적용됩니다. > 검증 보고서 작성 후 대상 파일(plot, timeline, characters 등)이 수정되면 > 해당 검증 보고서는 무효화됩니다. --- *리포트는 시점의 스냅샷! 파일 수정 후엔 재검증 필수!*