Files
novel-writing-guide/templates/standards/renaming-protocol.md
Alex 3ce44ec47f v3.0 템플릿 전면 개편
## 신규 파일
- templates/CURRENT-TASK.md.template (컴팩팅 대응)
- templates/standards/writing-mode.md (작성 모드)
- templates/standards/modification-mode.md (수정 모드 8가지 유형)
- templates/standards/verification-mode.md (6단계 통합 검증)
- templates/standards/chapter-format.md (바텀 금지 포함)
- templates/standards/writing-guide.md (문체/분량)
- templates/standards/renaming-protocol.md (안전한 리네임)
- validation-standards.md (검증 기준)

## 수정 파일
- templates/CLAUDE.md.template (모드 시스템 반영)

## 주요 변경
- 폴더 분리: standards/ (방법론) vs settings/ (콘텐츠)
- 바텀 금지 표준화
- 수정 모드 8가지 유형 체계화
- 검증 모드 6단계 통합
- CURRENT-TASK.md로 컴팩팅 대응

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 10:12:57 +09:00

240 lines
4.1 KiB
Markdown

# 리네임 안전 프로토콜
> **버전:** 2.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화: 제목"
plot-026-030.md → 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 -- .
→ 마지막 커밋 상태로 복구
```
---
*리네임은 신중하게! 백업 필수, 순서 중요!*