mkt-plan-short-video-edit-16-9
16:9 幻灯片视频的两层规划器:
- 结构层(15种视觉思维类型) — 幻灯片布局:Before-After(前后对比)、Mind Map(思维导图)、Flowchart(流程图)、Matrix 2×2(2×2矩阵)、Venn(韦恩图)、Timeline(时间线)、Pyramid(金字塔)、Comparison Table(对比表)、Iceberg(冰山图)、Cycle(循环图)、Funnel(漏斗图)、Concept Map(概念图)、Icon Grid(图标网格)、Number Infographic(数字信息图)、3-Pillar(三支柱)。由场景原型驱动(hook → before-after, problem → icon-grid, solution → 3-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-paperB-roll 必须同时携带visual_type(15种之一)和metaphor(25种之一,纯结构图可用"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 会将其挂载为 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 层(
<img id="broll-N">在 index.html 中)。合成 HTML 不得嵌入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)。仅当纯结构图更清晰时(例如功能检查的 comparison-table)才设置 "none"。
4. 推导层级字母、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.3s)。长解决方案场景(≥ 12s)可获得2个窗口。Hook 场景无 PIP。
6. 渲染 prompts.md
render_infographic_prompts.py 遍历 visual-plan.json,在每个提示顶部注入 visual_type 指令,然后叠加隐喻 + 装饰元素 + 调色板。结果是一个可直接粘贴的奶油纸编辑提示。
用户检查点
plan_visuals.py 运行后,呈现一个 Markdown 摘要(不是原始 JSON)— 参见 references/plan-checkpoint-protocol.md。格式:
### 场景1 · HOOK(0.07–13.73s)
- 视觉类型:**before-after** → HyperFrame `tier-row`
- 层级字母:**8h → 0h**(玫瑰 ↔ 青柠)
- 隐喻:**沙漏满↔空**(1.png)
- PIP:无(钩子场景)
### 场景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→ 最终确定 + 移交给编辑器đổ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 <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 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 . 应能重新推导出此表。