HyperFrames 入口点
HyperFrames 通过 HTML 渲染视频 —— 一个合成(composition)就是一份 HTML 文件,其 DOM 使用 data-* 属性声明时间线,动画运行时支持寻址(seekable),媒体播放由框架管理。完整的创作规范位于 /hyperframes-core;在编写合成 HTML 之前务必阅读它。
1. 从项目状态开始
应用第一个匹配的行;不要评估较低的状态行:
| 状态 | 操作 |
|---|---|
| 明确将现有 Remotion 源移植到 HyperFrames | 阅读 references/routes/remotion-to-hyperframes.md,然后直接路由到该工作流。跳过意图层。 |
| 对现有 HyperFrames 项目执行特定操作:检查、诊断、验证、预览、渲染、发布或批量渲染 | 仅执行该操作。跳过意图和工作流路由;加载 /hyperframes-cli 和任何必需的领域技能。 |
| 对现有项目进行特定编辑 | 进行编辑。不要运行意图层。 |
存在 BRIEF.md | 读取 workflow 和 flow。执行该工作流;flow: companion 总是在 /general-video 中执行。不要询问简报相关问题。 |
无简报,但存在 hyperframes.json 或 STORYBOARD.md | 从项目文件和记录的偏好中恢复。从现有工件推断所属工作流。如果无法唯一确定,询问一个仅用于路由的问题;不要进行意图访谈。 |
| 全新创作 | 运行意图层 —— references/intent-interview.md —— 然后使用 § 2 的表格进行路由。 |
如果新请求未指明主题或输入,请在路由之前先询问视频内容是什么。在询问任何问题之前,先检查偏好和配方(references/intent-interview.md,步骤 1)。figma.com 输入或命名配方会改变获取方式,而不是路由 —— 访谈的“适配正交输入”部分处理这两者。
保持项目 CLI 最新
脚手架项目会在其 package.json 脚本中锁定 hyperframes@<version>,以确保渲染结果可重现;此锁定绝不会自动升级,且使用旧版 CLI 运行被锁定的项目时不会打印警告。当恢复一个脚本中携带锁定版本的项目时,在第一个影响渲染的命令之前探测一次:
npx hyperframes@latest upgrade --project . --check
探测是只读的,报告锁定版本与最新版本的关系;请保留显式的 . —— 在较旧的 CLI 版本上,裸的 --project 后跟另一个标志会将该标志当作目录值。当它报告项目版本落后时——或者任何 CLI 输出已经显示了(被锁定脚本的 stderr 通知 This project pins hyperframes@… (latest …),或 --json 结果中的 _meta.updateAvailable: true)——使用 npx hyperframes@latest upgrade --project . 应用升级,然后用 npx hyperframes check 验证。验证通过确认项目的合成在新版本上仍然有效——而不是渲染输出与旧锁定版本帧一致——因此一次成功的升级永远不会无声无息:在运行的摘要中说明旧版本和新版本。尚无任何合成的项目不需要验证。如果检查失败,还原 package.json 的更改,继续使用被锁定的版本,并报告项目停留在哪个版本及原因。对信号采取行动,而不是将其转达给用户;永远不要留下未经验证的锁定版本升级。
2. 路由全新创作
使用第一个匹配的行。匹配请求的交付物,而不是偶然提到的单词或文件类型。
| 优先级 | 请求 | 工作流 |
|---|---|---|
| 1 | 明确移植现有的 Remotion 源 | /remotion-to-hyperframes |
| 2 | 创作演示文稿、推销 deck 或可导航的交互式简报 | /slideshow |
| 3 | 为现有谈话头视频添加纯字幕或副标题,不改变视频本身 | /embedded-captions |
| 4 | 为现有谈话头、访谈或播客视频添加设计的图形覆盖层,不改变视频素材本身 | /talking-head-recut |
| 5 | 根据音乐轨道构建节拍同步视频,无旁白或网站捕获 | /music-to-video |
| 6 | 创建明确简短、无旁白、以动作为主的内容,通常少于 10 秒 | /motion-graphics |
| 7 | 解释来自 PR 引用的 GitHub 拉取请求或代码更改 | /pr-to-video |
| 8 | 根据 URL 或特定网站的简报营销或展示网站、产品页面、应用或公司 | /product-launch-video |
| 9 | 使用虚构视觉效果(无产品或网站捕获)解释主题、文章或笔记 | /faceless-explainer |
| 10 | 任何其他自定义视频或合成 | /general-video |
在最终确定路由之前,阅读 references/routes/<workflow>.md —— 每个路由一个小文件:包含规范的输入/输出/触发器契约(在懒加载的工作流技能可用之前),以及该路由的访谈入口。如果候选路由不满足其契约,则继续路由而不是强制匹配。仅读取匹配的路由文件。
解决常见歧义
- 一个短动画标题、logo 展示、数据命中、图表命中、地图命中或独立下三分之一,如果无旁白且动作为主要信息,则为
/motion-graphics。静态标题卡、有旁白的序列、较长的蒙太奇或自定义循环则为/general-video。 - 一个明确短的动态图形可能使用 URL、推文、文章或截图作为源材料。一个泛泛的“从这个网站制作视频”的请求是
/product-launch-video。 - 现有素材带字幕路由到
/embedded-captions;素材带设计信息卡路由到/talking-head-recut。对素材进行重新定时、重新排序、重新着色、重新构图或混音是自定义编辑,会落入/general-video。 - 只有当音乐文件的节拍网格驱动作品时,才将其选择为
/music-to-video。用作背景音乐的音乐不会覆盖与主题匹配的路由。 - “我想要一个故事板”会改变审核过程,而不是工作流。没有其他路由信号时,使用
/general-video。一个已确认的草图故事板本身可能就是请求的交付物;审核循环定义了该停止点。 - 专门的叙事工作流支持最多约 3 分钟,并且在 30–90 秒左右效果最好。明显更长的作品路由到
/general-video。长度永远不能覆盖明确的移植、deck、字幕、覆盖层或音乐驱动的交付物。
3. 路由一次,然后离开
对于全新创作,意图层(references/intent-interview.md)运行完整的对话——记忆、分类、推介环节、必备项、运行形态、交接——并且以编写 BRIEF.md 结束。简报是工作流读取的唯一路由工件;此后任何操作都不会重新打开此技能或访谈。所有后续关于“路由要求了什么?”的问题都从 BRIEF.md 中回答。
4. 安装并进入工作流
在阅读选定的工作流之前,安装或刷新它以及核心领域技能:
npx hyperframes skills update <workflow-name>
使用不带 / 的裸名称。如果命令失败,显示错误;不要凭记忆重建工作流。关于安装的所有其他内容——核心与懒加载的划分、init 刷新什么、诊断、CI 选择退出以及无 CLI 回退——都位于 references/skill-lifecycle.md。
5. 按需加载领域技能
| 需求 | 技能 |
|---|---|
| 合成结构、时间属性、轨道、变量、确定性 | /hyperframes-core |
| 动画规则、场景蓝图、过渡、运行时适配器 | /hyperframes-animation |
可寻址 GSAP、CSS、Anime.js、WAAPI、FLIP、路径、蒙版、SVG、3D 关键帧或 hyperframes keyframes 诊断 | /hyperframes-keyframes |
| 设计规格、概念、调色板、排版、旁白、节拍规划 | /hyperframes-creative |
| 图像、图标、徽标、音频、字幕、调色、LUT、可重用媒体 | /media-use |
| 旁白剪辑、音频效果链或轨道上的自动化包络 | /hyperframes-audio |
| 初始化、lint、检查、快照、比较、批量渲染、Studio、渲染、发布或诊断 | /hyperframes-cli |
| 注册表块和组件 | /hyperframes-registry |
| Figma 资源、令牌、组件或故事板帧(作为重构的运动) | /figma |
关于摄影媒体外观或行为的广泛反馈也会路由到 /media-use,即使用户从未说过“调色”或“效果”:修复暗/平/无聊的素材、风格化剪辑、隐藏面部或改善媒体展示。在编辑处理方式之前,阅读 ../media-use/references/media-treatments.md;它规范了如何处理素材,但从不决定是否可以使用媒体。不要用通用的 LUT、CSS 滤镜/覆盖层或不透明度过渡替换现有的规范处理原语。将仅涉及文本/布局/动画的编辑保留在其所属领域。
在构建包含重要摄影媒体的过程中,在最终质量检查中包含一次合理的媒体润饰扫描;不碰合适的媒体也是一个有效的结果。
领域技能永远不会接管端到端交付物的所有权。仅加载活动工作流所需的内容。