HyperFrames 入口点
HyperFrames 从 HTML 渲染视频——一个合成就是一个 HTML 文件,其 DOM 使用 data-* 属性声明时间线,动画运行时可定位,媒体播放由框架控制。完整的创作规范位于 /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@<版本>,以确保渲染结果可重现;该固定版本永远不会自行升级,而使用旧版本 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 中的更改,继续使用固定版本,并报告项目停留在哪个版本以及原因。根据信号采取行动,而不是将其 relay 给用户;绝不要留下未验证的升级固定版本。
2. 路由全新创作
使用第一个匹配的行。匹配所请求的交付物,而不是偶然提到的单词或文件类型。
| 优先级 | 请求 | 工作流 |
|---|---|---|
| 1 | 显式移植现有的 Remotion 源代码 | /remotion-to-hyperframes |
| 2 | 创作演示文稿、推介文稿或可导航的互动演示 | /slideshow |
| 3 | 为现有的人物镜头视频添加纯字幕或副标题,但不更改原视频 | /embedded-captions |
| 4 | 为现有的人物对话、采访或播客镜头添加设计好的图形覆盖层,但不更改原视频 | /talking-head-recut |
| 5 | 根据音乐轨道构建一个节拍同步的视频,无旁白或网站捕获 | /music-to-video |
| 6 | 创建一个明确简短、无旁白、以动作为主的单元,通常时长不超过 10 秒 | /motion-graphics |
| 7 | 根据 PR 引用解释 GitHub 拉取请求或代码变更 | /pr-to-video |
| 8 | 通过网址或特定网站的简要介绍,营销或展示网站、产品页面、应用或公司 | /product-launch-video |
| 9 | 通过原创视觉效果(无产品或网站截图)解释一个主题、文章或笔记 | /faceless-explainer |
| 10 | 任何其他自定义视频或合成 | /general-video |
在最终确定路由之前,请阅读 references/routes/<工作流>.md —— 每个路由对应一个小文件:标准的输入/输出/触发器合约(在懒加载的工作流技能存在之前可用)以及该路由的访谈条目。如果候选路由不满足其合约,则继续路由,而不是强制匹配。只读取匹配的路由文件。
解决常见歧义
- 一个短动画标题、标志开场、数据统计、图表 hit、地图 hit 或独立的下三分之一,当它无旁白且动作为主要信息时,属于
/motion-graphics。静态标题卡、有旁白的序列、较长的蒙太奇或自定义循环,属于/general-video。 - 一个明确短小的动态图形可以使用网址、推文、文章或截图作为源材料。一般的“用这个网站做个视频”请求,属于
/product-launch-video。 - 带有字幕的现有素材路由到
/embedded-captions;带有设计信息卡的素材路由到/talking-head-recut。调整素材的节奏、重新排序、重新着色、重新构图或混合,属于自定义编辑,回退到/general-video。 - 音乐文件只有在节拍网格驱动作品时才选择
/music-to-video。用作背景音乐时,不覆盖主题匹配的路由。 - “我想要故事板”会改变审查流程,而不是工作流。没有其他路由信号时,使用
/general-video。确认的草图故事板本身可能是所请求的交付物;审查循环定义了那个停止点。 - 专门的叙事工作流支持大约 3 分钟以内的内容,在 30-90 秒范围内效果最佳。明显更长的作品路由到
/general-video。时长永远不会覆盖显式移植、演示文稿、字幕、覆盖层或音乐驱动的交付物。
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 |
| 初始化、lint、检查、快照、比较、批量渲染、Studio、渲染、发布或诊断 | /hyperframes-cli |
| 注册表块和组件 | /hyperframes-registry |
| Figma 资源、令牌、组件或故事板帧(作为重构的运动) | /figma |
关于摄影类媒体外观或行为的广泛反馈也会路由到 /media-use,即使用户从未说过“调色”或“效果”:修复暗淡/平淡/无聊的素材、样式化剪辑、隐藏脸部或改进媒体展示。在对素材处理进行编辑之前,请阅读 ../media-use/references/media-treatments.md;它规定了如何处理素材,但绝不涉及是否可以使用媒体。不要将通用的 LUT、CSS 滤镜/覆盖层或不透明度补间替换为现有的规范处理原语。将仅文本/布局/运动相关的编辑保留在其所属领域。
在构建包含重要摄影媒体的项目时,在最终质量检查中包含一次扎实的媒体润色扫描;保持合适的媒体不变也是有效的结果。
领域技能绝不会接管端到端交付物的所有权。仅加载活动工作流需要的技能。