Files
teamai-test/.teamai/skills/common/web-video-presentation/references/OUTLINE-FORMAT.md
T

8.3 KiB
Raw Blame History

outline.md 格式 spec

视频章节规划的产出文件。用户可以直接编辑,所以格式必须人类友好 (用 markdown 不用 JSON / YAML)。

!重要:阅读此文件后必须继续阅读 CHAPTER-CRAFT.md 的全部内容,了解对网页效果的真实需求,然后再开始编写 outline

⚠️ outline 是开发计划,不是视觉规划

outline 只规划节奏 + 内容 + 信息密度:

  • 章节切分 / 每章 step 数 / 每步估时
  • 每步屏幕内容(hero / 标语 / 数据 / 列表项)
  • 章节级信息池(从 article 抽的数字 / 引用 / 案例 / 标签)

outline 里的 step 数是初始预估。最终 step 数以章节实现时的 narrations.ts 为准——后者既是 step 数源,也是音频合成源 (详见 CHAPTER-CRAFT.md 「代码层最小约束」+ AUDIO.md)。如果实现时章节 step 数和 outline 不一致, 回过来同步 outline 即可,不需要纠结"对得严丝合缝"。

写 outline 前必读(双源原则,CHAPTER-CRAFT.md Part 0 原则 10):

  • script.md —— 决定节拍:按 --- 切节拍,每节拍 1~2 step、估时
  • article.md(如有)—— 决定画面信息密度:每章首段抽信息池

抽象示例(看格式)

# Video Outline

> **主题**:`<theme-id>`(Checkpoint Plan 已选定)—— <一句话风格描述>
> **总时长**:约 <T> 分 <S> 秒(口播 ~<X> 字 ÷ 4 字/秒)
> **章节数**:<N> 章 / <M> 步

---

## 1. <chapter-id> — <章节标题>(<S> steps · ~<T>s)

**信息池**(chapter agent 按需挂角标 / 副标 / pull-quote / mono cue):
- <类型:数字 / 引用 / 出处 / 案例 / 词义 / 时间 / 对比 / ...>:<内容> —— <来源 article §X / Lxx>
- ...

**开发计划**:

- step 1 (~Ts) — <屏幕内容>
- ...

口播节选:
> <1~3 句节选,对应到 script.md 完整文本>

---

## 2. <chapter-id> — ...

关于时长:outline 里只写 step 的 (~Ts) 口播估时(音画对齐 用),绝对不写动画时长 / 错峰量 / keyframe 数值。这些都在章节开发 阶段决定(CHAPTER-CRAFT.md Part 3 时长参考)。

想看具象示例:


字段约定

顶部 metadata block

用引用块(>)形式,方便扫一眼整体规模:

字段 必填 说明
主题 ✓ Checkpoint Plan 必须已选定。chapter agent 实现时按主题颜色 / 字体 token 走,动画 / 节奏 / 视觉演示由章节自由发挥
总时长 ✓ 估算口播时长(中文 ~ 250 字 / 分钟)
章节数 ✓ N 章 / M 步

章节标题:## N. <id> — <title>(<S> steps · ~<T>s)

部分 规则
N 1-indexed 顺序,对齐 chapters.ts 的注册顺序
<id> 小写 + 连字符。会成为 React key / 文件夹名 (src/chapters/0N-<id>/) / 音频子目录 (public/audio/<id>/)
<title> 给人看的中文标题。不会进 React 代码
<S> steps 该章 step 总数
~<T>s 该章口播总估时(中文 ~ 4 字/秒)

合法 id:coldopen、hook、why-good、why-good-text-render。 不合法:why_good(用连字符)、Hook(小写)、第一章(拉丁字符)。

章节首段「信息池」(双源原则核心落地)

每章独立列出从 article.md 抽的细节集合,让 chapter agent 实现每步 画面时按需取用——可能挂成右下角 mono 角标 / 副标小字 / pull-quote 引用 / 数据浮层。

信息池条目格式

- <类型>:<具体内容> —— <来源 article §X / Lxx 或简注>

没 article(用户直接给 script):信息池退化为"主动设计画面信息 密度"——靠数字 / 对比 / 元数据等让画面比口播信息密。可以列"画面 装饰元素池"而非"article 抽取池"。

Step 列表:每步 1 行

- step N (~Ts) — <屏幕内容>
规则 原因
step N 1-indexed agent 实现时 if (step === N - 1) ...(注意零基偏移)
(~Ts) 必填 按 script.md 本步对应口播段字数 ÷ 4 估算(中文 ~ 4 字/秒)。范围 3~10s
屏幕内容 一句话讲清楚这一步舞台上有什么:hero / 标语 / 数据 / 装饰元素。≤ 1 行,再多就该拆 step
不写动画 写死 = 翻译机化(详见本文件顶部框)
不写时长数值 / 错峰量 这些在章节开发阶段决定
不写实现手段 filter / SVG / Canvas 选型留给 chapter agent

口播节选(每章末尾,可选但推荐)

精炼 1~3 句,不是完整稿子,仅供章节规划阶段对照"这章在讲什么"。 完整文本回 script.md。outline.md 章节 = script.md 中两个明显 主题切换之间的段落。

音频合成(AUDIO.md)会回到 script.md 切分完整 文本,不用 outline 节选。


命名规则速查

对象 规则 示例
章节 id 小写 + 连字符 coldopen, why-good
章节文件夹 0N-<id> src/chapters/01-coldopen/
章节组件 PascalCase Coldopen.tsx, WhyGood.tsx
章节 CSS 类前缀 章节缩写(避免跨章冲突) .cd- / .wg- / .mg-
音频子目录 <id>/ public/audio/coldopen/
音频文件 <step-N>.mp3 (1-indexed) public/audio/coldopen/1.mp3

章节切分的经验法则

  • 每章 3~8 步。少于 3 步太薄;多于 8 步观众会忘记这章在讲啥
  • 总时长 ÷ 30 秒 ≈ 章节数(一章约 30~60 秒讲完)
  • 每章 = 一个聚焦主题。"为什么强 + 怎么用" 是两章,不是一章
  • 章节边界 = 口播稿里讲者会换语气 / 换主题的位置。读 script.md 时哪里你下意识想"咳一声接下一段",那里就是章节边界
  • 慢节奏 / 长镜头风主题(midnight-press / 电影感片头)每章可少到 23 step;信息密集型(科技测评 / 对比表)每章可放宽到 810 step

素材清单(outline.md 末尾)

## 素材清单

### 1. coldopen
- ✓ <资源 1 描述> (<已就位路径>)
- ⚠️ <资源 2 描述>(待提供)
- ⚠️ <资源 3 描述>(待提供)

---

## 自检(写完 outline **强制**执行,不可跳过)

> ⚠️ **硬性流程**:outline 写完后**必须**走自检 → 修改 → 提交 三步。
> **禁止**写完直接进入 Checkpoint Plan 让用户对齐。
>
> **执行方式**(按能力降级):
>
> 1. **优先 Agent Teams**:开一个独立 reviewer agent,传入 `outline.md`
>    + 本节自检清单 + `script.md` / `article.md` 路径,让它**逐项核查 +
>    出结论**(哪几条 fail + 证据)。
> 2. **其次 subAgent**:当前 agent 没 Teams 但能开 subagent,用 subagent
>    走同样流程。
> 3. **都没有**:自己**严格逐项**核查。
>
> 拿到结论后**先按 fail 项改 outline,再进入 Checkpoint Plan**。

- [ ] 每个 step 都是**单一句屏幕内容描述**,没有"动画"行 / "手段"行
- [ ] 没有任何 step 写了具体毫秒 / 秒数(除 `(~Ts)` 口播估时)
- [ ] 每章首段都有「信息池」block,至少 3 条 article 抽取项,**每条
      必带来源标注**(`—— 来源 article §X / Lxx`)—— 没标注 chapter agent
      回不到原文
- [ ] **所有 step `(~Ts)` 累加 ≈ 顶部声明的总时长**(误差 < 10%)—— 不
      一致说明节奏规划失真
- [ ] 章节切分符合"每章 3~8 步 / 30~60s 一聚焦主题"经验
- [ ] 末尾「素材清单」分章节列出,✓ / ⚠️ 标注清楚
- [ ] 脚本不得包含标题、序号等非口播内容,仅包含人类正常可读的内容

写完看一眼:**outline 是不是干净到 chapter agent 看了能立刻开工 + 还有
设计空间**?是 = 合格。如果你看了都觉得"太空,agent 不知道动画选什么"