Communitygithub.com

SaaS启动视频制作工具包

利用HyperFrames CLI开发循环,涵盖初始化、添加素材、编目、捕获、检查、快照、比较、渲染、发布、云渲染、反馈、Lambda、医生、浏览器、信息、升级、技能、合成、时间线、历史记录、清理、文档、基准测试、遥测、转录、认证、TTS和背景移除等功能。也用于诊断构建或渲染失败。

SaaS启动视频制作工具包 是什么?

这个技能为AI代理提供了一个完整的视频制作工作流,基于HyperFrames CLI工具链。它支持从项目初始化、资产编目、关键帧动画创作,到最终渲染和发布的全流程开发循环。核心工作流程包括:使用`npx hyperframes init`创建项目,通过`catalog`和`add`命令搜索和安装预定义动画效果,用`lint`和`check`进行代码质量检查,并通过`preview`、`snapshot`和`render`命令获得即时反馈和输出。技能强调在手动编写动画前优先搜索现有素材,以及使用`--json`标志进行高效的AI通信。它支持多种渲染目标:本地快速迭代(草稿质量)、首次实际编码(外观质量)、最终交付(交付质量),以及通过Docker、HeyGen云、AWS Lambda和Google Cloud Run进行的远程渲染。此外,还包含子合成烟雾测试、元素选择会话上下文查询、项目历史记录管理(用于撤销更改)和主语料库搜索反馈机制等功能。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AntlersSam/saas-launch-video-kit/tree/HEAD/skills/hyperframes-cli

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

插件安装: 在执行设置或刷新命令之前,如果此技能位于HyperFrames插件内,请遵循插件执行规则。独立安装则保留下面的更新说明。

HyperFrames CLI

除非项目说明提供了包装器,否则以 npx hyperframes ... 运行命令。如果存在包装器,请遵循它。CLI需要Node.js 22或更高版本以及FFmpeg。

开发循环

  1. 脚手架: npx hyperframes init <project>(居中空白)。或者捕获一个网站。仅当要从命名示例开始时传递 --example=<name>。
  2. 找到动作: 如果请求指定了资产、声音、图像、语音或快速视觉编辑,请在提出计划之前通过 /media-use 解决。否则,在手动编写动画之前,先搜索已经实现该效果的图元:npx hyperframes catalog --query "逐行显示标题"。描述你想要的效果,而不是你脑海中的机制。使用 npx hyperframes add <name> 安装(参见 /hyperframes-registry)。只有在找不到匹配的图元时才手动编写。
  3. 创作: 使用 /hyperframes-core 编写合成。要了解项目时间线上的内容(轨道、剪辑、开始、结束、播放内容),运行 npx hyperframes timeline --json,而不是读取 index.html 和每个子合成文件:嵌套行携带绝对主时间线 absStart/absEnd 及其所属的 file,而不仅仅是它们本地每个子合成的时间。优先使用 --json 而不是文本形式;它花费更少的token,同时获得相同或更好的正确性。参见 references/upgrade-info-misc.md,了解无需读取整个输出即可回答常见问题的单行代码。
  4. 编辑时获取快速反馈: 在第一次HTML遍历之后以及结构性更改之后,运行 npx hyperframes lint。
  5. 运行最终关卡: 运行 npx hyperframes check;它会在打开浏览器之前重新运行lint。不要添加多余的独立lint调用。添加 --snapshots 以获取带注释的概览帧和裁剪区域。
  6. 检查子合成: 当 index.html 挂载 data-composition-src 时,捕获中点快照并检查每个挂载的场景。
  7. 打开最终Studio预览: 运行 npx hyperframes preview --background,验证URL返回HTTP 200,将时间线项目URL交给用户,并询问是要修改还是渲染。保持其运行直到审核结束。
  8. 仅在批准后渲染: 迭代时使用 --quality draft,首次实际编码时使用 --quality looks(CLI默认),最终交付时使用 --quality delivery。
  9. 验证输出: 确认文件存在且不为空。读取渲染摘要的第二行(beginframe vs screenshot、GPU、阶段时序)。Linux上的 screenshot + software gpu 是慢速路径。ffprobe -v error -show_format -show_streams 并比较持续时间(以及如果简报中设置了fps)与根 data-duration。

你的回合中的项目历史

每次对项目的写入都作为可撤销的条目保留。仅在两个时刻使用它,而不是在每个步骤:

  • 回合开始时: npx hyperframes history begin --who <你的名字> --label "<你将要做什么>",然后 npx hyperframes history --since mine --who <你的名字> 以查看自你上一回合以来此人更改了什么。基于他们的编辑进行构建;切勿覆盖它们。
  • 检查失败,或此人表示情况变得更糟: npx hyperframes history undo --who <你的名字> 可撤销你最新的回合,并保留此人的编辑。不要手动恢复。如果发生冲突,它会以退出码2退出并打印两个选项。

每个回合以 npx hyperframes history end 结束,这样你的写入会被视为你的,而不是 "在应用外更改"。当回合打开时,每次对项目的写入都会计为你,直到10分钟没有写入;之后回合自动结束。

强制性的创作者-编辑交叉引用

  • 在创作或诊断缩放、切入/切出、重构、摄像机移动或任何关键帧动画之前,首先阅读 /hyperframes-keyframes。
  • 在 hyperframes keyframes 之前,阅读 /hyperframes-keyframes;该命令显示动画轨迹,不诊断剪辑剪切。
  • 对于剪切、修剪、拼接、重新排序或源时间编辑,阅读 /hyperframes-core 并使用其剪辑/时间线契约。
  • 对于淡入/淡出、交叉淡入、轨道增益、音量自动化、闪避、旁白雕刻或已放置音频上的FX,阅读 /hyperframes-audio。当剪辑放置或画面时间也更改时,同时加载核心文件。
  • 命名资产、声音、图像、语音或快速视觉编辑的请求在提出计划之前通过 /media-use 解决。 从 /hyperframes-core → references/creator-editing-recipes.md 复制创作者编辑标记。
# 快速迭代检查;在创作过程中根据需要重复。
npx hyperframes lint

# 必需的最终关卡;包括lint。
npx hyperframes check
npx hyperframes preview --background
npx hyperframes render --quality looks --output out.mp4
test -s out.mp4
ffprobe -v error -show_format -show_streams out.mp4

check 首先运行lint,然后使用一个浏览器会话和一个搜索传递来审计运行时错误、失败的请求、布局、*.motion.json 断言和WCAG对比度。持久性发现项会阻塞退出码;瞬态进入或退出发现项仅提供信息。使用 --strict 来阻塞警告。validate、inspect 和 layout 仍然是兼容性别名,但不得出现在新指令或脚本中。

渲染前预览

仅在 check 通过后打开最终合成预览(#project/<name>),以审核组装好的时间线。聊天中的计划和 storyboard.html 草图不是最终视频的批准。渲染始终需要由 hyperframes/references/review-loop.md 定义的最终批准。

子合成烟雾测试

静态审计无法捕获所有挂载失败。当项目使用子合成时,为每个主机槽捕获至少一个可见的中点:

npx hyperframes snapshot --at <t1>,<t2>,<t3>

将微小无样式内容、画布大小的图标、缺失的英雄元素或时间线注册超时视为阻塞渲染的挂载缺陷。参见 hyperframes-core/references/sub-compositions.md 以获取相应的修复方法。

代理约定

  • 在手动编写动画之前搜索目录。 npx hyperframes catalog --query "<用简单英语描述的节奏>"。搜索完全在本地进行:没有托管层,没有账户,查询文本永远不会被发送到任何地方。默认情况下,它根据与项目名称、标题、描述和标签共享的词汇进行排序,这会错过任何不重复使用目录自身措辞的措辞。添加 --on-device 以根据含义排序(参见下面的离线层)。

  • 即使视频不是英文,也用英文查询。 两个层都索引英文目录,因此另一种语言的查询不会产生可搜索的术语并返回空结果。用英文描述动作;屏幕上的副本保持视频需要的任何语言。查询中没有可搜索的词 正是这个意思,并且不是缺少组件,因此不要将其报告为目录缺口。

  • 读取哪个层回答了;永远不要从结果出现来推断。 使用 --json 时,信封携带 query、tier(on-device 或 words)、tier_detail、dropped、unindexed、shown、total 和 results,加上当回答层产生 top_score 时的 top_score,以及当请求的层无法运行、或搜索返回空且更好的层仍在等待某人同意时的 warnings。words 上的弱结果是预期的;on-device 上的相同结果是错误。top_score 仅限 on-device,并且背后没有阈值:排名器对每个查询以某种顺序返回整个目录,因此将其视为证据,而不是通过或失败。

  • dropped 和 unindexed 是注册表和 on-device 索引之间的相反偏差,并且重新措辞查询无法修复两者。 dropped 计算此注册表无法安装的排名名称,因此最强的匹配正在丢失。unindexed 计算索引完全看不到的注册表移动,任何查询都无法返回。刷新注册表不是解决这两个问题的答案:其清单带有24小时TTL并自行修复,而向量是单独发布的工件,提取到 ~/.hyperframes/catalog/ 中。当 unindexed 大于零时,使用 --on-device 重新运行会重新获取该索引,因此这是给用户的补救措施。单纯的过度覆盖偏差(dropped 大于零而 unindexed 为零)不会触发重新获取;清除 ~/.hyperframes/catalog/ 是解决该问题的唯一方法。两个计数都是名称而非结果,因此任一都可能超过 total。

  • 当搜索没有返回任何值得安装的内容时,要明确说明。 npx hyperframes feedback --search-miss "<你运行的查询>" --wanted "<你需要的动作>" --tier <回答的层>。你不需要自行组装该行:catalog --query 会预先填充打印它,并且每个 --json 搜索信封都将其携带为 report_gap,其中查询和层已经正确——填写 --wanted 并发送。这是唯一将查询发送到任何地方的路径,并且它是一个单独的刻意命令,正是为了确保普通的 catalog --query 保持其不发送任何内容的承诺。在任一层的任何情况下都要报告,只要结果没有做到所需的事情;不要等待 on-device 层,它需要经过同意的33 MB下载,因此在大多数代理运行中都是关闭的——等待意味着永远不会报告。层会随报告一起传递,因此词汇错误与含义错误保持可区分,而无需你判断自己遇到了哪一个。返回的是目录尚未拥有的动作列表,直接读取而不是根据安装计数猜测,因此重要的措辞是你想要的效果,而不是你想象的项目名称。它不携带评分,也永远不会进入评分指标。

  • 提供离线层;永远不要静默启用它。 一次性约33 MB下载(bge-small-en-v1.5 的量化ONNX构建及其分词器,固定到特定修订版)以及来自注册表的目录向量,两者都缓存在 ~/.hyperframes/ 下,不会添加到项目或任何包中。缓存后它根据含义排序,不发送任何内容。说出大小并让用户决定,然后在他们同意后传递 --on-device(使用 -y 跳过提示)。交互式提供仅会在TTY上触发。在 --json 下没有提示,但未找到任何内容的搜索会在 warnings 中放置相同的询问,因此读取该数组并将决定权交给用户。当用户询问下载内容、使用此模型的原因或什么离开机器时,请将他们指向 https://hyperframes.heygen.com/developers/catalog-search。

  • 优先对代理和CI调用使用 --json。服务器模式的 render、preview 和 play 不提供普通的JSON输出;preview --selection --json 和 preview --context --json 是查询模式例外。

  • doctor --json 始终以零退出。检查其有效负载:

    npx hyperframes doctor --json | jq -e '.ok' >/dev/null
    
  • 非TTY模式是自动的,并搭建居中空白脚手架。仅当从命名示例开始时传递 --example。使用 --non-interactive 在TTY上强制仅标志模式。

  • 在同一验证循环中对所有命令使用一个 HYPERFRAMES_RUN_ID。

  • 当磁盘空间紧张时,运行 npx hyperframes clean(使用 --dry-run 先列出);它移除死渲染留下的内容以及可以自行重建的空闲缓存,从不移除输出、源文件或运行中渲染使用的任何内容。将QC帧写入临时目录,而不是项目。

  • 当相应的警告、变量或CI条件必须阻塞渲染时,使用 --strict、--strict-all 和 --strict-variables。

  • JSON路径将主目录重写为 $HOME;不要试图逆转重写。

  • 当托管的云项目接近或超过200 MB上传限制时,使用 cloud render --dry-run --json 并遵循 references/cloud.md 中的 .hyperframesignore 调查。永远不要仅仅因为资产很大而忽略它。

  • 永远不要仅仅因为检查通过就进行渲染。在最终预览处暂停并等待批准。

Studio导向的编辑

当用户提到“这个元素”或当前选择时,查询Studio而不是猜测:

npx hyperframes preview --context --json --context-fields selection

在可用时使用 selection.target.hfId,否则使用其选择器和源文件。如果结果报告 no-selection,请用户点击元素并重新运行。仅请求你需要的上下文片段;仅对计算样式或可编辑文本元数据使用 --context-detail full。完整行为和故障代码位于 references/preview-render.md 中。

渲染选项

需求命令
快速本地迭代npx hyperframes render --quality draft
首次实际编码npx hyperframes render --quality looks --output out.mp4
最终本地交付npx hyperframes render --quality delivery --output out.mp4
可复现的容器渲染npx hyperframes render --docker --strict --output out.mp4
本地变量驱动批量渲染npx hyperframes render --batch rows.json --output "renders/{name}.mp4"
HeyGen托管的零基础设施渲染npx hyperframes cloud render
自管理的分布式AWS渲染npx hyperframes l

…

[翻译时截断]

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

AntlersSam/saas-launch-video-kit

Author or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIEF.md sets flow: companion. Use for longer or multi-scene pieces, brand and sizzle reels, montages, static loops, static title cards, footage remixes, and freeform builds. Use motion-graphics instead for a short unnarrated motion-first unit, including an animated title. Route fresh creation through hyperframes before using this skill.

AntlersSam/saas-launch-video-kit

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.

AntlersSam/saas-launch-video-kit

Use when audio already placed in a HyperFrames composition needs to be mixed: fade-in/fade-out, crossfade, track gain or volume, volume automation, ducking, a music bed that fights a voiceover (voiceover carve), effects on a track (EQ, compressor, limiter, gate, saturation, delay, reverb, chorus, phaser, bitcrush), automation envelopes drawn on a track's volume or any effect parameter, or one submix bus carrying a chain, a fader and an automation clock for several tracks at once (`<hf-audio-group>`). Don't use for sourcing or generating audio — finding BGM, SFX, or making a voiceover is `/media-use`. Don't use for clip timing or track layout, which is `/hyperframes-core`.

AntlersSam/saas-launch-video-kit

The HyperFrames composition contract — build one renderable project. Use for composition structure, the `data-*` timing attributes, `class="clip"`, tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

相关技能