mkt-plan-short-video-edit-16-9
16:9 슬라이드 비디오용 두 계층 계획기:
- 구조 계층 (15가지 시각적 사고 유형) — 슬라이드 레이아웃: Before-After, 마인드맵, 순서도, 매트릭스 2×2, 벤 다이어그램, 타임라인, 피라미드, 비교표, 빙산, 사이클, 깔때기, 개념도, 아이콘 그리드, 숫자 인포그래픽, 3기둥. 장면 아키타입에 의해 결정됨 (hook → before-after, problem → icon-grid, solution → 3-pillar 등).
- 일러스트레이션 계층 (25가지 메타포 라이브러리) — 구조 내부에 구성된 손그림 크림 페이퍼 이미지: 모래시계, 부서진 사슬, 로봇 구체, 깨진 돼지 저금통, 달팽이 ↔ 로켓, 레고 조립, 계단, 열쇠-자물쇠, 산 정상…
출력 JSON은 편집기 mkt-hyperframe-talking-head-video-16-9에서 소비됨 — scenes-outline 체크포인트에서 수동 입력을 재현 가능한 계획으로 대체.
출력
| 파일 | 설명 |
|---|---|
visual-plan.json | 스키마 검증됨. 장면당: visual_type (15개 중 하나) + metaphor + tier_letter + items[] + badges[] + pip_events[]. |
prompts.md | 번호가 매겨진 (1.png, 2.png, …) 크림 페이퍼 프롬프트. 각 프롬프트에는 구조적 지시 (Before-After / Pyramid / Funnel / …) + 메타포 + 베트남어 제목/부제목이 포함됨. AI33 / Nano Banana Pro에 붙여넣기. |
scenes.json (apply_plan_to_scenes.py를 통해) | 편집기 형식의 shim. |
스키마 (1페이지 요약):
{ workspace_slug, total_duration, brand,
scenes: [{
id, num, kind, variant, start, end,
kicker, heading, accent_words[], voiceover_anchor,
tier_letter, // ≤5자: "8h" / "0h" / "∞" / "100tr" / "AI"
items[], badges[],
broll: [{
kind: "infographic-cream-paper",
visual_type, // 15개 중 1개 — 참조: visual-thinking-types.md
metaphor, // 25개 중 1개 — 참조: visual-thinking-library.md (또는 "none")
title_vi, subtitle_vi,
palette_accents[], layout_description,
placeholder_filename, aspect
}],
pip_events: [{t_in, t_out, trigger}]
}]
}
필수 요구사항
- 모든
infographic-cream-paperb-roll은visual_type(15개 중 1개) 과metaphor(25개 중 1개 또는 순수 구조 다이어그램의 경우"none")을 모두 가져야 함. 텍스트 전용 슬라이드는 거부. - Tier-letter ≤ 5자 (숫자/기호/브랜드 키워드 우선 —
references/tier-letter-selection-rules.md참조). - PIP 창은 겹치지 않으며, 0.3초 이상 간격.
- 베트남어 제목은 전체 분음 부호 사용. 브랜드 이름 + 수학 기호는 영어 유지.
파이프라인
1. 장면 감지
script.txt + transcript.json (또는 transcript-cleaned.json) 읽기. 편집기의 detect_scenes.py가 있으면 재사용하고, 없으면 5-장면 휴리스틱 (hook → problem → solution → recap → cta)으로 대체.
리스트클 지원: 리스트클 구조 (1 hook + N tip + 1 CTA)를 가진 스크립트 → N+2 장면 생성. 본문 장면에는 kind: "tip-1", "tip-2", …, "tip-N" 사용 — 다운스트림 편집기의 generate_root_index.py는 N에 관계없이 compositions/scene-{num}.html로 마운트 (fs-lesson-1/recap-card 충돌 없음). 권장 N = 3..7 (최대 10).
1b. 다운스트림 LLM 서브 에이전트 분기 (소비자 계약)
이 계획기가 visual-plan.json을 작성한 후, 오케스트레이터 (mkt-full-video-with-11-hyperframe-heygen-16-9)는 generate_compositions.py를 호출하지 않음 (Python Jinja2 생성기는 사용 중단됨). 대신 1개의 메시지에서 N개의 병렬 general-purpose 에이전트를 생성 — 장면당 1개의 서브 에이전트 — 각각 이 스킬의 visual-plan.json에서 compositions/scene-{num}.html을 작성.
이는 다음을 의미:
visual-plan.json의 각 장면 블록은 격리된 서브 에이전트가 조정 없이 구성을 작성할 수 있을 만큼 자체 포함되어야 함 — 전체 kicker, heading, accent_words, tier_letter, items, badges,layout_description이 포함된 broll metaphor, 상대+절대 타이밍이 포함된pip_events.- 기본 메타포 "robot-orb-with-tasks"는 분기 전에 (오케스트레이터 LLM 수동 편집을 통해) 장면별 메타포 (
scroll-tape-wasted,edit-regenerate-loop,projects-vault-shared-knowledge,right-tool-for-job-vehicles,pacific-vs-vietnam-timezone등)로 대체되어야 함 — 일반 메타포 → 지루한 구성. metaphor및layout_description필드는 서브 에이전트 프롬프트로 직접 읽힘; 더 풍부한 설명 → 더 나은 구성.- 이미지는 ROOT 레이어에만 존재 (
<img id="broll-N">in index.html). 구성 HTML은image-slot을 포함해서는 안 됨. 서브 에이전트 프롬프트는 포함된 image-slot을 명시적으로 금지해야 함.
2. 장면당 visual_type 선택 (새로운 단계)
references/visual-thinking-types.md 아키타입 맵 참조. 아키타입별 기본값:
| 아키타입 | 기본 visual_type | 대체 |
|---|---|---|
| hook | before-after | number-infographic |
| problem / fail | icon-grid | iceberg |
| pivot | before-after | flowchart |
| solution | three-pillar | flowchart |
| differentiator | comparison-table | venn |
| proof / result | number-infographic | comparison-table |
| recap | number-infographic | mind-map |
| cta | icon-grid | three-pillar |
3. 라이브러리에서 metaphor 선택
references/visual-thinking-library.md — 25개의 손그림 항목. 선택한 visual_type 내에 자연스럽게 들어맞는 이미지를 가진 메타포를 선택 (예: before-after + dong-ho-cat, three-pillar + robot-orb-with-tasks, number-infographic + heo-dat-vo-ket-sat). 순수 구조 다이어그램이 더 가독성이 좋은 경우에만 "none"으로 설정 (예: 기능 비교 comparison-table).
4. tier-letter, items, badges 도출
references/tier-letter-selection-rules.md 참조. 숫자 + 단위 우선 (8h, 100tr, 15h). 기호 허용 (∞, →, ×). 5자 하드 제한.
5. PIP 이벤트 계산
장면당 기본 1개 창: t_in = scene_start + 1.4s, t_out = t_in + 3.5s (장면 종료 0.3초 전으로 제한). 긴 솔루션 장면 (≥ 12s)은 2개 창. Hook은 없음.
6. prompts.md 렌더링
render_infographic_prompts.py는 visual-plan.json을 읽고, 각 프롬프트 상단에 visual_type 지시를 주입한 다음, 메타포 + 장식 요소 + 팔레트를 계층화. 결과는 붙여넣기 준비가 된 크림 페이퍼 편집 프롬프트.
사용자 체크포인트
plan_visuals.py 실행 후, 마크다운 요약 (원시 JSON 아님) 제시 — references/plan-checkpoint-protocol.md 참조. 형식:
### 장면 1 · HOOK (0.07–13.73s)
- 시각 유형: **before-after** → HyperFrame `tier-row`
- Tier-letter: **8h → 0h** (rose ↔ lime)
- 메타포: **모래시계 가득↔비어** (1.png)
- PIP: 없음 (hook 장면)
### 장면 3 · SOLUTION (27.37–47.75s)
- 시각 유형: **three-pillar** → HyperFrame `hero-orb`
- 사양: ∞ 대화 기억 · 100tr 문서 읽기 · 8h 직접 촬영
- 메타포: **robot-orb-with-tasks** (3.png)
- PIP: 28.77→32.77s + 34.37→38.87s
사용자 응답 패턴:
OK→ 최종 확정 + 편집기 핸드오프장면 N 시각 유형을 funnel로 변경→visual_type패치장면 N 메타포를 달팽이로 변경→metaphor패치 +prompts.md재렌더링장면 N tier-letter를 25로 변경→tier_letter패치장면 N+M 병합→ 재개요
파일
mkt-plan-short-video-edit-16-9/
├── SKILL.md
├── scripts/
│ ├── plan_visuals.py ← MAIN. --workspace <dir>
│ ├── render_infographic_prompts.py ← visual-plan.json → prompts.md
│ └── apply_plan_to_scenes.py ← visual-plan.json → scenes.json (editor shim)
├── assets/templates/
│ ├── visual-plan.schema.json ← JSON Schema (visual_type + metaphor required)
│ └── infographic-prompt.j2 ← Jinja: structural directive + metaphor + palette
└── references/
├── visual-thinking-types.md ← 15 structural types (THE primary lens)
├── visual-thinking-library.md ← 25 metaphor entries (illustration layer)
├── tier-letter-selection-rules.md ← Glyph picker
├── scene-archetype-pattern-mapping.md ← Archetype → variant + metaphor decision tree
└── plan-checkpoint-protocol.md ← Summary template + revision handlers
작업 예시
프로젝트 loi-ich-claude-ai:
| 장면 | 종류 | visual_type | 메타포 | Tier | HyperFrame 변형 |
|---|---|---|---|---|---|
| 1 | hook | before-after | dong-ho-cat | 8h / 0h | tier-row |
| 2 | problem | icon-grid | broken-chain | 3× | chats-stack |
| 3 | solution | three-pillar | robot-orb-with-tasks | ∞ / 100tr / 8h | hero-orb |
| 4 | recap | number-infographic | heo-dat-vo-ket-sat | 15h | counter-row |
| 5 | cta | icon-grid | gift-box-open | AI | terminal-row |
이것이 표준입니다 — 해당 프로젝트의 script.txt + transcript.json이 주어지면, plan_visuals.py --workspace .는 이 표를 다시 도출해야 합니다.