## 주요 변경사항 ### 1. 분할 챕터 명명 규칙 통일 (file-formats.md v1.2.0) - A, B, C 방식으로 통일: ch-007A.md, ch-007B.md - 번호 방식 금지: ch-007-1.md (X) - 헤더 형식 규정: "# 2권 7화 (A): 제목 - Part 1" - 검증 시 처리 방법 명시: * ch-007.md 누락 시 ch-007A/B 존재 확인 * 파일 개수 계산: A + B = 2개 파일, 1화로 카운트 * 타임라인 검증: A → B 연속성 필수 ### 2. 검증 모드 배치 크기 명시 (verification-mode.md v3.2.0) - 배치 크기: 파일 개수 기준 5개 - 분할 챕터 처리 규정 추가 - 배치 경계 분할 챕터 처리 방법 명시 ### 3. 폴리싱 모드 배치 크기 명시 (polish-mode.md v2.5.0) - 배치 크기: 파일 개수 기준 10개 - 분할 챕터 일관성 유지 규정 추가 - 배치 경계 문체 연결성 처리 방법 명시 ## 배경 - 기존: 분할 챕터 규칙 불명확 → ch-007.md 누락으로 오인 - 기존: 배치 크기 암묵적 → 챕터 개수로 혼동 - 해결: 명확한 규정 수립으로 검증 정확도 향상 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
18 KiB
18 KiB
POLISH 모드 프로토콜
버전: 2.5.0 최종 수정: 2026-01-30 호환: CWS Writing Guide v4.2.0+ 용도: 문장 품질 다듬기 (내용 수정 없음) 주요 변경: 배치 크기 명시 (파일 개수 기준 10개) + 분할 챕터 처리 규정
📋 CHANGELOG
v2.4.0 (2026-01-25)
추가:
- 📌 리포트 유효성 검증 프로토콜 (report-management.md 연동)
- 리포트 날짜 vs 파일 수정 시간 자동 체크
- 무효 리포트 발견 시 재검증 필수
참고:
- 이 업데이트는 VERIFICATION 모드 v2.9.0과 함께 적용됨
v2.3.0 (2026-01-20)
추가:
- POLISH vs MODIFICATION 경계 명확화
- 구체적 예시 추가 (OK/금지)
v2.2.0 (2025-XX-XX)
추가:
- 플랫폼 가독성 체크 (문피아 최적화)
- 빈 줄 패턴 통일 프로토콜
v2.0.0 이전
자세한 이력은 Git 커밋 히스토리 참조
🔄 컴팩팅 대응 시스템 (v2.0.0 신규)
배치 작업 시 WORK-MODE.txt 사용
배치 시작 시:
1. WORK-MODE.txt 파일 생성
---
CURRENT_MODE: POLISH
READ_FILE: standards/polish-mode.md
---
BATCH: 01
RANGE: ch-001 ~ ch-010
STATUS: IN_PROGRESS
LAST_COMPLETED: none
NEXT: ch-001
REPORT_FILE: polish-batch-01.md
STARTED: 2026-01-20 15:30
---
2. polish-batch-01.md 파일 생성 (진행 상황 체크리스트)
각 챕터 완료 후:
1. polish-batch-01.md에 [x] 표시
2. 챕터별 상세 내용 추가
3. WORK-MODE.txt의 LAST_COMPLETED, NEXT 업데이트
4. 파일 저장
5. 다음 챕터
컴팩팅 후 재개 시:
1. WORK-MODE.txt 읽기
2. CURRENT_MODE 확인 → POLISH
3. READ_FILE 확인 → polish-mode.md (이 파일)
4. REPORT_FILE 읽기 → polish-batch-01.md
5. 진행 상황 체크리스트 확인
6. NEXT 챕터부터 재개
배치 완료 시:
1. 전체 [x] 확인
2. WORK-MODE.txt 삭제
3. 사용자에게 완료 보고
핵심 원칙:
❌ 10개 전부 메모리에 저장 후 한 번에 파일 작성
✅ 1개 완료 → 즉시 파일 업데이트 → WORK-MODE.txt 업데이트 → 다음
📋 리포트 유효성 검증 (v2.4.0 신규)
참고:
standards/report-management.md참조
🚨 필수: 리포트 읽기 전 유효성 체크
문제:
리포트 작성 후 파일이 수정되면 리포트가 과거 상태를 반영
→ 잘못된 정보를 사용자에게 전달하는 심각한 오류!
해결:
리포트 읽기 전 반드시 유효성 검증!
검증 절차
1단계: 리포트 날짜 확인
# polish-batch-05.md에서 날짜 추출
grep "시작\|완료" polish-batch-05.md
# 예: **완료:** 2026-01-21
2단계: 대상 파일 수정 시간 확인
# 배치 5 = ch-041~050
ls -l chapters/ch-04*.md chapters/ch-050.md
# Windows
Get-ChildItem "l:\...\chapters\ch-04*.md" | Select-Object Name,LastWriteTime
# 최종 수정 시간 확인
3단계: 비교 및 판정
리포트 날짜: 2026-01-21
파일 수정:
- ch-041.md: 2026-01-20 ✅ (리포트 이전)
- ch-046.md: 2026-01-24 ❌ (리포트 이후!)
→ 판정: 리포트 무효 → 재검증 필요
무효화 조건
자동 무효:
- 대상 파일 중 하나라도 리포트 이후 수정됨
- FIX 모드에서 챕터 재배치 발생
- 리포트 작성일 < 파일 최종 수정일
사용자 보고 형식:
✅ 리포트 유효:
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~030 재배치로 파일 수정됨
→ 배치 5 재검증 필요
체크리스트
모든 리포트 읽기 전:
- 리포트 파일 존재 확인
- 리포트 작성 날짜 추출
- 대상 파일 목록 확인 (RANGE 기준)
- 각 파일 최종 수정 시간 확인
- 리포트 날짜 < 파일 수정? → 무효
- 무효 시: 사용자에게 명확히 보고 + 재검증
- 유효 시: 리포트 내용 사용
📋 POLISH 모드 개요
POLISH 모드는:
- 문장 품질만 개선 (내용/플롯 수정 없음!)
- 가독성, 리듬감, 문체 일관성 체크
- VERIFICATION → FIX 완료 후 최종 다듬기
핵심 원칙:
VERIFICATION = 모든 문제 발견 (플롯 포함)
FIX = 발견된 문제 수정
POLISH = 문장 품질만 다듬기 (오타, 가독성, 문체)
(엄격 분리!)
금지:
❌ 장면 추가/삭제
❌ 인과관계 수정
❌ 캐릭터 관계 변경
❌ 설정 변경
→ 이런 건 VERIFICATION → FIX에서!
진입 조건:
- ⚠️ VERIFICATION → FIX 완료 후 (필수)
- POLISH는 검증 완료된 콘텐츠의 문체만 다듬음
- 검증되지 않은 콘텐츠에 POLISH 적용 금지 (사용자 명시 요청 시 예외)
진입 명령:
- "POLISH 모드"
- "다듬기"
- "가독성 검토해"
- "문체 검토해"
모드 진입 시 자동 실행:
- WORK-MODE.txt 업데이트 (CURRENT_MODE: POLISH)
- 필수 파일 자동 읽기 (writing-guide.md, characters-master.md)
- 준비 완료 보고 및 대기
📚 모드 진입 시 읽을 파일
필수
standards/writing-guide.md- 문체 기준settings/characters-master.md- 캐릭터 말투
검토 대상
volumes/vol-XX/chapters/ch-*.md- 해당 챕터들
📦 배치 크기 규정 (v2.5.0 신규)
POLISH 모드 배치 크기: 파일 개수 기준 10개
배치 1: 파일 10개
배치 2: 파일 10개
배치 3: 파일 10개
...
예시:
일반 챕터만:
- 배치 1: ch-001 ~ ch-010 (10개)
- 배치 2: ch-011 ~ ch-020 (10개)
분할 챕터 포함:
- 배치 1: ch-001, ch-002, ch-003, ch-004, ch-005A, ch-005B, ch-006, ch-007A, ch-007B, ch-008 (10개)
- 배치 2: ch-009, ch-010, ch-011A, ch-011B, ch-012, ch-013, ch-014, ch-015, ch-016, ch-017 (10개)
중요: 파일 개수로 카운트!
- ch-007A.md + ch-007B.md = 2개 파일
분할 챕터 처리:
분할 챕터는 각각 개별 파일로 처리:
- ch-007A.md: 개별 POLISH 작업
- ch-007B.md: 개별 POLISH 작업
단, 일관성 유지:
- 동일 화(ch-007)의 A/B는 문체 일관성 필수
- 어미 패턴, 리듬감 연결성 체크
배치 경계 처리:
분할 챕터가 배치 경계에 걸칠 때:
예시:
- 배치 1 마지막: ch-010A
- 배치 2 시작: ch-010B
→ 배치 1 완료 시 ch-010A 문체 기록
→ 배치 2 시작 시 ch-010A 문체 확인 후 ch-010B 작업
🎯 POLISH 체크 항목
1. 문장 가독성
✅ 문장 길이
- 한 문장 50자 이상 → 분리 권장
- 3줄 이상 문장 → 🔴 분리 필요
✅ 문단 길이 (웹소설 기준)
- 권장: 3-5줄 (모바일 화면 최적)
- 7줄 이상 → 🟡 분리 검토
- 10줄 이상 → 🔴 필수 분리
- 1-2줄 짧은 문단 OK (호흡 공간)
✅ 복문 구조
- ~하고, ~하며, ~해서 3개 이상 연결 → 분리
2. 반복 표현
✅ 문장 끝 반복
- "~했다" 3회 연속 → 🟡 변경 권장
- "~였다" 3회 연속 → 🟡 변경 권장
✅ 주어 반복
- "그는" / "그녀는" 연속 → 생략 또는 이름으로
✅ 단어 반복
- 같은 단어 한 문단에 3회 이상 → 유의어로 대체
✅ 접속사 반복
- "그리고" / "하지만" 연속 → 다양화
3. 대화/묘사 비율
✅ 권장 비율
대화 : 묘사 : 서술 = 40 : 40 : 20
✅ 불균형 체크
- 대화만 1페이지 이상 → 🟡 묘사/서술 추가
- 묘사만 1페이지 이상 → 🟡 대화 추가
- 서술만 1페이지 이상 → 🟡 장면화 고려
4. 문체 일관성
✅ 시제 일관성
- 과거형 기조 유지
- 갑자기 현재형 전환 → 🟡 수정
✅ 문어체/구어체
- 지문: 문어체 유지
- 대화: 캐릭터별 구어체
✅ 어미 다양성
- ~다, ~였다, ~했다 균형
5. 리듬감
✅ 문장 길이 변화
- 짧은 문장 → 긴 문장 → 짧은 문장
- 같은 길이 5문장 연속 → 🟢 변화 권장
✅ 긴장/이완
- 액션 장면: 짧은 문장
- 여유 장면: 긴 문장
6. 어색한 표현
✅ 조사 오류
- 을/를, 이/가, 은/는 체크
✅ 어색한 어순
- 자연스러운 한국어 어순
✅ 번역체
- "~라는 것을" → "~라는 걸"
- "그것은" → "그건"
7. 플랫폼 가독성 (v2.2.0 신규)
⭐ 웹소설 플랫폼 최적화 (문피아/카카오페이지/네이버 시리즈)
✅ 문단 사이 빈 줄 일관성
- 기본 원칙: 모든 문단 사이 빈 줄 1개
- Part 구분: 빈 줄 2개
- 현재 문제: 파일마다 다름 → 🔴 통일 필수
예시:
민준은 창밖을 바라보았다. 해방된 서울이 보였다.
"이제 시작이야."
그가 중얼거렸다.
✅ 대화 구분 명확성
- 대화 블록 전: 빈 줄 1개
- 대화 블록 후: 빈 줄 1개
- 연속 대화: 빈 줄 없이 연결
예시:
민준은 눈을 감았다.
"뭐라고?" "네가 들은 대로야." "믿을 수 없어."
침묵이 흘렀다.
✅ 모바일 화면 최적화
- 세로 스크롤 중심 (좁은 화면)
- 긴 문단 → 피로감 증가
- 짧은 문단 + 빈 줄 → 숨 쉬는 공간
- 빠른 스크롤 → 명확한 구분 필요
✅ 여백 활용
- 긴 장면 후: 빈 줄로 호흡
- 시점 전환: 빈 줄 2개
- 시간 경과: 빈 줄 + "---" + 빈 줄 (선택)
- 액션 → 대화: 명확한 빈 줄
✅ Part/Scene 구분
- Part 전환: 빈 줄 3개 (또는 "---" 구분선)
- Scene 전환: 빈 줄 2개
- 일반 문단: 빈 줄 1개
📊 POLISH 보고서 형식
# POLISH 보고서
> **검토일:** YYYY-MM-DD
> **검토 범위:** ch-001 ~ ch-050
---
## 📊 요약
| 항목 | 발견 건수 | 수정 |
|------|----------|------|
| 1. 문장 가독성 | X건 | ✅/⏳ |
| 2. 반복 표현 | X건 | ✅/⏳ |
| 3. 대화/묘사 비율 | X건 | ✅/⏳ |
| 4. 문체 일관성 | X건 | ✅/⏳ |
| 5. 리듬감 | X건 | ✅/⏳ |
| 6. 어색한 표현 | X건 | ✅/⏳ |
| 7. 플랫폼 가독성 ⭐ | X건 | ✅/⏳ |
| **총계** | **X건** | |
---
## 🔴 필수 수정
| # | 위치 | 유형 | 내용 | 수정 |
|---|------|------|------|------|
| 1 | ch-005:34-36 | 문장 길이 | 3줄 문장 | → 2문장으로 분리 |
| 2 | ch-012:45-50 | 반복 | "했다" 5회 연속 | → 어미 다양화 |
---
## 🟡 권장 수정
| # | 위치 | 유형 | 내용 | 수정 제안 |
|---|------|------|------|----------|
| 1 | ch-008:22-35 | 대화 과다 | 대화만 15줄 | 중간에 묘사 추가 |
| 2 | ch-015:67 | 번역체 | "그것은" | → "그건" |
---
## 🟢 선택 수정
| # | 위치 | 유형 | 내용 |
|---|------|------|------|
| 1 | ch-003:12-16 | 리듬 | 비슷한 길이 5문장 |
---
## 📈 통계
### 문장 길이 분포
- 20자 이하: XX%
- 21-40자: XX%
- 41-60자: XX%
- 60자 이상: XX% (→ 분리 권장)
### 문장 끝 어미 분포
- ~했다: XX%
- ~였다: XX%
- ~이다: XX%
- 기타: XX%
🔧 POLISH 수정 예시
긴 문장 분리
Before:
"민준은 창밖을 바라보며 지난 몇 년간 자신이 걸어온 길을
되돌아보았는데, 그 과정에서 수많은 사람들을 만났고,
때로는 그들과 갈등을 빚기도 했지만, 결국에는 모두가
같은 목표를 향해 나아가고 있다는 것을 깨달았다."
After:
"민준은 창밖을 바라보았다. 지난 몇 년간 걸어온 길이
떠올랐다. 수많은 사람들을 만났다. 때로는 갈등을 빚기도
했다. 하지만 결국 모두가 같은 목표를 향하고 있었다."
반복 표현 수정
Before:
"민준이 말했다. 윤희가 대답했다. 태준이 끼어들었다.
민준이 다시 말했다."
After:
"민준이 입을 열었다. 윤희가 고개를 끄덕였다. 태준이
끼어들었다. 민준은 잠시 생각하다 다시 말했다."
대화/묘사 균형
Before:
"뭐라고?"
"네가 들은 대로야."
"믿을 수 없어."
"믿든 말든."
"하지만..."
"더 이상 말해도 소용없어."
After:
"뭐라고?"
민준의 눈이 커졌다. 믿기 어려웠다.
"네가 들은 대로야."
윤희는 담담했다. 창밖을 바라보는 눈빛이 차가웠다.
"믿을 수 없어."
"믿든 말든." 윤희가 어깨를 으쓱했다.
"더 이상 말해도 소용없어."
🔄 POLISH 워크플로우
1. 범위 설정 (1권 전체 또는 특정 챕터)
↓
2. 체크 항목별 검토
↓
3. 🔴 필수 수정 처리
↓
4. 🟡 권장 수정 처리
↓
5. 🟢 선택 수정 (시간 여유 시)
↓
6. 보고서 작성
↓
7. Git 커밋
✅ POLISH 체크리스트
문장 가독성
- 50자 이상 문장 분리
- 7줄 이상 문단 검토, 10줄 이상 필수 분리
- 복문 구조 단순화
반복 표현
- 문장 끝 어미 다양화
- 주어 반복 해소
- 단어 반복 해소
대화/묘사 비율
- 40:40:20 근접
- 대화만 구간 없음
- 묘사만 구간 없음
문체 일관성
- 시제 일관
- 문어체/구어체 구분
- 어미 다양
리듬감
- 문장 길이 변화
- 장면에 맞는 템포
어색한 표현
- 조사 정확
- 어순 자연스러움
- 번역체 제거
플랫폼 가독성 ⭐
- 문단 사이 빈 줄 일관성 (기본 1개, Part 2개)
- 대화 구분 명확성 (대화 블록 전후 빈 줄)
- 모바일 화면 최적 (짧은 문단 + 여백)
- Part/Scene 구분 명확 (빈 줄 개수 통일)
🚫 POLISH 모드 금지사항
❌ 스토리 변경 (→ MODIFICATION 모드)
❌ 설정 수정 (→ FIX 모드)
❌ 캐릭터 성격 변경
❌ 플롯 추가/삭제
❌ 과도한 수정 (원문의 맛 유지)
⚖️ POLISH vs MODIFICATION 경계 (v2.3.0 신규)
명확한 구분
┌─────────────────────────────────────────────────┐
│ POLISH = 같은 의미, 더 나은 표현 │
│ MODIFICATION = 의미/내용 변경 │
└─────────────────────────────────────────────────┘
구체적 예시
✅ POLISH (OK)
**1. 문장 다듬기 (의미 동일)**
Before: "민준은 화가 많이 났다."
After: "민준의 주먹이 떨렸다."
→ Show, Don't Tell 적용 (의미 동일!)
**2. 어순 자연스럽게**
Before: "민준은 화가 나서 주먹을 쥐었다."
After: "민준이 주먹을 쥐었다. 화가 치밀었다."
→ 리듬감 개선 (내용 동일!)
**3. 반복 제거**
Before: "민준이 말했다. 윤희가 말했다."
After: "민준이 말했다. 윤희가 고개를 끄덕였다."
→ 태그 다양화 (대화 내용 변경 없음!)
**4. 문단 분리 (가독성)**
Before: (10줄 긴 문단)
After: (3-5줄씩 3개 문단)
→ 모바일 가독성 (내용 동일!)
**5. 띄어쓰기/여백**
Before: (불규칙한 빈 줄)
After: (일관된 빈 줄 1개)
→ 플랫폼 최적화 (내용 동일!)
❌ MODIFICATION (금지!)
**1. 대사 추가/삭제**
Before: "알겠습니다."
After: "알겠습니다. 그런데 형님, 이거는 어떻게 하시겠습니까?"
→ ❌ 새로운 질문 추가 = 내용 변경!
→ MODIFICATION 모드에서 해야 함!
**2. 장면 추가**
Before: 민준이 회의실을 나섰다.
After: 민준이 회의실을 나섰다. 복도에서 윤희를 만났다.
→ ❌ 새 장면 추가 = 플롯 변경!
→ MODIFICATION 모드에서 해야 함!
**3. 인과관계 수정**
Before: "명단을 받았으니 이제 작성하겠습니다."
After: "이미 작성했습니다."
→ ❌ 순서 바뀜 = 플롯 변경!
→ FIX 모드에서 해야 함!
**4. 캐릭터 반응 변경**
Before: 민준은 고개를 끄덕였다.
After: 민준은 고개를 저었다.
→ ❌ 동의 → 거부 = 내용 변경!
→ MODIFICATION 모드에서 해야 함!
**5. 설정/호칭 변경**
Before: "형님들"
After: "형님"
→ ❌ 호칭 수정 = 내용 변경!
→ FIX 모드에서 해야 함! (검증 보고서 기반)
판단 기준
질문: "이 수정이 POLISH인가, MODIFICATION인가?"
체크:
1. [ ] 의미가 100% 동일한가?
2. [ ] 플롯에 영향 없는가?
3. [ ] 인과관계 변화 없는가?
4. [ ] 캐릭터 반응/관계 동일한가?
→ 모두 Yes: POLISH ✅
→ 하나라도 No: MODIFICATION ❌
애매한 경우
❓ "그는" → "민준은"
✅ POLISH
→ 대명사를 이름으로 (의미 동일, 명확성 증가)
❓ "민준은" → "강민준은"
✅ POLISH
→ 이름 풀네임 (의미 동일, 명확성 증가)
❓ "형님" → "민준 형님"
⚠️ 판단 필요!
→ 호칭 규칙에 맞으면 POLISH
→ 호칭 규칙 위반 수정이면 FIX
❓ "민준이 말했다." → "민준이 고개를 끄덕이며 말했다."
⚠️ MODIFICATION!
→ 행동 추가 = 내용 변경
→ "말했다" → "고개를 끄덕였다" (대체)는 POLISH OK
원칙
의심스러우면 → 건드리지 마라!
POLISH는 보수적으로:
- 확실히 의미 동일한 것만
- 가독성/문체만 개선
- 내용에 의심 가면 SKIP
"이거 바꿔도 될까?" → NO!
"이거 안 바꾸면 문법 틀림?" → YES!
🔗 연계 모드
VERIFICATION (검증, 기록)
↓
FIX (일괄 수정)
↓
POLISH (가독성/문체) ← 현재
↓
완료!
💡 POLISH 팁
1. 소리 내어 읽어보기
- 막히는 부분 = 수정 필요
2. 한 번에 한 유형씩
- 반복 표현만 → 문장 길이만 → 리듬만
3. 과도한 수정 주의
- 작가의 문체 유지
- 모든 문장을 완벽하게 할 필요 없음
4. 핵심 장면 우선
- 클라이맥스, 감정 장면 먼저 다듬기
POLISH는 문장 품질! 스토리는 건드리지 않음!