# Prompt Craft

> 확정된 씬 라인업의 각 씬에 대해 영문 이미지 프롬프트, 한국어 내레이션 텍스트, scene_meta를 작성한다. 시리즈 가이드의 장르 프로필·청중과 knowledge/prompt-style-guide.md를 참조하여 일관된 스타일을 유지한다. 씬 라인업이 확정된 후 자동으로 실행되거나, '프롬프트 만들어줘'라고 요청하면 사용한다.

- Skill: `leedonwoo2827-ship-it/prompt-craft` (Agent Skill)
- Install (CLI): `npx skillmds@latest add leedonwoo2827-ship-it/prompt-craft`
- Raw SKILL.md: https://api.skillmd.com/api/skills/leedonwoo2827-ship-it/prompt-craft/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: leedonwoo2827-ship-it (https://skillmd.com/u/leedonwoo2827-ship-it)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/leedonwoo2827-ship-it/prompt-craft

---


# 씬별 상세 설계

확정된 씬 라인업의 각 씬에 대해 이미지 프롬프트, 내레이션, 메타데이터를 작성한다.

## 사전 조건

- analyze-chapter에서 씬 라인업이 확정되어야 한다
- 시리즈 가이드 또는 장르 지정이 있어야 한다

## 참조 문서

- `knowledge/prompt-style-guide.md` — 프롬프트 작성 원칙, 시대별 시각 어휘
- 시리즈 가이드 — `narration_style`(tone/person/tempo/chars_per_second), `audience`, `default_model`

## 환각 방지 (최우선)

- 내레이션·자막은 **해당 절 원고에 있는 사실만** 사용한다. 원고에 없는 사건/지명/인물(다른 단원)을 추가하지 않는다.
- 인물·연도·용어는 **원고 표기 그대로**. 한국어/영어 외 문자 금지.
- 이미지 프롬프트는 분위기·시대감을 담당하고, 정확한 사실(이름·연도)은 `narration_text`·`scene_meta.subtitle`·`text_overlay`가 담당한다.

## 청중 맞춤

시리즈 가이드의 `audience`(예: "중학교 2학년")에 맞춰 내레이션 난이도를 조정한다. 어린 학년일수록: 쉬운 어휘, 친근한 구어체, 어려운 용어는 한 번 풀어서 설명. 톤은 `narration_style.tone`을 따른다.

## 작성 절차 (씬당)

### 1. 원문 시각 요소 추출

해당 씬의 출처 단위에서: 물리적 환경(장소·유물·조명), 인물의 외모/행동, 시대적 단서(연도·복식·건축), 분위기/감정.

### 2. 영문 이미지 프롬프트 작성

prompt-style-guide.md의 구조를 따른다:

```
[주요 피사체/배경] + [시대적 디테일(복식·건축·유물)] + [빛/분위기] + [카메라 구도] + [색조/스타일 태그]
```

**규칙:**
- **영어, 완전한 묘사 문장 55~85단어.** 키워드 나열 금지.
- 시대 톤 적용(prompt-style-guide 시대별 어휘): 고대/고전/중세 = oil-painting texture·weathered stone·warm earth tones·torchlight, 근세/근대 = sepia·oil portrait, 20세기 = 흑백 vintage, 현대 = clean HD.
- **항상 `..., documentary style, cinematic quality.` 로 끝맺는다.**
- 화면 글자 렌더링 금지(자막은 scene_meta.subtitle에).
- 실존 인물은 이름 대신 외모/직업/시대로 묘사(차단 시 prompt-style-guide의 약화 단계 적용 — 구글 정책 차단 건은 사용자가 별도 수동 처리).

### 3. 한국어 visual_description 작성

프롬프트 핵심 시각 요소를 한국어 1줄로 요약. 예: "여명의 고대 서아시아 평원, 멀리 궁전 실루엣".

### 4. 모델 선택

시리즈 가이드의 `default_model`이 기본. 특정 씬에서 다른 모델이 더 적합하면 override 가능(prompt-style-guide 모델 가이드 참조).

### 5. 내레이션 텍스트 작성 (scene_type별 분량)

| scene_type | 분량 | 비고 |
|---|---|---|
| body | **4~6문장(공백 제외 약 120~170자, ~40~55초)** | 핵심 개념을 충실히 전달 |
| part_intro | 2~3문장(~20~30초) | 새 주제 도입 |
| bridge | 1~2문장(15~22초) | 정리·질문 |
| opening_title / closing / next_preview | 1~2문장(15~22초) | 짧게 |

- 본문이 짧다고 2~3문장으로 끝내지 않는다. body는 충분히 설명한다.
- 원문의 인상적 표현을 활용하되 듣기 편한 영상 내레이션으로 재구성. 너무 학술적이지 않게.

### 6. 내레이션 시간 추정

```
narration_seconds = ceil(narration_text의 공백 제외 글자수 / chars_per_second)
```
- `chars_per_second`: 시리즈 가이드 `narration_style.chars_per_second`(**기본 3.0**).

### 7. scene_meta 작성

```json
{
  "era": "BC-6c",            // 시대 (BC-6c, 1c, 1950s 등)
  "mood": "tension",         // tension, discovery, anticipation, sadness, hope, neutral 등
  "transition_hint": "fade_in",
  "text_overlay": null,      // 정확한 이름·연도가 필요하면 여기에
  "subtitle": "기원전 6세기, 고대 서아시아",  // 하단 자막
  "bgm_hint": "epic_ambient"
}
```

**transition_hint 규칙:**
- 첫 씬: `fade_in` / 같은 시대 연속: `crossfade` / 시대·주제 전환: `wipe`(또는 가이드 default) / 극적 전환: `fade_to_black` / 마지막 씬: `fade_out`

### 8. 파일명 생성

`{prefix}_{SS}_{영문슬러그}.png`
- prefix: `_manifest.json`의 절 prefix(예: 22). 없으면 장 번호 2자리.
- SS: 씬 번호 2자리(0패딩)
- 영문슬러그: 씬 내용을 영문 소문자+언더스코어 3–5단어
- 예: `22_01_ancient_world_opens.png`

## 출력 형식

2–3씬씩 묶어서 보여준다:

```
━━━ Scene 2 [body]: 아케메네스 페르시아의 통일 ━━━

📸 이미지 프롬프트:
"An ancient Persian throne hall... documentary style, cinematic quality."

🎙️ 내레이션 (48초):
"기원전 6세기, 키루스 2세는 서아시아를 다시 통일하였습니다..."

📋 메타:
모델: nano_banana | 파일: 22_02_persian_unification.png
시대: BC-6c | 분위기: discovery | 전환: crossfade
자막: 기원전 6세기, 아케메네스 왕조 페르시아
```

사용자 확인 후 다음 묶음. 전체 완료되면 generate-script로 넘어간다.

## 사용자 수정 대응

- "프롬프트 수정: [새 내용]" → 해당 씬 재작성
- "내레이션 톤/난이도 바꿔줘" → narration_style·청중 기준 조정
- "이 씬 모델 바꿔" → model override
- "자막 추가/변경" → scene_meta.subtitle 수정

