1仕組みと動作原理
「生成器」ではなく「試写エディター」としての位置付け:トーキングヘッド映像と文字起こしをリズミカルな動的ビート群へと昇華させ、話者の顔を遮らず、隙間埋めだけのための画像追加は行わない原則を徹底します。
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.
最初のステップはプロジェクトの現状把握:AGENTS.md、ルート composition、既存ビート表、共有 CSS、文字起こしを読み込み、data-start/data-duration またはマスター SHOW 配列からカバー率マップを構築します。
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.
2種類のビートによる明確な役割分担:全画面の皺紙(paper takeover)は主張/チェックリスト/チャプター/引用/データに用い、ガラス調の下三分(glass lower-third)は解説、トピックタグ、数式的な思考モデルに用い、いずれも顔を遮らない設計を義務付けます。
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.
定量化されたカバー率しきい値によるテンポ維持:冒頭は20〜30秒以上、本文は30〜45秒以上のビートなし区間を作らず、30秒を厳密なスキャンしきい値、45秒を本文の上限値として設定します。
- Early video: avoid more than 20-30 seconds without a visual beat. … - Main body: avoid more than 30-45 seconds without a beat.
発話単語にアンカーを打つタイミング手法:トピックの開始単語を特定し、0.2〜0.6秒前倒しでイン、トピック終了または自然な引き継ぎでアウトし、次のビートが連続する場合は0.1〜0.5秒早めに退場させます。
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.
HyperFrames の制約を実装チェックリスト化:マウントされるすべての時間指定要素に data-start/data-duration/data-track-index を付与し、サブコンポジションは停止状態の GSAP タイムラインを window.__timelines に登録して tl.set({}, {}, SLOT); でスロットを固定。非決定論的なロジックは禁止します。
- 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);`.
仕上げはセルフチェックと報告:lint を実行してエラーをゼロにし、既知の非ブロッキング警告を個別列挙。レンダリング可能な成果物が求められる場合は本番またはスモークレンダリングを行い、正確なファイルパスとタイムスタンプを提示します。
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.
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| cli | HyperFrames CLI(对编辑后的 HTML 跑 lint;用户要 render-ready 时渲染或冒烟渲染,用法由 ../hyperframes-cli 提供) |
| cli | 本地搜索/脚本工具(rg、Select-String、小型 Node/PowerShell 转录脚本) |
| package | Node.js(跑 lint/转录小脚本的环境前提) |
4推奨統制措置と判定根拠
- scripts/: ローカルスクリプトまたはコマンドの実行: 本スキル自体にはスクリプトが0件:ディレクトリ内には SKILL.md と agents/openai.yaml のみ存在(find -type f で検証済み)。
- 网络端点: 外部ネットワークアクセスの宣言: 隣接領域(判定対象外):依存関係が不足している場合、`npx` が npm レジストリから公式の hyperframes パッケージを取得することがあります。リポジトリ内の先例に則り、公式 CLI の通常利用の範囲内と判断されます。
- 本地工作目录: ファイルの読み書きと成果物の出力: 対象プロジェクト内に compositions/beats/NNN-short-name.html(ビートのサブコンポジション)を新規作成します。
5二重目の独立検証
- [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 三项展示字段,无权限、无命令、无环境变量。
6結論
f17e6d21395b29b4…