mkt-plan-short-video-edit-16-9
16:9スライド動画向けの2層プランナー:
- 構造層 (15種類のビジュアルシンキングタイプ) — スライドレイアウト: Before-After, マインドマップ, フローチャート, 2×2マトリックス, ベン図, タイムライン, ピラミッド, 比較表, アイスバーグ, サイクル, ファネル, コンセプトマップ, アイコングリッド, 数値インフォグラフィック, 3本柱。シーンアーキタイプ(フック→Before-After, 問題→アイコングリッド, 解決策→3本柱, …)によって駆動されます。
- イラストレーション層 (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 / ピラミッド / ファネル / …) + メタファー + ベトナム語のタイトル/サブタイトルが含まれます。AI33 / Nano Banana Pro に貼り付けて使用します。 |
scenes.json (apply_plan_to_scenes.py 経由) | エディタ形式のシム。 |
スキーマ (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種のいずれか — 詳細は references/visual-thinking-types.md 参照
metaphor, // 25種のいずれか — 詳細は references/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ロールは、必ずvisual_type(15種のいずれか) とmetaphor(25種のいずれか、または純粋な構造図の場合は"none") の両方を持たなければなりません。文字のみのスライドは拒否されます。 - ティア文字は5文字以内(数字/記号/ブランドキーワードが優先 — 詳細は
references/tier-letter-selection-rules.md参照)。 - PIPウィンドウは重複不可、0.3秒以上の間隔を空けること。
- ベトナム語タイトルはすべてのダイアクリティカルマークを含むこと。ブランド名と数式記号は英語のままにします。
パイプライン
1. シーンを検出する
script.txt + transcript.json (または transcript-cleaned.json) を読み込みます。エディタの detect_scenes.py が存在すればそれを再利用し、存在しなければ5シーンのヒューリスティック(フック → 問題 → 解決策 → 要約 → CTA)にフォールバックします。
リスト形式サポート: リスト形式のスクリプト (1フック + N個のヒント + 1CTA) → 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を持つBロールメタファー、相対・絶対タイミングを持つpip_eventsを含みます。- デフォルトのメタファー「robot-orb-with-tasks」は、ファンアウト前にシーン固有のメタファー (
scroll-tape-wasted,edit-regenerate-loop,projects-vault-shared-knowledge,right-tool-for-job-vehicles,pacific-vs-vietnam-timezone, …) に置き換えるべきです (オーケストレーターLLMの手動編集による) — 汎用メタファーは退屈なコンポジションを生みます。 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 | フォールバック |
|---|---|---|
| フック | before-after | number-infographic |
| 問題 / 失敗 | icon-grid | iceberg |
| ピボット | before-after | flowchart |
| 解決策 | three-pillar | flowchart |
| 差別化要因 | comparison-table | venn |
| 証明 / 結果 | number-infographic | comparison-table |
| 要約 | 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)。純粋な構造図の方が明瞭な場合 (例: 機能チェックの comparison-table) にのみ "none" を設定します。
4. ティア文字、アイテム、バッジを導出する
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秒前で打ち切り)。長い解決策シーン (12秒以上) は2ウィンドウ。フックはなし。
6. prompts.md をレンダリングする
render_infographic_prompts.py は visual-plan.json を走査し、各プロンプトの先頭に visual_type ディレクティブを挿入し、メタファー + 装飾要素 + パレットを重ねます。結果はそのまま貼り付け可能なクリームペーパー編集用プロンプトです。
ユーザーとのチェックポイント
plan_visuals.py 実行後、マークダウンサマリー (生JSONではない) を表示します — 詳細は references/plan-checkpoint-protocol.md を参照。形式:
### シーン1 · フック (0.07–13.73秒)
- ビジュアルタイプ: **before-after** → HyperFrame `tier-row`
- ティア文字: **8h → 0h** (ローズ ↔ ライム)
- メタファー: **砂時計 (いっぱい↔空)** (1.png)
- PIP: なし (フックシーン)
### シーン3 · 解決策 (27.37–47.75秒)
- ビジュアルタイプ: **three-pillar** → HyperFrame `hero-orb`
- スペック: ∞ 会話を覚える · 100tr ドキュメントを読む · 8h 自分で撮影
- メタファー: **robot-orb-with-tasks** (3.png)
- PIP: 28.77→32.77秒 + 34.37→38.87秒
ユーザーの返信パターン:
OK→ 確定 + エディタに引き継ぎシーンNのvisualをfunnelに変更→visual_typeを修正シーンNのmetaphorをカタツムリに変更→metaphorを修正 +prompts.mdを再レンダリングシーンNのtier-letterを25に変更→tier_letterを修正シーンN+Mを統合→ 再アウトライン
ファイル
mkt-plan-short-video-edit-16-9/
├── SKILL.md
├── scripts/
│ ├── plan_visuals.py ← メイン。 --workspace <dir>
│ ├── render_infographic_prompts.py ← visual-plan.json → prompts.md
│ └── apply_plan_to_scenes.py ← visual-plan.json → scenes.json (エディタシム)
├── assets/templates/
│ ├── visual-plan.schema.json ← JSONスキーマ (visual_type + metaphor 必須)
│ └── infographic-prompt.j2 ← Jinja: 構造ディレクティブ + メタファー + パレット
└── references/
├── visual-thinking-types.md ← 15の構造タイプ (主要なレンズ)
├── visual-thinking-library.md ← 25のメタファーエントリ (イラストレーション層)
├── tier-letter-selection-rules.md ← グリフ選択ツール
├── scene-archetype-pattern-mapping.md ← アーキタイプ → バリアント + メタファー決定木
└── plan-checkpoint-protocol.md ← サマリーテンプレート + 修正ハンドラ
実例
制作プロジェクト loi-ich-claude-ai:
| シーン | 種類 | visual_type | メタファー | ティア | HyperFrameバリアント |
|---|---|---|---|---|---|
| 1 | フック | before-after | dong-ho-cat | 8h / 0h | tier-row |
| 2 | 問題 | icon-grid | broken-chain | 3× | chats-stack |
| 3 | 解決策 | three-pillar | robot-orb-with-tasks | ∞ / 100tr / 8h | hero-orb |
| 4 | 要約 | 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 . を実行すると、このテーブルが再導出されるべきです。