mkt-plan-short-video-edit-16-9
針對 16:9 投影片影片的雙層規劃器:
- 結構層(15 種視覺思維類型) — 投影片佈局:Before-After、心智圖、流程圖、矩陣 2×2、文氏圖、時間軸、金字塔、比較表、冰山、循環、漏斗、概念圖、圖標網格、數字資訊圖、三支柱。由場景原型驅動(鉤子 → before-after、問題 → icon-grid、解決方案 → three-pillar 等)。
- 插圖層(25 種隱喻庫) — 手繪奶油紙風格圖像,嵌入結構內部:沙漏、斷鏈、機器人球體、破豬撲滿、蝸牛 ↔ 火箭、樂高積木、階梯、鑰匙鎖、山頂等。
輸出 JSON 由編輯器 mkt-hyperframe-talking-head-video-16-9 消費 — 以可重現的規劃取代 scenes-outline 檢查點的手動填充。
輸出
| 檔案 | 內容 |
|---|---|
visual-plan.json | 符合 Schema 驗證。每個場景包含: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) | 編輯器格式橋接。 |
Schema(一頁摘要):
{ 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-paper類型的 B-Roll 必須同時包含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 場景啟發法(鉤子 → 問題 → 解決方案 → 總結 → 行動呼籲)。
清單式支援: 具有清單結構(1 個鉤子 + N 個提示 + 1 個行動呼籲)的腳本 → 產生 N+2 個場景。主體場景使用 kind: “tip-1”、”tip-2”、…、”tip-N” — 下游編輯器的 generate_root_index.py 會將它們掛載為 compositions/scene-{num}.html,無論 N 為何(無 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 生成器)。相反地,它會在單一訊息中產生 N 個平行的 general-purpose 代理 — 每個場景一個子代理 — 每個代理根據此技能的 visual-plan.json 撰寫 compositions/scene-{num}.html。
這意味著:
visual-plan.json中的每個場景區塊必須足夠自包含,讓隔離的子代理能夠在無需協調的情況下撰寫其合成 — 包含完整的 kicker、heading、accent_words、tier_letter、items、badges、帶有layout_description的 broll 隱喻、以及帶有相對+絕對時間的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 層級(index.html 中的
<img id=”broll-N”>)。合成 HTML 不得嵌入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 |
| 行動呼籲 | 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. 推導 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 秒)。長解決方案場景(≥ 12 秒)可有 2 個視窗。鉤子場景無 PIP。
6. 渲染 prompts.md
render_infographic_prompts.py 遍歷 visual-plan.json,在每個提示頂部插入 visual_type 指令,然後疊加隱喻、裝飾元素和調色板。結果是可直接貼入的奶油紙編輯提示。
與使用者檢查點
plan_visuals.py 執行後,以 Markdown 摘要呈現(非原始 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→ 最終確定並移交給編輯器đổi scene N visual sang funnel→ 修改visual_typeđổi scene N metaphor sang ốc sên→ 修改metaphor並重新渲染prompts.mdđổi tier-letter scene N thành 25→ 修改tier_lettergộp scene N+M→ 重新規劃
檔案
mkt-plan-short-video-edit-16-9/
├── SKILL.md
├── scripts/
│ ├── plan_visuals.py ← 主要程式。--workspace <目錄>
│ ├── 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 Schema(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 | 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 . 應能重新推導出此表。