hyperframes-video-beats
Plan, write, time, style, and validate motion-graphic beats for long-form talking-head HyperFrames videos. Use when Codex is asked to add or improve visual beats, glassmorphism lower thirds, crumpled-paper full-screen takeovers, transcript-synced callouts, pacing coverage, YouTube retention graphics, or render-ready overlays in an existing HyperFrames video project.
1How It Works & Mechanism
Positioned as a "review editor" rather than a "generator": transforms talking-head footage and transcripts into rhythmic motion-graphic beat sets, adhering to the principle of never obscuring the speaker or adding graphics merely to fill gaps.
Use this skill to turn a talking-head video plus transcript into a paced set of motion graphics that support the narration without covering the speaker unnecessarily.
The first step is auditing the existing project state: inspect AGENTS.md, the root composition, the existing beat sheet, shared CSS, and the transcript, then build a coverage map from data-start/data-duration or the master SHOW array.
3. Build a coverage map from the root `data-start` / `data-duration` entries or the master `SHOW` array. … 5. Identify topic spans by narration, not by arbitrary timestamps.
Clear division of labor between two beat types: crumpled-paper full-screen takeovers are used for core arguments, checklists, chapters, quotes, and data; glassmorphic lower thirds are used for explanations, topic tags, and formulaic mental models, always ensuring the face remains unobscured.
Use a paper takeover when the narration reaches a major thesis, list, section marker, quote, or stat that should briefly become the whole frame. … Use a glass lower-third when the speaker should remain visible and the graphic should support the current idea.
Pacing is safeguarded with quantifiable coverage thresholds: no graphic gap longer than 20–30 seconds in the intro, no gap longer than 30–45 seconds in the body, with 30s enforced as a strict scanning threshold and 45s as the upper limit for the body.
- Early video: avoid more than 20-30 seconds without a visual beat. … - Main body: avoid more than 30-45 seconds without a beat.
Timing is anchored to specific spoken words: identify the topic trigger word, enter 0.2–0.6 seconds early, and hold until the topic concludes or a natural handoff occurs; clear the screen 0.1–0.5 seconds before an immediately following beat.
2. Start the beat 0.2-0.6 seconds before that anchor when possible. … 4. If the next beat begins immediately, clear 0.1-0.5 seconds before it unless the handoff is intentional.
Encodes HyperFrames hard constraints into an implementation checklist: every mounted timed element must have data-start, data-duration, and data-track-index; subcompositions must register paused GSAP timelines to window.__timelines and pin slots using tl.set({}, {}, SLOT); non-deterministic logic is strictly prohibited.
- Every mounted timed element needs `data-start`, `data-duration`, and `data-track-index`. … - Sub-compositions should register a paused GSAP timeline on `window.__timelines`. … - Pin each sub-composition timeline with `tl.set({}, {}, SLOT);`.
Wraps up with self-inspection and reporting: execute linting, eliminate errors, itemize known non-blocking warnings, and render full or smoke outputs if render-ready assets are requested, providing exact file paths and timestamps.
1. Run the HyperFrames linter. 2. Fix all errors. 3. Mention warnings separately if they are known and non-blocking. … 5. Give the user exact file paths and timestamps changed.
2Core Capabilities
3External Dependencies
| Kind | Dependency / Endpoint |
|---|---|
| cli | HyperFrames CLI(对编辑后的 HTML 跑 lint;用户要 render-ready 时渲染或冒烟渲染,用法由 ../hyperframes-cli 提供) |
| cli | 本地搜索/脚本工具(rg、Select-String、小型 Node/PowerShell 转录脚本) |
| package | Node.js(跑 lint/转录小脚本的环境前提) |
4Recommended Governance & Evidence
- scripts/: Execute local scripts or commands: This skill contains 0 scripts: the directory holds only SKILL.md and agents/openai.yaml (verified via find -type f).
- 网络端点: Declared external network access: Adjacent surface (not scored): `npx` fetches the official hyperframes package from the npm registry if dependencies are missing; conforms to established repository precedent as standard official CLI usage.
- 本地工作目录: File read/write and artifact output: Creates compositions/beats/NNN-short-name.html (beat subcompositions) within the target project.
5Second-Pass Verification
- [ok] 目录文件清单 — find 返回 SKILL.md(8.4KB)与 agents/openai.yaml(250B);无 scripts/、无 references/、无二进制资产。
- [ok] 网络/凭证面反例搜索 — 全目录 0 处 http(s) URL、0 处 fetch、0 处 env/API_KEY/TOKEN/SECRET;唯一外部命令是 `npx hyperframes lint` 与本地 rg/Select-String。
- [ok] 数字口径跨章节一致性 — Pacing Heuristics 的 20-30s / 30-45s 与 Coverage Scan 的『30s 严格、45s 上限』自洽;Timing Method 的 0.2-0.6s 进场与 Practical Defaults 的『Beat start lead-in: 0.2-0.6 seconds』一致;整屏 4-12s 上限与 Practical Defaults 的 5-8s/8-10s 分档相容。
- [ok] 实现规则是否可被 lint 校验 — 时序元素属性(data-start/data-duration/data-track-index)、子组合时间线注册(window.__timelines)、SLOT 锚(tl.set({}, {}, SLOT);)、同轨不重叠 —— 均为同仓 HyperFrames 系列 skill 反复出现的 lint 口径,文档并明确 Run `npx hyperframes lint`。
- [ok] 是否夸大了自动化 — 文档要求人工/agent 判断(不为填空加图、按话题而非时间戳定位、保留用户口味),并给定扫描阈值与人工复核点,无『全自动生成』表述。
- [ok] 宿主元数据内容 — agents/openai.yaml 仅含 interface.display_name / short_description / default_prompt 三项展示字段,无权限、无命令、无环境变量。
6Verdict & Scenarios
f17e6d21395b29b4…