1实现原理 · 为什么它能做到
纯指令型 skill:目录内只有 3 个文件(SKILL.md + agents/openai.yaml + references/keyframe-patterns.md),没有任何可执行脚本、二进制或数据资产;它靠把「关键帧=姿态契约」写成硬规则,再由宿主 agent 写出合成 HTML/GSAP。
interface: display_name: "HyperFrames Keyframes" short_description: "Author seek-safe video keyframes" default_prompt: "Use $hyperframes-keyframes to author seek-safe 2D/3D keyframes and verify them with the CLI."
把 keyframe 定义为「姿态契约」而非补间参数:可见状态、主体身份连续、可 seek 运行时、像素可验,四条构成验收口径。
Keyframes are a pose contract: visible states, continuous subject identity, seek-safe runtime, verified pixels.
seek-safe 是硬约束,不是建议:只允许「同步构建 + 注册时间线」的确定性运行时,逐条点名禁止时钟、未播种随机、事件触发与异步时间线。
Never use for render-critical motion: - `Date.now()` - `performance.now()` - unseeded `Math.random()` - hover/scroll triggers - timers - async-created timelines - unregistered `requestAnimationFrame` - infinite loops
能力边界被显式切成三份并逐行标注归属:视觉运动归本 skill,片段时序(trim/splice/reorder/source range)归 hyperframes-core,声音(fade/crossfade/ducking)归 hyperframes-audio;跨域请求以表格给出「真话机制」。
Keyframes own visual motion, not clip assembly. Source-range hard cuts, trim, splice, and reorder belong to `/hyperframes-core`: author one media element per kept range, place it with `data-start` and `data-duration`, and select its source offset with `data-media-start`.
验证闭环落在 hyperframes CLI 上:lint → check → keyframes 诊断 → 聚焦 --shot → snapshot,按「证明什么」分工;并规定诊断失败时的取证顺序。
npx hyperframes lint npx hyperframes check npx hyperframes keyframes . npx hyperframes keyframes . --json npx hyperframes keyframes . --runtime all npx hyperframes keyframes . --selector "<selector>" --shot "<file>" --samples <n>
运行时按引擎分别给出可复现约束,并把「文本表面未列 WAAPI」这类文档缺口显式标记为需自证。
WAAPI: - finite `duration` - `fill: "both"` - deterministic construction - the text surface does not list WAAPI; verify with `--shot` (it seeks WAAPI) and snapshots
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| cli | hyperframes CLI(npx,本 skill 唯一的执行面) |
| cli | hyperframes lint / check(合规模拟门禁) |
| package | GSAP(被写进合成 HTML 的运行时,含 MotionPathPlugin / Flip / DrawSVGPlugin / MorphSVGPlugin) |
| package | Anime.js / WAAPI / CSS @keyframes / Three.js / WebGL(可选运行时家族) |
| network | 官方文档外链(仅阅读参考清单,无代码调用) |
| network | sibling skill 引用(同仓本地路径,非网络) |
4风险提醒 风险提醒:绿色 · 放心使用
- 验证能力完全外置,缺 CLI 时纪律无法落地 — lint/check/keyframes/--shot/snapshot 全部是 hyperframes CLI 子命令;宿主未安装或未构建 hyperframes 时,SKILL.md 要求的验收步骤无从执行,rules 退化为「只能靠模型自觉」。本 skill 自身不提供任何兜底校验脚本。
- CLI 版本漂移 — 本 skill 没有 `skills update` 自刷新入口(组内唯一缺失),诊断输出字段(flat/keyframes/motionPath/trace/composed with)与 `keyframes` 子命令参数随 CLI 演进可能失配;升级 hyperframes 后需人工核对 CLI Proof 段的命令是否仍有效。
- 无自动化反例检查,正确性依赖人/模型看图 — SKILL.md 要求 'trust painted pixels over logs',即最终判据是渲染像素;CI 里无法自动判定 identity break、fake 3D、wrong final 这类语义失败,需人工或视觉模型介入。
- 文档内示例数值存在被误抄的残留风险 — GSAP 骨架里带具体数值(x: 120、duration 0.2/0.4);SKILL.md 明确要求 'Do not copy numeric distances or timing from examples',属于纪律性约束而非技术防呆,模型仍可能照搬。
5第二遍独立确认
- [ok] 是否含可执行脚本 / 隐藏代码 — 全量枚举 3 文件,无 .sh/.mjs/.cjs/.py/.js;隐藏文件 0 个;与 skills-manifest.json 的 files=3 交叉一致。
- [ok] 网络外发与凭证读取 — `fetch(`、`http.request`、`XMLHttpRequest`、`urllib`、`process.env`、`child_process`、`API_KEY/TOKEN/SECRET/.env/Authorization` 全部 0 命中;21 处 URL 全为文档链接(gsap.com、animejs.com、developer.mozilla.org、threejs.org),无端点调用。
- [ok] 实现原理是否成立(纯指令 vs 有无隐藏执行体) — SKILL.md 的每条硬规则都能在正文找到对应的验收动作(Procedure 5 步 + Done 段 6 项确认),且所有验证都外派给 hyperframes CLI;无隐藏执行体,结论『纯 prompt 编排』成立。
- [discrepancy] 与同仓其它 skill 的组内一致性(自刷新提示) — hyperframes-keyframes 的 SKILL.md **没有** `npx hyperframes skills update hyperframes-keyframes` 前置刷新段;同仓 embedded-captions / faceless-explainer / general-video / motion-graphics / product-launch-video / remotion-to-hyperframes / talking-head-recut 七个 workflow skill 均在正文首段带该提示('First, keep this skill fresh')。这不是第一遍看错,而是一处真实的组内不一致:本 skill 只能随 hyperframes CLI 的版本一起更新,无独立自刷新入口。
- [ok] 『外部资源』逐条回查调用点 — hyperframes CLI 的每类命令(keyframes/--shot/--layout strip/--ghost/snapshot --at)在 SKILL.md 的 CLI Proof 段与工具证明表中均有真实出现;GSAP 骨架与 Anime.js 骨架在 references/keyframe-patterns.md 中原文存在,非推测。
6结论
78ffadd495cffe9c…b8328f9573