Initial commit: Novel Agent setup

- Add 3 AI agents (writing, revision, story-continuity specialists)
- Add 4 slash commands (rovel.create, write, complete, seed)
- Add novel creation/writing rules
- Add Novelpia reference data (115 works, 3328 chapters)
- Add CLAUDE.md and README.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-14 21:31:57 +09:00
commit f66fe445bf
3341 changed files with 1271187 additions and 0 deletions

209
rules/chapter-to-scene.md Normal file
View File

@@ -0,0 +1,209 @@
# 챕터 → 씬 변환 가이드
> 마크다운 원고를 인터랙티브 씬 데이터로 변환하는 규칙
---
## 개요
웹소설 원고(마크다운)를 뷰어에서 사용할 수 있는 씬/라인 데이터로 변환합니다.
**변환 스크립트:** `scripts/convert-chapter.ts`
```bash
npx tsx scripts/convert-chapter.ts "content/rovel/{작품명}/chapters/001.md" chapter-001
```
---
## 마크다운 작성 규칙
### 라인 타입별 문법
| 타입 | 마크다운 문법 | 예시 |
|------|-------------|------|
| 나레이션 | 일반 텍스트 | `협회 의무실.` |
| 대화 | 쌍따옴표로 감싸기 | `"선생님, 안녕하세요."` |
| 생각 | 홑따옴표로 감싸기 | `'이건 좀 이상한데...'` |
| 효과음 | `- `로 시작 | `- 삐빅.` |
| 씬 구분 | `***` | (빈 줄로 감싸서 사용) |
| 시스템 카드 | `[제목]`으로 시작 | `[진맥 판독]` |
### 시스템 카드 형식
```markdown
[진맥 판독]
대상: 박준혁
맥상: 침세(沈細), 삽맥(澁脈)
해석: 기혈 순환 정체, 어혈 잔존
부위: 좌측 어깨
```
- 첫 줄: `[제목]` 형식
- 이후 줄: `필드명: 값` 형식
- 빈 줄이나 다른 라인 타입을 만나면 종료
### 씬 구분자
```markdown
***
```
- `***`로 씬을 구분
- 앞뒤로 빈 줄 권장
- `` (제로폭 공백)은 무시됨
---
## 변환 규칙
### 라인 타입 감지
```typescript
// 우선순위 순서
1. `[` (, `[다음` ) system
2. `- ` sfx
3. `"` `"` dialogue
4. `'` `'` thought
5. narration
```
### 화자 감지
대화(`dialogue`) 라인에서 화자를 추론합니다:
1. **이전 3줄 컨텍스트**: 캐릭터 이름이 언급되면 해당 캐릭터로 지정
2. **대사 내용 분석**: 특징적 말투로 추론 (예: "본좌" → 자화연)
3. **주인공 여부**: "나는", "내가" 언급 시 isProtagonist = true
```typescript
// 예시: 화자 추론
"본좌에게 명령이냐?" (char-jahwayeon-001)
"선생님, 감사합니다." (char-parkjunhyuk-001)
```
### 씬 메타데이터 감지
씬 내용에서 자동 추출:
| 메타데이터 | 감지 패턴 |
|-----------|----------|
| 시간 | `밤 11시`, `오후 5시` 등 |
| 장소 | `의무실`, `협회` 등 키워드 |
| 분위기 | `살기`, `긴장`, `평온` 등 |
### 시스템 카드 타입
| 제목 키워드 | 타입 | 플레이 가능 |
|------------|------|-----------|
| 진맥 판독, 분석, 스캔 | diagnosis | O |
| 잠재력 분석 | potential | O |
| 환자 심리 분석, 환자 상태 | psychology | O |
| 은밀 치유 | skill_active | O |
| 신규 기능 감지, 잠재 해방 | skill_unlock | X |
| 경고, 숨겨진 | warning | X |
| 그 외 | info_update | X |
### is_replyable (플레이 가능 씬)
씬에 플레이 가능한 시스템 카드가 1개 이상 있으면 `is_replyable = 1`
---
## 주의사항
### 작성 시 주의
1. **따옴표 일관성**: 대화는 반드시 `""`로, 생각은 `''`
2. **효과음 형식**: `- ` 뒤에 공백 필수
3. **시스템 카드**: 빈 줄로 다른 내용과 구분
4. **씬 구분**: `***`만 단독으로 사용
### 변환 시 주의
1. **캐릭터 ID 매핑**: 새 캐릭터 추가 시 스크립트에 매핑 추가 필요
2. **SQL 이스케이프**: 작은따옴표는 `''`로 이스케이프됨
3. **시스템 카드 테이블**: 현재 스키마에 없음 → `lines` 테이블에 `type: "system"`으로 저장
### 현재 스키마 제약
```
scenes 테이블: is_playable 대신 is_replyable 사용
lines 테이블: system_card_id 컬럼 없음
system_cards 테이블: 현재 없음 (추후 마이그레이션 필요)
```
---
## 변환 워크플로우
```
1. 마크다운 원고 작성
content/rovel/{작품명}/chapters/XXX.md
2. 변환 스크립트 실행
npx tsx scripts/convert-chapter.ts {파일경로} {chapter-id}
3. 생성된 SQL 확인
content/rovel/{작품명}/chapters/XXX-seed.sql
4. seed-d1.sql에 병합
cat XXX-seed.sql >> scripts/seed-d1.sql
5. D1에 적용
npx wrangler d1 execute rovel-db --local --file=scripts/seed-d1.sql
npx wrangler d1 execute rovel-db --remote --file=scripts/seed-d1.sql
6. 배포
npx @cloudflare/next-on-pages
npx wrangler pages deploy .vercel/output/static --project-name=rovel
```
---
## 예시
### 입력 (마크다운)
```markdown
# 1화. 퇴근은 아직
협회 의무실.
한약 냄새가 은은하게 퍼져있는 이 작은 공간.
- 한숨.
'야간 당직자가 지각하고 있으니까.'
***
- 삐빅.
"한 선생님, 퇴근 아직이세요?"
김 과장이었다.
[진맥 판독]
대상: 김 과장
맥상: 허맥(虛脈)
해석: 과로 상태
```
### 출력 (구조)
```
Scene 1: 프롤로그
├── line-001-01-001: narration "협회 의무실."
├── line-001-01-002: narration "한약 냄새가..."
├── line-001-01-003: sfx "한숨."
└── line-001-01-004: thought "야간 당직자가..."
Scene 2: 김 과장 등장
├── line-001-02-001: sfx "삐빅."
├── line-001-02-002: dialogue "한 선생님..." (speaker: null)
├── line-001-02-003: narration "김 과장이었다."
└── line-001-02-004: system "[진맥 판독]..." (is_replyable: 1)
```

406
rules/novel-character.md Normal file
View File

@@ -0,0 +1,406 @@
# 캐릭터 반응 연출 가이드
> 캐릭터의 성격과 관계 단계에 따라 "맛있는" 반응을 연출하는 방법
## 핵심 원칙
**"캐릭터는 자기답게 반응해야 한다"**
주인공이 뭔가를 하면, 상대 캐릭터는 자신의 성격/지위/관계에 맞게 반응해야 합니다.
평범한 반응은 밋밋합니다. 캐릭터성이 살아있는 반응이 작품의 맛입니다.
---
## 1. 반응 연출의 3요소
### 1.1 캐릭터 성격 (WHO)
| 유형 | 기본 반응 패턴 | 예시 |
|------|---------------|------|
| **고압적/권위형** | 하찮게 무시, 분노, 위협 | 천마, 왕족, 마왕 |
| **츤데레형** | 부정 → 행동은 반대 | "필요없다" (꽉 쥠) |
| **쿨/무관심형** | 짧은 대답, 관심 없는 척 | "......그래." |
| **순수/천연형** | 솔직한 반응, 호기심 | "이게 뭐야? 신기해!" |
| **경계/트라우마형** | 움츠림, 회피, 과민 반응 | "......괜찮아요." (떨림) |
### 1.2 관계 단계 (WHERE)
| 단계 | 특징 | 반응 강도 |
|------|------|----------|
| **초면/경계** | 불신, 시험, 거부 | 🔴 강한 반발/무시 |
| **관심** | 호기심, 반신반의 | 🟡 의심 + 관찰 |
| **신뢰** | 수용, 의지 | 🟢 협조적 |
| **친밀** | 편안함, 솔직 | 💙 자연스러움 |
### 1.3 상황 맥락 (WHAT)
- 주인공이 뭘 했는가?
- 그게 캐릭터에게 어떤 의미인가?
- 캐릭터의 과거/트라우마와 연결되는가?
---
## 2. 실전 예시: 천마(자화연) 연출
### 2.1 기본 설정
```yaml
성격:
- 300년간 천마신교 교주
- 하늘과도 같은 존재로 대접받음
- 명령받는 것 = 모욕
관계 초기:
- 주인공 = 필부(하찮은 존재)
- 경계심 + 자존심 극대화
핵심 트리거:
- 명령조 → 분노
- 약점 노출 → 수치심/경계
- 예상 밖 → 혼란
```
### 2.2 반응 연출 비교
**상황: 주인공이 "손목 좀 주시겠어요?"라고 함**
#### ❌ 밋밋한 반응 (캐릭터성 없음)
```
"......알았다."
그녀가 손목을 내밀었다.
```
#### ⭕ 캐릭터성 살린 반응
```
그녀의 검은 눈동자가, 처음으로 움직였다.
나를 향해.
"......뭐라 했느냐?"
목소리에 서린 것은.
차가운 살기였다.
"감히 본좌에게 명령이냐?"
공기가 얼어붙었다.
```
### 2.3 천마 반응 레퍼토리
| 트리거 | 반응 옵션 | 내면 |
|--------|----------|------|
| **명령받음** | "감히 본좌에게 명령이냐?" | 모욕감 |
| | "죽고 싶으냐?" | 위협 |
| | "......뭐라 했느냐?" (살기) | 경고 |
| **약점 들킴** | "......어떻게 아느냐." | 경계 |
| | "네 놈, 무엇을 보았느냐." | 위협 |
| | (침묵) + (눈동자 흔들림) | 동요 |
| **예상 밖 대우** | "......이상하군." | 혼란 |
| | "네 놈이 처음이다." | 감정 표출 |
| **호의 받음** | "필요없다." (행동은 반대) | 츤데레 |
| | "......기억해 두마." | 우회적 감사 |
---
## 3. 관계 단계별 반응 변화
### 3.1 초면/경계 단계
**핵심: 불신, 시험, 거부**
```yaml
주인공 행동: "손목 좀 주시겠어요?"
천마 반응 옵션:
1. 무시: ".......(대답 없음, 노려봄)"
2. 분노: "감히 본좌에게 명령이냐?"
3. 위협: "죽고 싶으냐?"
4. 시험: "......네 놈이 감당할 수 있겠느냐?"
주인공 행동: "상처가 있으시네요."
천마 반응 옵션:
1. 경계: "......어떻게 아느냐."
2. 부정: "흉한 것을 보았구나. 눈을 뽑아버릴까."
3. 무시: "신경 쓸 것 없다."
```
### 3.2 관심 단계
**핵심: 반신반의, 관찰, 시험**
```yaml
주인공 행동: "다음에 또 오세요."
천마 반응 옵션:
1. 츤데레: "......생각해 보겠다." (다음날 옴)
2. 시험: "네 놈에게 갈 이유가 있느냐?"
3. 우회: "본좌가 결정할 일이다."
```
### 3.3 신뢰 단계
**핵심: 수용, 의지, 약한 모습 허용**
```yaml
주인공 행동: "아프시면 말씀하세요."
천마 반응 옵션:
1. 인정: "......조금." (눈 피함)
2. 허용: "(고개 끄덕임)"
3. 의존: "......네 놈만이다. 본좌에게 이런 말을 하는 자는."
```
---
## 4. 연출 강화 테크닉
### 4.1 내면 vs 외면 불일치
**츤데레/자존심 캐릭터의 핵심**
```markdown
❌ 단순 반응:
"감사합니다."
⭕ 불일치 연출:
말: "......감사 따윈 아니다."
행동: (핫팩을 꼭 쥔 채 놓지 않음)
```
### 4.2 침묵과 신체 언어
**말보다 반응이 더 강렬할 때**
```markdown
❌ 대사로 설명:
"나는 놀랐다."
⭕ 신체 언어:
"......!"
그녀의 어깨가 굳었다.
손가락이 미세하게 떨렸다.
```
### 4.3 단계적 반응 (점층)
**한 번에 터뜨리지 말고 쌓아올리기**
```markdown
❌ 바로 반응:
"어떻게 아느냐!"
⭕ 점층적 반응:
"......?"
고개가 살짝 돌아갔다.
"......뭐라 했느냐."
목소리가 낮아졌다.
"어떻게... 그것을 아느냐."
눈동자가 흔들렸다.
```
### 4.4 과거/트라우마 연결
**캐릭터의 상처를 건드렸을 때**
```markdown
상황: 주인공이 흉터를 봄
일반 반응:
"보지 마."
트라우마 연결 반응:
"......흉하다고 생각하느냐."
목소리가 떨렸다.
300년.
그 세월 동안, 누구에게도 보여준 적 없는 것.
```
---
## 5. 캐릭터 유형별 반응 템플릿
### 5.1 고압적 권위자 (천마, 왕, 마왕)
```yaml
기본 태도: "내가 왜 네 말을 들어야 하지?"
명령받을 때:
- "감히 본좌에게 명령이냐?"
- "죽고 싶으냐?"
- "네 놈 주제에."
요청받을 때:
- (침묵으로 위압)
- "......허락하마." (은혜 베푸는 척)
- "본좌가 생각해 보겠다."
감사할 때:
- "기억해 두마."
- "......은혜는 갚겠다."
- 절대 직접적으로 "고마워" 안 함
```
### 5.2 츤데레 (부정-행동 불일치)
```yaml
기본 패턴: 말 ≠ 행동
호의 받을 때:
: "필요없다" / "그런 건 소용없어"
행동: (꽉 쥠) / (버리지 않음)
걱정받을 때:
: "신경 쓰지 마"
행동: (얼굴 붉어짐) / (눈 피함)
감사할 때:
: "......다음에 올지 생각해 보겠다"
행동: (다음날 빵 들고 옴)
```
### 5.3 트라우마/경계형
```yaml
기본 태도: 방어적, 움츠림
접촉 시:
- (움찔) / (어깨 떨림)
- "......괜찮아요." (목소리 떨림)
과거 언급 시:
- (침묵) / (시선 회피)
- "......그때 일은."
- 말 끝 흐림
```
---
## 6. 퇴고 시 체크리스트
### 6.1 반응 점검
```markdown
매 장면마다 확인:
- [ ] 이 반응이 캐릭터답나?
- [ ] 관계 단계에 맞는 강도인가?
- [ ] 너무 순순히 받아들이진 않았나?
- [ ] 캐릭터의 자존심/트라우마를 고려했나?
```
### 6.2 밋밋한 반응 찾기
```markdown
다음 패턴을 찾아서 강화:
- "알겠습니다" → 캐릭터성 반응으로 교체
- "네" → 캐릭터만의 수락 방식으로
- (바로 수락) → 저항/갈등 후 수락으로
```
### 6.3 강화 포인트
| 상황 | 밋밋 | 강화 |
|------|------|------|
| 명령/요청 | 바로 수락 | 저항 → 이유 제시 → 마지못해 수락 |
| 호의 | "감사합니다" | 부정 + 행동 불일치 |
| 약점 노출 | "......네" | 경계/위협/동요 |
| 칭찬 | 기뻐함 | 당황/부정/우회 |
---
## 7. 실전 예시: 진찰 장면 강화
### Before (밋밋)
```
"아프시죠?"
"......뭐?"
"어깨요."
나는 그녀의 왼쪽 어깨를 가리켰다.
"관통상이네요."
"......어떻게 아느냐."
```
### After (캐릭터성 강화)
```
"아프시죠?"
그녀의 눈이 가늘어졌다.
"......뭐라 했느냐?"
"어깨요."
나는 그녀의 왼쪽 어깨를 가리켰다.
담담하게.
"관통상이네요. 검에 의한."
순간.
공기가 얼어붙었다.
"......!"
자화연의 눈동자가 날카롭게 빛났다.
"네 놈."
목소리가 낮아졌다.
"무엇을 보았느냐."
살기가 스쳤다.
하지만.
"피가 흐르는 모양 보면 대충 알아요."
나는 표정 하나 바꾸지 않았다.
"경험이 많아서요."
"......"
그녀의 살기가.
조금.
누그러졌다.
"......어떻게 아느냐."
목소리에서 위협이 빠지고.
순수한 의문만 남았다.
```
---
## 8. 참고
- 인물목록: `content/rovel/{작품명}/인물목록.md` (관계 변화 추적)
- 기획안: `content/rovel/{작품명}/기획안.md` (캐릭터 설정)
- 퇴고 가이드: `rules/novel-writer.md`

568
rules/novel-creation.md Normal file
View File

@@ -0,0 +1,568 @@
# 웹소설 창작 가이드
> 레퍼런스 작품 분석 → 페르소나 설정 → 기획안 작성 → 챕터 집필
## 개요
이 가이드는 Novelpia 레퍼런스 작품을 분석하여 AI 작가 페르소나를 만들고, 새로운 작품을 기획/집필하는 전체 워크플로우를 설명합니다.
---
## ⚠️ 필수 산출물
새로운 작품을 시작할 때 **반드시** 다음 3가지를 완성해야 합니다:
| 순서 | 산출물 | 경로 | 설명 |
|------|--------|------|------|
| 1 | **기획안** | `content/rovel/{작품명}/기획안.md` | 핵심 규칙/설정 (꼭 지켜야 할 것) |
| 2 | **아웃라인** | `content/rovel/{작품명}/아웃라인.md` | 전체 줄거리/캐릭터 상세 |
| 3 | **1화 원고** | `content/rovel/{작품명}/chapters/001.md` | 첫 번째 챕터 (3,000~5,000자) |
### 레퍼런스 예시
```
content/rovel/협회 소속 양호선생님/
├── 기획안.md ← 핵심 규칙 (세계관, 당위성, 말투, 시스템창 UI)
├── 아웃라인.md ← 스토리 구조, 캐릭터 상세, 관계 발전
└── chapters/
├── 001.md ← 1화 원고
└── 002.md
```
**이 예시를 참고하여 동일한 구조로 작품을 생성하세요.**
---
## 1단계: 레퍼런스 작품 분석
### 1.1 작품 선정
```bash
# 크롤링된 작품 목록 확인
ls content/references/novelpia/
# 각 작품의 챕터 수 확인
for dir in content/references/novelpia/*/; do
echo "$(basename $dir): $(ls $dir/*.md 2>/dev/null | wc -l) chapters"
done
```
### 1.2 샘플링 전략
전체를 읽지 않고 핵심 챕터를 샘플링:
| 챕터 | 분석 목적 |
|------|----------|
| 1~3화 | 도입부 스타일, 세계관 설정 방식 |
| 10화 | 초반 전개 패턴 |
| 30화 | 중반 리듬 |
| 70화 | 후반 전개 |
| 100화+ | 장기 연재 스타일 변화 |
### 1.3 분석 항목
#### 문체 DNA
- **문장 호흡**: 평균 문장 길이 (자 수)
- **여백 활용**: 문단 간격, 빈 줄 패턴
- **의성어/효과음**: 형식 (`- 삐빅.` vs `*삐빅*`)
- **대화문 스타일**: 경어체/반말, 따옴표 사용
#### 구조적 특징
- **시점**: 1인칭/3인칭
- **장면 전환**: `***`, `---`, 빈 줄 등
- **회당 분량**: 자 수, 줄 수
#### 장르 특수 요소
- **시스템창 UI**: 형식, 인격 유무
- **로맨스 표현**: 직접적/간접적
- **유머 패턴**: 시스템 개그, 상황 코미디 등
---
## 2단계: 페르소나 생성
### 2.1 페르소나 파일 구조
```
content/personas/{작품ID}.md
```
### 2.2 필수 섹션
```markdown
# {작품ID} 작가 페르소나
> {한 줄 설명}
## 기본 정보
| 항목 | 값 |
|------|-----|
| 작품 ID | {ID} |
| 장르 | {장르} |
| 시점 | {시점} |
| 핵심 설정 | {설정} |
## 문체 DNA
### 1. 문장 호흡
### 2. 여백 활용
### 3. 의성어/효과음
### 4. 시스템창 UI (해당 시)
## 서술자 특성
### 성격
### 대화 스타일
## 캐릭터 묘사 패턴
### 외형 묘사
### 감정 반응 묘사
## 유머/코미디 패턴
## 금기 사항
## Few-shot 예시
### 예시 1: {상황}
### 예시 2: {상황}
...
## 사용 가이드
```
### 2.3 Few-shot 예시 작성법
```markdown
### 예시 1: 분위기 묘사 + 등장
\`\`\`
낮이라는 단어가, 의미를 잃은 시각.
해는 몇 분 전쯤 졌다.
- 끼익….
상담실 바깥, 대기실의 문이 조심스럽게 열렸다.
\`\`\`
```
---
## 3단계: 기획안 + 아웃라인 작성
> **중요**: 기획안과 아웃라인 두 파일을 모두 작성해야 합니다.
### 3.1 두 파일의 역할
| 파일 | 용도 | 포함 내용 |
|------|------|----------|
| **기획안.md** | 집필 시 **반드시** 지켜야 할 규칙 | 세계관 핵심, 당위성, 인물별 말투, 시스템창 UI, 문체 규칙 |
| **아웃라인.md** | 스토리 전개 참고용 | 전체 줄거리, 캐릭터 상세, 관계 발전, 예시 장면 |
```
content/rovel/{작품명}/
├── 기획안.md ← 핵심 규칙 (이것만 봐도 집필 가능)
├── 아웃라인.md ← 스토리/캐릭터 상세 (참고용)
└── chapters/
├── 001.md ← 1화 (필수)
└── ...
```
### 3.2 기획안.md 필수 섹션
**레퍼런스**: `content/rovel/협회 소속 양호선생님/기획안.md`
```markdown
# {작품명} - 기획안
> 꼭 지켜야 할 핵심 규칙과 설정
## 기본 정보
| 항목 | 내용 |
|------|------|
| 장르 | |
| 시점 | |
| 분량 | 회당 X,XXX~X,XXX자 |
| 레퍼런스 | {작품ID} |
## 세계관 핵심 설정
### 배경
### 주요 시설/장소 (상세 묘사)
## 왜 {주인공 역할}인가? (당위성 설정)
### 세계관 내 {서비스} 체계
### 캐릭터별 첫 방문 이유
## 주인공 설정
### 기본 정보
### 핵심 컨셉 (숨긴 능력자 등)
### 능력 사용 원칙
### 성격
## 인물별 말투 규칙
### {캐릭터1}
| 관계 단계 | 호칭 | 어미 | 특징 |
|-----------|------|------|------|
| 초면 | | | |
| 관심 | | | |
| 신뢰 | | | |
| 마음 연 후 | | | |
### {캐릭터2}
...
## 시스템창 UI 규칙 (해당 시)
### 스타일
### 기본 판독 형식
### 경고/알림 형식
## 야릇함 규칙 (19+ 작품)
## 문체 규칙 (페르소나)
이 작품은 `content/personas/{ID}.md`의 문체를 따릅니다.
## 집필 체크리스트
- [ ] 인물 말투가 관계 단계에 맞는가?
- [ ] 당위성 설정을 위반하지 않았는가?
- [ ] 능력 숨기기 원칙을 지켰는가?
```
### 3.3 아웃라인.md 필수 섹션
**레퍼런스**: `content/rovel/협회 소속 양호선생님/아웃라인.md`
```markdown
# {작품명} - 아웃라인
> 전체 줄거리, 캐릭터 상세, 스토리 구조
## 로그라인
**"{핵심 대사}"**
{3~4줄 설명}
## 스토리 구조
### 1부: {제목} (1~30화)
- 핵심 사건
- 등장 캐릭터
- 관계 변화
### 2부: {제목} (31~70화)
...
## 히로인 상세
### 1. {이름}
| 항목 | 내용 |
|------|------|
| 출신 | |
| 외형 | |
| 성격 | |
**상처/갈등**: ...
**관계 발전**: 처음 → 중반 → 후반
**핵심 장면 예시**:
\`\`\`
{대화/장면}
\`\`\`
## 남성 캐릭터 상세
...
## 캐릭터 상호작용
### {캐릭터A} ↔ {캐릭터B}
## 예시 장면
### 장면 1: {상황}
\`\`\`
{본문 예시}
\`\`\`
## TODO
- [ ] 1화 초안 작성
- [ ] 퇴고 (rules/novel-writer.md)
```
### 3.4 당위성 설정 (필수)
**왜 주인공에게 가야 하는가?**
모든 작품에서 가장 중요한 질문:
> "더 나은 대안이 있는데 왜 주인공에게 오는가?"
#### 당위성 없는 설정의 문제점
```
❌ 문제 예시:
- 의사가 있는데 왜 양호선생님?
- 전문 힐러가 있는데 왜 비전투 각성자?
- 상담센터가 있는데 왜 개인 상담사?
→ 독자의 몰입을 깨뜨림
→ "그냥 설정이니까"로 넘기면 안 됨
```
#### 당위성 확보 방법
**1. 우연적 상황 설계**
```
- 시간적 제약: "야간이라 다른 곳이 닫았다"
- 물리적 제약: "급해서 가장 가까운 곳에"
- 경제적 제약: "무료라서", "기록이 안 남아서"
- 특수 상황: "일반 의료진이 다루기 꺼려서"
```
**2. 첫 방문 → 진가 발견 구조**
```
1회차: 어쩔 수 없이 방문 (우연)
"다른 곳이 문 닫아서..."
2회차: 호기심으로 재방문
"이상하게 여기서 받은 치료가 더 잘 듣네?"
3회차: 신뢰 형성
"이 사람... 다른 사람들과 뭔가 다르다"
N회차: 의존/단골
"선생님 아니면 안 돼요"
```
**3. 세계관 내 의료/서비스 체계 설계**
```
반드시 정의해야 할 것:
- 1순위 대안: 왜 이용 못 하는가? (비용, 시간, 접근성)
- 2순위 대안: 왜 이용 안 하는가? (기록, 프라이버시)
- 주인공: 왜 이게 선택지가 되는가? (24시간, 무료, 비공식)
```
#### 캐릭터별 첫 방문 이유 설계
| 유형 | 예시 상황 |
|------|----------|
| 시간 제약 | "야간이라 의료센터가 닫혀서" |
| 기록 회피 | "S급이라 약점 노출되면 안 돼서" |
| 특수 케이스 | "수인이라 일반 의료진이 꺼려서" |
| 만성 문제 | "병원에서 이상 없다고 해서" |
| 비용 문제 | "힐러 비용이 너무 비싸서" |
#### 기획안에 포함할 내용
```markdown
### 왜 {주인공 역할}인가? (당위성 설정)
#### 세계관 내 {서비스} 체계
1순위: {정규 서비스} - 왜 못 쓰는가
2순위: {대안 서비스} - 왜 안 쓰는가
3순위: {주인공} - 왜 여기로 오는가
#### 캐릭터별 첫 방문 이유
| 캐릭터 | 우연적 상황 |
|--------|-------------|
| A | |
| B | |
#### 재방문/단골 전환 계기
- 진가 발견 포인트
- 입소문 확산 구조
```
---
### 3.5 캐릭터 설정 템플릿
```markdown
### {번호}. {이름} ({역할/출신})
| 항목 | 내용 |
|------|------|
| 출신 | |
| 외형 | |
| 등급 | |
| 성격 | |
**상처/갈등**:
-
**핵심 장면**:
\`\`\`
{예시 대화/장면}
\`\`\`
**관계 발전**:
- 처음:
- 중반:
- 후반:
```
---
## 4단계: 1화 집필 (필수)
> **기획안 + 아웃라인 작성 후 반드시 1화를 완성해야 합니다.**
**레퍼런스**: `content/rovel/협회 소속 양호선생님/chapters/001.md`
### 4.1 페르소나 적용 체크리스트
집필 전 확인:
- [ ] 문장 길이 (페르소나 기준 준수)
- [ ] 여백 패턴 (문단 간격)
- [ ] 의성어 형식
- [ ] 시스템창 UI 형식
- [ ] 감정 표현 방식 (직접 서술 금지)
### 4.2 챕터 구조
```markdown
# {N}화. {제목}
{본문}
***
{장면 전환 후 본문}
[다음 화에 계속]
```
### 4.3 문체 적용 예시
#### 363368 페르소나 기준
```markdown
❌ 잘못된 예:
나는 그녀를 보고 놀랐다. 그녀는 정말 아름다웠고,
나는 그녀에게 반해버렸다.
⭕ 올바른 예:
나는 그녀를 봤다.
'.......'
숨이 멎었다.
검은 머리카락.
창백한 피부.
그리고, 붉은 입술.
[경고: 심박수가 증가하고 있습니다]
[왜 그러세요?ㅋㅋㅋ]
```
### 4.4 야릇함 표현 가이드 (19+ 작품)
```markdown
❌ 노골적 표현:
"그녀의 풍만한 가슴이..."
⭕ 은근한 표현:
"붕대를 감기 위해 그녀의 등 뒤로 팔을 돌렸다.
자연스럽게, 거리가 가까워졌다.
그녀의 숨결이 느껴질 정도로."
```
---
## 5단계: 반복 및 개선
### 5.1 자체 검토
각 챕터 완성 후:
1. 페르소나 문체 일치 확인
2. 캐릭터 일관성 확인
3. 복선/떡밥 관리
4. 분량 확인 (목표 자수)
### 5.2 시리즈 관리
```markdown
## 연재 현황
| 화수 | 제목 | 상태 | 분량 |
|------|------|------|------|
| 1화 | 퇴근은 아직 | ✅ 완료 | 4,500자 |
| 2화 | | 📝 작성중 | |
```
---
## 부록: 유용한 프롬프트
### 새 작품 전체 생성 요청 (권장)
```
{페르소나ID} 페르소나를 기반으로 새로운 작품을 만들어줘.
장르는 {장르}, 컨셉은 {컨셉}.
다음 3가지를 모두 완성해줘:
1. content/rovel/{작품명}/기획안.md (핵심 규칙)
2. content/rovel/{작품명}/아웃라인.md (스토리/캐릭터)
3. content/rovel/{작품명}/chapters/001.md (1화 원고)
레퍼런스: content/rovel/협회 소속 양호선생님/ 구조 참고
```
### 페르소나 분석 요청
```
{작품ID} 작품의 1, 10, 30, 70, 100화를 분석해서
content/personas/{작품ID}.md 에 작가 페르소나를 생성해줘.
문체 DNA, 시스템창 UI, 캐릭터 묘사 패턴, Few-shot 예시를 포함해줘.
```
### 기획안 + 아웃라인 생성 요청
```
{페르소나ID} 페르소나를 기반으로 새로운 작품을 기획해줘.
장르는 {장르}, 컨셉은 {컨셉}.
content/rovel/{작품명}/ 폴더에:
- 기획안.md (핵심 규칙, 당위성, 인물별 말투)
- 아웃라인.md (스토리, 캐릭터 상세)
두 파일 모두 작성해줘.
레퍼런스: content/rovel/협회 소속 양호선생님/
```
### 1화 집필 요청
```
{작품명}의 1화를 집필해줘.
기획안과 아웃라인, 페르소나를 참고해서 문체를 맞춰줘.
분량은 3,000~5,000자.
레퍼런스: content/rovel/협회 소속 양호선생님/chapters/001.md
```
### 추가 챕터 집필 요청
```
{작품명}의 {N}화를 집필해줘.
기획안과 페르소나를 참고해서 문체를 맞춰줘.
분량은 {X,XXX}자 내외로.
```
---
## 참고 자료
- 페르소나 예시: `content/personas/363368.md`
- 기획안 예시: `content/rovel/협회 소속 양호선생님/기획안.md` (핵심 규칙)
- 아웃라인 예시: `content/rovel/협회 소속 양호선생님/아웃라인.md` (스토리/캐릭터)
- 챕터 예시: `content/rovel/협회 소속 양호선생님/chapters/001.md`

682
rules/novel-writer.md Normal file
View File

@@ -0,0 +1,682 @@
# 웹소설 창작 자동화 가이드 (AI 지침)
> 새로운 화 집필 + 콘텐츠 생성 + 퇴고까지 자동화하는 종합 프로세스
---
## 핵심 원칙
### AI 역할
1. **집필**: 아웃라인 기반 새 화 작성
2. **창작**: 필요 시 새 인물/배경/집단/상황 생성
3. **기록**: 생성한 콘텐츠는 아웃라인 TODO에 메모
4. **검증**: 기획안과 원고 대조
5. **갱신**: 인물목록 자동 업데이트
### 파일 구조
```
content/rovel/{작품명}/
├── 기획안.md # 핵심 규칙 (변경 최소화)
├── 아웃라인.md # 스토리 구조 + TODO (자주 갱신)
├── 인물목록.md # 등장인물 추적 (자동 갱신)
└── chapters/
├── 001.md
├── 002.md
└── ...
```
---
# Part A: 집필 프로세스
## ⚠️ 집필 필수 원칙
```yaml
핵심: 새 화 작성 전 반드시 기획안을 읽고 시작할 것
이유:
- 기획안을 안 읽으면 설정 충돌이 발생함
- : "야간 당직" vs "주간 당직" 혼동
- : 의료센터 운영시간, 당직 체계 등 세부 설정 누락
- 퇴고할 때 발견하면 전체 수정 필요 → 비효율
절차:
1. 기획안.md 전체 읽기 (필수!)
2. 해당 화에서 사용할 설정 메모
3. 집필 중 설정 언급 시 메모와 대조
4. 완료 후 퇴고에서 재확인
금지:
❌ 기획안 안 읽고 집필 시작
❌ "대충 기억나니까" 하고 넘어가기
❌ 설정 모르면 임의로 만들기 (기획안에 없으면 추가 먼저)
```
---
## Phase 0: 사전 준비
### 0.1 필수 파일 로드
```
집필 시작 전 반드시 읽기:
1. 기획안.md - 핵심 규칙 추출 ⚠️ 전체 정독 필수
2. 아웃라인.md - 현재 진행 상황, TODO 확인
3. 인물목록.md - 등장인물 현재 상태
4. 최근 2~3화 - 연속성 확인
5. 페르소나 파일 - 문체 기준
특히 기획안에서 확인할 것:
- 세계관 설정 (의료 체계, 당직 체계 등)
- 캐릭터별 말투 규칙
- 능력 숨기기 원칙
- 시스템창 UI 규칙
```
### 0.2 TODO 확인
아웃라인.md의 TODO 섹션에서 다음 확인:
- 다음 화 예정 내용
- 미완료 복선/설정
- 새로 추가해야 할 요소
---
## Phase 1: 새 화 집필
### 1.1 이전 화 연결 확인 (필수!)
```yaml
연결 방식 결정:
1. 직접 연결 (기본):
- 이전 화 끝 장면에서 바로 이어서 시작
- "[다음 화에 계속]" 직전 상황을 그대로 연결
- : 2화 끝 "침 치료 계속할게요" → 3화 시작 "침이 피부에 닿았다"
2. 시간 점프:
- 명시적 시간 표시로 시작 ("3일 후.", "일주일 뒤.")
- 이전 화 상황이 어떻게 마무리됐는지 간략 언급
- : "일주일 뒤." + "자화연의 치료는 순조롭게 진행되고 있었다."
3. 병렬 전개:
- 다른 캐릭터/장소로 시점 전환
- 시간대 명시 필수 ("같은 시각, 협회 로비에서는")
- 이전 화 캐릭터는 나중에 합류
연결 방식 선택 기준:
- 이전 화가 중간에 끊겼다면 → 직접 연결
- 이전 화가 자연스럽게 마무리됐다면 → 시간 점프 가능
- 새 캐릭터 첫 등장이면 → 병렬 전개 고려
```
### 1.2 화 구성 결정
```yaml
다음 화 구성 체크:
- 연결 방식: 직접 연결 / 시간 점프 / 병렬 전개
- 현재 부(Part): 몇 부 몇 화인가?
- 해당 부 테마: 이 화에서 테마를 어떻게 표현?
- 등장 예정 캐릭터: 누가 나오나?
- 핵심 이벤트: 무슨 일이 일어나나?
- 복선 배치: 어떤 복선을 깔아야 하나?
- 복선 회수: 어떤 복선을 회수하나?
```
### 1.3 콘텐츠 필요 여부 판단
집필 중 다음이 필요하면 → Phase 2 (콘텐츠 생성)으로:
| 필요한 것 | 예시 |
|----------|------|
| 새 인물 | 신규 환자, 적대 세력 일원 |
| 새 배경 | 새 장소, 새 던전 |
| 새 집단 | 길드, 조직, 가문 |
| 새 상황 | 새 사건, 새 능력 발현 |
| 새 설정 | 세계관 확장 요소 |
### 1.4 집필 규칙
**문체 (페르소나 기준)**:
```yaml
문장:
- 짧게 (10-20자)
- 문단마다 여백
의성어:
- "- 삐빅." 형식
감정:
- 직접 서술 ❌
- 신체 반응 ⭕
```
**캐릭터 (기획안 기준)**:
```yaml
말투:
- 캐릭터별 설정된 말투 엄수
- 관계 단계에 맞는 호칭
반응:
- 성격에 맞는 반응
- 즉시 수락 ❌ → 갈등/저항 후 수용
```
---
## Phase 2: 콘텐츠 생성
> 집필 중 새로운 요소가 필요할 때 사용
### 2.1 새 인물 생성
**생성 트리거**:
- 스토리 전개에 새 인물 필요
- 아웃라인에 언급된 미설정 캐릭터
- 세계관 확장에 필요한 인물
**생성 템플릿**:
```markdown
### [인물명]
| 항목 | 내용 |
|------|------|
| **출신** | |
| **외형** | |
| **등급** | |
| **성격** | |
| **말투** | |
| **역할** | 스토리에서 어떤 역할? |
**첫 등장**: N화
**상처/트라우마**: (해당 시)
**주인공과의 관계**:
```
**생성 원칙**:
```yaml
일관성:
- 세계관 규칙 준수 (중원/제국/한국 출신 구분)
- 기존 캐릭터와 차별화된 성격/말투
- 등급 밸런스 고려
필요성:
- 스토리에 필수적인 역할이 있어야 함
- 단순 엑스트라는 이름만 언급
- 반복 등장 예정이면 상세 설정
```
### 2.2 새 배경/장소 생성
**생성 템플릿**:
```markdown
### [장소명]
| 항목 | 내용 |
|------|------|
| **위치** | |
| **분위기** | |
| **특징** | |
| **관련 인물** | |
**첫 등장**: N화
**용도**: 어떤 장면에 사용?
```
### 2.3 새 집단/조직 생성
**생성 템플릿**:
```markdown
### [집단명]
| 항목 | 내용 |
|------|------|
| **유형** | 길드/조직/가문/세력 |
| **세력 규모** | |
| **주요 인물** | |
| **특징** | |
| **주인공과의 관계** | 우호/중립/적대 |
**첫 언급**: N화
**역할**: 스토리에서 어떤 역할?
```
### 2.4 새 상황/이벤트 생성
**생성 원칙**:
```yaml
필요 시 생성:
- 던전 레이드
- 긴급 상황 (환자 위독 등)
- 갈등 이벤트
- 복선 이벤트
체크사항:
- 기존 설정과 충돌 없는가?
- 스토리 흐름에 자연스러운가?
- 캐릭터 성격에 맞는 반응이 가능한가?
```
### 2.5 생성 후 기록 (필수!)
**아웃라인.md TODO에 추가**:
```markdown
## TODO
### 새로 생성한 콘텐츠 (N화)
- [ ] 인물: [이름] - 역할: [역할], 첫등장: N화
- [ ] 장소: [장소명] - 용도: [용도]
- [ ] 조직: [조직명] - 성격: [적대/우호]
- [ ] 설정: [설정명] - 내용: [간략 설명]
### 인물목록 갱신 필요
- [ ] [인물명] 추가
- [ ] [인물명] 정보 수정: [변경사항]
```
---
## Phase 3: 아웃라인 메모 규칙
### 3.1 TODO 카테고리
```markdown
## TODO
### 집필 진행
- [x] N화 초안 작성
- [ ] N+1화 초안 작성
- [ ] N+2화 초안 작성
### 복선 관리
- [ ] [복선명]: N화에서 설치, M화에서 회수 예정
- [x] [복선명]: N화 설치 → M화 회수 완료
### 새로 생성한 콘텐츠
- [ ] 인물: [이름] - 상세 설정 필요
- [ ] 장소: [장소명] - 상세 설정 필요
- [ ] 조직: [조직명] - 구성원 설정 필요
### 인물목록 갱신
- [ ] [인물명] 추가
- [ ] [인물명] 관계 변화: [내용]
- [ ] [인물명] 등급 변화: [내용]
### 설정 확장
- [ ] [설정명]: 세부 규칙 정리 필요
- [ ] 세계관: [영역] 추가 설명 필요
### 검토 필요
- [ ] N화: [검토 사항]
- [ ] 시간선 정리 필요
```
### 3.2 메모 시점
| 상황 | 메모 위치 | 메모 내용 |
|------|----------|----------|
| 새 인물 등장 | TODO > 새로 생성한 콘텐츠 | 이름, 역할, 첫등장 화수 |
| 복선 설치 | TODO > 복선 관리 | 복선 내용, 설치 화수, 회수 예정 |
| 설정 추가 | TODO > 설정 확장 | 설정명, 간략 설명 |
| 캐릭터 변화 | TODO > 인물목록 갱신 | 변화 내용 |
| 다음 화 계획 | TODO > 집필 진행 | 예정 내용 |
### 3.3 메모 예시
```markdown
## TODO
### 집필 진행
- [x] 1화 초안 작성 → chapters/001.md
- [x] 2화 초안 작성 → 자화연 정기 치료
- [x] 3화 초안 작성 → 박준혁 각성
- [ ] 4화 초안 작성 → 루나 첫 등장 예정
### 복선 관리
- [x] 잠재 해방 능력: 1화 언급 → 3화 첫 발동
- [ ] 자화연 한빙신공 부작용: 2화 언급, 15화쯤 심화 예정
- [ ] 주인공 과거: 1부 내내 암시, 3부에서 공개 예정
### 새로 생성한 콘텐츠 (3화)
- [x] 인물: 민재(故) - 박준혁 후배, 3년 전 사망
- 역할: 박준혁 트라우마의 핵심
- 유언: "형, 다음엔 꼭 잡아요"
### 인물목록 갱신
- [x] 박준혁: B급 → A급 재각성, 단골 환자 등록
- [x] 박준혁: 트라우마 상세 추가 (민재 관련)
### 4화 예정
- [ ] 루나 첫 등장
- 첫 방문 이유: 수인 특성 상처 (일반 의료진 거부)
- 귀/꼬리 숨기고 있음
- 주인공이 눈치챔
```
---
# Part B: 퇴고 프로세스
## ⚠️ 퇴고 필수 원칙
```yaml
핵심: 퇴고 시 반드시 원고 전체를 읽고 검토할 것
이유:
- 부분만 보면 설정/대사 간 불일치를 놓침
- 같은 설정이 여러 곳에서 언급될 때 일관성 확인 불가
- : 30행에서 "빵꾸"로 수정해도, 91행에서 "환자가 있어서요"가 남아있으면 모순
퇴고 순서:
1. 원고 전체를 처음부터 끝까지 1회 통독
2. 핵심 설정/대사를 메모 (이유, 동기, 상황 설명 등)
3. 동일 설정이 언급된 모든 위치 확인
4. 불일치 발견 시 모든 위치를 일괄 수정
5. 수정 후 다시 통독하여 누락 확인
금지:
❌ 특정 행만 읽고 해당 행만 수정
❌ Ctrl+F로 키워드만 찾아서 부분 수정
❌ 수정 후 전체 맥락 확인 없이 완료 처리
```
---
## Phase 4: 정합성 검증
### 4.1 기획안 대조
| 규칙 | 원고 내용 | 판정 | 수정 제안 |
|------|----------|------|----------|
| 능력 숨기기 | "제 능력입니다" | ❌ | "경험이 많아서요" |
| 말투 규칙 | (캐릭터별 체크) | ✅/❌ | |
### 4.2 설정 당위성 검증 (핵심!)
```yaml
원칙: "설정이 납득되지 않으면 납득되는 설정으로 교체"
체크 질문:
- 이 상황이 왜 발생했는가?
- 독자가 "왜?"라고 물으면 답할 수 있는가?
- 더 자연스러운 이유가 있지 않은가?
예시:
❌ 납득 안 됨:
- "환자가 있으니까" 야근 → 환자 없으면 안 해도 되는 거 아닌가?
- "우연히 만났다" → 작위적, 개연성 부족
- "그냥 도와주고 싶었다" → 동기 불명확
⭕ 납득 됨:
- "다음 당직자가 빵꾸 냈으니까" 야근 → 어쩔 수 없는 상황
- "정기 치료 일정이라 병원에 왔다가" → 필연적 만남
- "은혜를 갚아야 하니까" → 명확한 동기
수정 기준:
1. 상황 발생의 필연성이 있는가?
2. 캐릭터 행동의 동기가 명확한가?
3. 독자가 "어, 이상한데?"라고 느끼지 않는가?
```
### 4.3 설정 일관성
```
체크 항목:
- 시간 흐름 (시간대 계산)
- 공간 이동 논리
- 인물 정보 (이름, 외형, 등급)
- 이전 화와의 연속성
```
### 4.3.1 시간 전개 규칙
```yaml
원칙: 시간 흐름은 독자가 혼란 없이 따라갈 수 있어야 함
시간순 전개 (기본):
- "오후 5시" → "밤 9시" → "밤 11시" 순서로 서술
- 자연스럽게 흐름
회상/역순 전개 (주의 필요):
- 반드시 회상임을 명시해야 함
- "그날 오후" ❌ → 현재인지 과거인지 불명확
- "그보다 몇 시간 전" ⭕ → 회상임이 명확
- "그리고 밤 9시" ⭕ → 시간 진행임이 명확
회상 표현 예시:
⭕ "그보다 몇 시간 전."
⭕ "시간을 조금 되돌려보자."
⭕ "그날 아침으로 돌아가면."
❌ "그날 오후." (현재 시점이 밤이면 혼란)
❌ "그때." (언제인지 불명확)
체크 방법:
1. 원고에서 시간 표현 전부 추출
2. 시간순으로 나열
3. 역순이 있으면 회상 표현이 명확한지 확인
4. 독자 입장에서 따라갈 수 있는지 검토
```
### 4.4 캐릭터 일관성
```
체크 항목:
- 말투 패턴
- 호칭 단계
- 성격에 맞는 반응
- 관계 발전 속도
```
---
## Phase 5: 문체 분석
### 5.1 페르소나 대조
```
문장 길이: 10-20자 기준
여백 패턴: 문장마다 빈 줄
의성어 형식: "- [의성어]."
감정 표현: 신체 반응으로
```
### 5.2 직접 감정 서술 탐지
```
❌ "나는 놀랐다" → ⭕ "숨이 멎었다"
❌ "그녀가 슬퍼 보였다" → ⭕ "그녀의 입술이 떨렸다"
```
---
## Phase 6: 캐릭터 반응 강화
### 6.1 밋밋한 반응 탐지
```
탐지 패턴:
- 즉시 수락: "알겠습니다", "네"
- 직접 감사: "감사합니다"
- 무반응 행동: 갈등 없이 바로 행동
```
### 6.2 강화 선택지 제안
```
📍 34행 - 밋밋한 반응
원문: "......알았다." 그녀가 손목을 내밀었다.
💡 강화 선택지:
[A] 위협형
"......뭐라 했느냐?"
차가운 살기가 스며들었다.
[B] 츤데레형
"흥."
그녀가 고개를 돌렸다.
하지만 손목은, 천천히 내밀어졌다.
[C] 원문 유지
```
---
## Phase 7: 최종 정리
### 7.1 교정
```
- 오탈자/맞춤법
- 문장 부호
- 형식 통일 (시스템창 등)
```
### 7.2 분량 확인
```
목표: 3,000-5,000자
현재: [N]자
판정: ✅/⚠️
```
### 7.3 인물목록 갱신
```
갱신 항목:
- 신규 인물 추가
- 호칭/관계 변화
- 등급 변화
- 새로운 정보 추가
```
### 7.4 아웃라인 TODO 갱신
```
완료 처리:
- [x] N화 초안 작성
추가:
- [ ] N+1화 초안 작성 - 예정 내용
- [ ] 복선: [내용] - N화 설치
- [ ] 인물목록 갱신: [내용]
```
---
# Part C: 자동화 워크플로우
## 전체 프로세스
```
┌─────────────────────────────────────────────────────────┐
│ 1. 준비 │
│ - 기획안, 아웃라인, 인물목록, 최근 화 읽기 │
│ - TODO 확인 │
└────────────────────────┬────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 2. 집필 │
│ - 화 구성 결정 │
│ - 새 콘텐츠 필요 시 → 생성 (Phase 2) │
│ - 집필 │
└────────────────────────┬────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 3. 기록 │
│ - 새 콘텐츠 → 아웃라인 TODO 메모 │
│ - 복선 설치 → 복선 관리 메모 │
└────────────────────────┬────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 4. 퇴고 │
│ - 기획안 대조 │
│ - 문체 검증 │
│ - 캐릭터 반응 강화 │
└────────────────────────┬────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 5. 갱신 │
│ - 인물목록.md 업데이트 │
│ - 아웃라인.md TODO 완료 처리 │
│ - 다음 화 TODO 추가 │
└─────────────────────────────────────────────────────────┘
```
## 빠른 실행 체크리스트
```markdown
### 새 화 집필 시
□ 기획안 핵심 규칙 확인
□ 아웃라인 TODO 확인
□ 인물목록 현재 상태 확인
□ 최근 2-3화 연속성 확인
□ 화 구성 결정
□ 필요 시 새 콘텐츠 생성
□ 집필
□ 새 콘텐츠 → 아웃라인 TODO 메모
□ 기획안 대조 검증
□ 설정 당위성 검증 (납득 안 되면 교체!)
□ 문체 검증
□ 캐릭터 일관성 검증
□ 인물목록 갱신
□ 아웃라인 TODO 완료 처리
□ 다음 화 TODO 추가
```
---
## 콘텐츠 생성 판단 기준
### 생성해야 할 때
```yaml
인물:
- 스토리 전개에 새 인물 필요
- 반복 등장 예정
- 주인공/주요 캐릭터와 관계 형성 예정
배경:
- 새 장소에서 중요 장면 전개
- 세계관 확장 필요
- 반복 사용 예정
조직:
- 스토리에 집단적 갈등 필요
- 캐릭터 배경 설명 필요
- 적대/우호 세력 필요
```
### 생성하지 않아도 될 때
```yaml
인물:
- 일회성 엑스트라 (이름만 언급)
- 배경 묘사용 (군중 등)
배경:
- 일회성 장소
- 기존 장소로 대체 가능
조직:
- 언급만 되는 조직
- 상세 설정 불필요
```
---
## 참고 파일
| 유형 | 경로 | 용도 |
|------|------|------|
| 기획안 | `content/rovel/{작품명}/기획안.md` | 핵심 규칙 |
| 아웃라인 | `content/rovel/{작품명}/아웃라인.md` | 스토리 + TODO |
| 인물목록 | `content/rovel/{작품명}/인물목록.md` | 인물 추적 |
| 페르소나 | `content/personas/{ID}.md` | 문체 기준 |
| 원고 | `content/rovel/{작품명}/chapters/*.md` | 집필 결과물 |