用途
HyperFrames Slideshow 用于创作 HyperFrames 演示幻灯片——一种包含离散幻灯片、分步揭示、分支、热点导航的演示文稿、pitch deck 或交互式 deck。如果用户明确要求 slideshow、slide show 或 HyperFrames slideshow,可使用本技能。若请求经由 /hyperframes 进入,意图分诊层已完成确认,无需再次询问。当出现 BRIEF.md 时,其中包含已确认的意图。
主要能力
输出形态
slideshow 的输出是可运行的 deck,使用 hyperframes present <project-dir>(或 Studio present 模式)提供服务。播放器的 SlideshowController 读取 island 并驱动导航、fragments、分支和演示者模式。
不要用 hyperframes render 将 slideshow 渲染为单个 MP4。deck 由多个顶层场景组合(每个幻灯片一个 data-composition-id)构成,没有 master-root 组合包裹它们,render 只会解析第一个组合并输出被静默截断的 MP4。线性主 line 导出(仅主幻灯片,排除分支序列)尚未提供;目前支持的输出是实时 present deck 和每张幻灯片的快照静帧。若用户当前需要线性 MP4,应向用户说明此限制,而不是将 render 指向 deck。
场景声明
每张幻灯片由一个场景支撑,使用 data-composition-id、data-start、data-duration、data-label 声明。分支幻灯片用完全相同方式声明,但只出现在 island 的 slideSequences 条目中,不出现在主 slides 数组中。
JSON island
每个组合 HTML 中添加恰好一个 <script type="application/hyperframes-slideshow+json"> 块,保存所有 slideshow 元数据(slides 和 slideSequences)。island 是幻灯片顺序、备注、fragment 停靠点、热点和分支序列的唯一事实来源,应放在 <body> 顶部附近。不要用替代的 <script type="application/json"> 块加运行时脚本隐藏 manifest,因为 present 命令静态读取组合 HTML,期望真实的 island 已存在。
幻灯片编写规则
- 标题是完整句子的主张,而不是标签。
- 每张幻灯片一个观点加一个视觉元素,如需第二组要点或第二张图表,应拆分幻灯片。
- 先给出punchline,最强观点优先。
- 仅使用自下而上的市场规模估算,展示计算过程。
- 字体最小 30pt 等效值,任何观众需要阅读的文字不低于 40px。
- 手工构建任何具名视觉元素前,先搜索实时目录。
使用方式
首先保持技能更新:运行前先与用户确认 npx hyperframes skills update slideshow。这是一个快速空操作(当一切最新时),否则会在依赖前刷新本技能及其依赖的核心领域技能。
若 deck 内容或故事板来自 figma.com URL,先运行 /figma(资产导出、品牌 token、故事板重建),再基于其输出构建。不要直接通过原始 MCP 工具驱动 Figma。
搜索实时目录:对每张幻灯片需要的视觉、效果、图表等运行 npx hyperframes catalog --query "<视觉描述>" --json,读取顶部结果后再编写幻灯片的 clips。npx hyperframes add <name> 会将块源码放入 deck。
适用场景
- 演示文稿、pitch deck、交互式 deck 创作
- 将现有页面转换为 slideshow(需保持源页面保真度)
- 需要离散幻灯片、内置导航和演示者模式的场景
限制
- 不能渲染为线性 MP4;render 只解析第一个组合并截断输出。
- 线性主 line 导出功能尚未提供。
- TTS 相关字段(ttsScript、ttsAudioUrl、ttsDurationMs)为保留字段,TTS 播放尚未接通,除非为未来构建预填充,否则应省略。
- 需要用户确认意图;用户否定时应停止使用本技能。