1实现原理 · 为什么它能做到
前提被写明:渲染引擎是 HyperFrames、场景源是 HTML/CSS/JS——因此全部规则围绕「组合根 + 暂停时间线 + 可寻址 + 确定性」展开,而不是通用前端开发。
Use this skill when implementing or revising a HyperFrames scene. This skill assumes HyperFrames is the render engine and the scene source is HTML/CSS/JS.
时间线必须暂停(paused),因为渲帧要能确定性 seek——这是「同一份源渲出同一段帧」的前提。
- Use paused timelines for deterministic seekable animation.
组合根与作用域纪律:显式声明 data-composition-id / data-width / data-height,选择器必须限定在组合根内,禁止会污染其他子组合的全局选择器。
- Avoid global selectors that can mutate other sub-compositions.
渲染循环是「低质草稿迭代 → 定稿才提高质量/帧率」:draft 质量 + --workers 2 快速看效果,只有场景已批准或要验证帧率相关动作时才提。
Use higher FPS or quality only when the scene is approved or when testing frame-rate-specific motion.
证明帧必须来自渲染出的 MP4,而不是浏览器截图——截图不经过编码/合成路径,会掩盖真实差异。
- Generate proof frames from the rendered MP4, not only browser screenshots.
内建 HyperFrames 特有风险清单:时间线 ID 不匹配、嵌套组合里的未作用域选择器、GSAP 覆盖既有 CSS transform、预览与渲染之间的 CDN/字体加载差异、渲染 worker 里媒体资源解析失败、单文件过大导致 agent 无法检视。
- CDN or font loading differences between preview and render.
carryover 纪律:某个转场若忘了新标签或新画面,下一场景复制的那一帧也要一起改。
- If a scene transition forgets a new label or visual, patch the next scene's carryover frame too.
2核心能力
3外部依赖
| Kind | Dependency / Endpoint |
|---|---|
| cli | HyperFrames CLI(npx hyperframes preview / lint / render),Node/npm 生态工具;首次 npx 会从 npm registry 解析该包 |
| package | HyperFrames 渲染器(本地合成与编码,含无头 Chrome/worker 渲染环境) |
| package | GSAP(时间线动画库;由组合页面引入,规则围绕暂停时间线与 set/fromTo 语义) |
| network | 产物期引用面:组合页面若引用 CDN 脚本或网络字体,preview 与 render worker 会各自拉取,行为可能不一致(按范式属产物期引用,不判级,仅记录) |
| cli | ffmpeg(间接:抽帧与证明帧由同族 render-qa skill 的 scripts/extract_proof_frames.py 承担) |
4管控建议与判定依据
- scripts/: 执行本地脚本或命令: (由宿主 agent 执行)npx hyperframes preview / lint / render —— SKILL.md 的 Render
- 网络端点: 声明外部网络访问: registry.npmjs.org(推断):npx 在本地未安装 hyperframes 时会从 npm registry 解析或下载该包——属工具
- 本地工作目录: 文件读写与工件输出: compositions/*.html(场景源,一场景一文件)与共享 token/组件
5第二遍独立确认
- [ok] 「无端点无凭证」是否成立 — 目录内正则扫描只命中 npx hyperframes 三条命令;无 http(s):// URL、无 token/env/cookie。父仓库 .gitignore 也把 .env 排除,属仓库层卫生,非本 skill 声明。
- [unlocatable] 渲染命令是否与 HyperFrames CLI 的真实用法相符 — 本仓未 vendored HyperFrames(README 明写 This repo does not vendor HyperFrames),pin 内无法核验 --composition/--output/--quality draft/--workers 这些参数是否与上游 CLI 一致;本次侦查为只读且不得运行渲染,故不验证,登记为待补。
- [ok] 「证明帧从渲染 MP4 抽取」在仓库层是否有落地工具 — scripts/extract_proof_frames.py 用 ffmpeg -ss <time> -i <video> -frames:v 1 -q:v 2 抽单帧,并可用 xstack 拼接触表;与本 skill 的要求(从渲染产物而非浏览器截图抽帧)一致。
- [discrepancy] 是否声明了 HyperFrames 的安装前提 — SKILL.md 直接给 npx hyperframes 命令,但未写 HyperFrames 的版本、安装方式或项目初始化要求(同族 end-to-end-video-playbook 也只把它当引擎名字)。用户需自行确保 CLI 可用,否则三条命令全部失败。
- [ok] 「预览与渲染的 CDN/字体差异」是否属可判级的外发 — 该条描述的是产物页在浏览器端拉取 CDN/字体(产物期引用),按风险范式不判级;本 skill 也把它写成需要注意的渲染风险而非流程中的联网步骤,故只记入 reason 与 risks,不升档。
- [ok] 组件清单是否真是约定而非强制的类 — SKILL.md 原文 These do not need to be formal JS classes. They can be CSS classes, HTML snippets, or helper functions as long as future agents can find and reuse them.——属约定而非 API,不存在「清单里的类未实现」这种缺口。
6结论
b8691be00b4eea0e…