- 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>
242 lines
4.2 KiB
Markdown
242 lines
4.2 KiB
Markdown
# 리네임 안전 프로토콜
|
|
|
|
> **버전:** 2.0.0
|
|
> **최종 수정:** 2026-01-18
|
|
> **호환:** CWS Writing Guide v3.3.0+
|
|
> **용도:** 화수 변경/리넘버링 시 안전한 절차
|
|
|
|
---
|
|
|
|
## 🚨 왜 리네임이 위험한가?
|
|
|
|
### 덮어쓰기 문제
|
|
|
|
```
|
|
시나리오: ch-030~060을 ch-031~061로 변경
|
|
|
|
❌ 정순으로 하면:
|
|
ch-030 → ch-031 (OK, ch-031 자리 비어있음)
|
|
ch-031 → ch-032 (❌ ch-031은 이미 바뀐 ch-030!)
|
|
→ 원래 ch-031 데이터 손실!
|
|
|
|
✅ 역순으로 하면:
|
|
ch-060 → ch-061 (OK)
|
|
ch-059 → ch-060 (OK, ch-060 자리 비어있음)
|
|
...
|
|
ch-030 → ch-031 (OK)
|
|
→ 안전!
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 리네임 유형
|
|
|
|
| 유형 | 방향 | 방법 |
|
|
|------|------|------|
|
|
| **삽입** | 번호 +1 | 역순 |
|
|
| **삭제** | 번호 -1 | 정순 |
|
|
| **분할** | 번호 +1 | 역순 |
|
|
| **병합** | 번호 -1 | 정순 |
|
|
|
|
---
|
|
|
|
## 🔄 방법 1: 역순/정순 리네임
|
|
|
|
### 삽입 시 (번호 +1) - 역순!
|
|
|
|
```bash
|
|
# ch-029와 030 사이에 삽입
|
|
# → ch-030~060을 ch-031~061로
|
|
|
|
# 역순으로! (60부터 30까지)
|
|
mv ch-060.md ch-061.md
|
|
mv ch-059.md ch-060.md
|
|
mv ch-058.md ch-059.md
|
|
...
|
|
mv ch-030.md ch-031.md
|
|
|
|
# 새 화 생성
|
|
# ch-030.md 작성
|
|
```
|
|
|
|
### 삭제 시 (번호 -1) - 정순!
|
|
|
|
```bash
|
|
# ch-029 삭제
|
|
# → ch-030~060을 ch-029~059로
|
|
|
|
# ch-029 백업/삭제
|
|
mv ch-029.md _backup/ch-029.md
|
|
|
|
# 정순으로! (30부터 60까지)
|
|
mv ch-030.md ch-029.md
|
|
mv ch-031.md ch-030.md
|
|
...
|
|
mv ch-060.md ch-059.md
|
|
```
|
|
|
|
---
|
|
|
|
## 🔄 방법 2: 2단계 리네임 (더 안전)
|
|
|
|
### 1단계: 임시 이름으로
|
|
|
|
```bash
|
|
# 모든 대상 파일을 임시 이름으로
|
|
mv ch-030.md ch-030-temp.md
|
|
mv ch-031.md ch-031-temp.md
|
|
mv ch-032.md ch-032-temp.md
|
|
...
|
|
mv ch-060.md ch-060-temp.md
|
|
```
|
|
|
|
### 2단계: 최종 이름으로
|
|
|
|
```bash
|
|
# 임시 이름에서 최종 이름으로
|
|
mv ch-030-temp.md ch-031.md
|
|
mv ch-031-temp.md ch-032.md
|
|
...
|
|
mv ch-060-temp.md ch-061.md
|
|
```
|
|
|
|
**장점:** 순서 상관없이 안전
|
|
**단점:** 두 번 작업
|
|
|
|
---
|
|
|
|
## ✅ 리네임 체크리스트
|
|
|
|
### 리네임 전
|
|
|
|
```
|
|
- [ ] 영향 범위 분석 완료
|
|
- [ ] Git 현재 상태 커밋 (백업!)
|
|
- [ ] 리네임 방향 결정 (역순/정순)
|
|
- [ ] 대상 파일 목록 작성
|
|
```
|
|
|
|
### 리네임 중
|
|
|
|
```
|
|
- [ ] 파일명 변경 (순서 주의!)
|
|
- [ ] 헤더 화수 수정
|
|
# 2권 30화 → # 2권 31화
|
|
- [ ] 타임라인 확인 (변경 필요 시)
|
|
```
|
|
|
|
### 리네임 후
|
|
|
|
```
|
|
- [ ] 파일명 = 헤더 화수 일치 확인
|
|
- [ ] summary 해당 챕터 번호 수정
|
|
- [ ] plot 해당 챕터 번호 수정
|
|
- [ ] 타임라인 연속성 확인
|
|
- [ ] Git 커밋
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 영향받는 파일
|
|
|
|
### 챕터 파일
|
|
|
|
```
|
|
파일명: ch-XXX.md → ch-YYY.md
|
|
헤더: # X권 XXX화 → # X권 YYY화
|
|
```
|
|
|
|
### Summary 파일
|
|
|
|
```
|
|
summary-001-030.md 내용:
|
|
"### ch-030: 제목" → "### ch-031: 제목"
|
|
|
|
또는 summary 자체 재생성
|
|
```
|
|
|
|
### Plot 파일
|
|
|
|
```
|
|
plot-master.md:
|
|
"30화: 제목" → "31화: 제목"
|
|
|
|
vol-XX-plot-026-030.md → vol-XX-plot-027-031.md (필요시)
|
|
```
|
|
|
|
---
|
|
|
|
## 🔧 자동화 스크립트 예시
|
|
|
|
### 삽입 (역순 리네임)
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
# 삽입 위치 이후 번호 +1
|
|
|
|
START=30
|
|
END=60
|
|
|
|
for ((i=END; i>=START; i--)); do
|
|
OLD=$(printf "ch-%03d.md" $i)
|
|
NEW=$(printf "ch-%03d.md" $((i+1)))
|
|
|
|
if [ -f "$OLD" ]; then
|
|
mv "$OLD" "$NEW"
|
|
echo "Renamed: $OLD → $NEW"
|
|
fi
|
|
done
|
|
```
|
|
|
|
### 헤더 일괄 수정
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
# 헤더 화수 일괄 수정
|
|
|
|
for FILE in ch-*.md; do
|
|
# 파일명에서 화수 추출
|
|
NUM=$(echo "$FILE" | grep -oP '\d+')
|
|
NUM_CLEAN=$(echo $NUM | sed 's/^0*//')
|
|
|
|
# 헤더 수정 (권 번호는 유지)
|
|
sed -i "s/# \([0-9]*\)권 [0-9]*화:/# \1권 ${NUM_CLEAN}화:/" "$FILE"
|
|
done
|
|
```
|
|
|
|
---
|
|
|
|
## 🚫 리네임 금지사항
|
|
|
|
```
|
|
❌ 백업 없이 리네임
|
|
❌ 순서 무시 (덮어쓰기 위험!)
|
|
❌ 헤더 수정 누락
|
|
❌ summary/plot 수정 누락
|
|
❌ Git 커밋 없이 종료
|
|
```
|
|
|
|
---
|
|
|
|
## 💡 팁
|
|
|
|
### 대규모 리네임 시
|
|
|
|
```
|
|
1. 작은 범위로 테스트 먼저
|
|
2. Git으로 롤백 가능한 상태 유지
|
|
3. 2단계 방법 권장 (더 안전)
|
|
4. 리네임 후 즉시 검증
|
|
```
|
|
|
|
### 실수 발생 시
|
|
|
|
```
|
|
git checkout -- .
|
|
→ 마지막 커밋 상태로 복구
|
|
```
|
|
|
|
---
|
|
|
|
*리네임은 신중하게! 백업 필수, 순서 중요!*
|