1仕組みと動作原理
ドキュメント全体の根底にある前提は Studio のレンダリングモデルです。タイムラインは各トップレベル要素に対して1行を描画します。したがって、「階層をどう分割するか」は単なる美観の問題ではなく、Studio 上でユーザーが編集できるかどうかに直結します。
Studio draws one timeline row per top-level element. A project that follows the rules below opens as a short, readable timeline; one that does not opens as a wall of unlabeled rows the user cannot edit.
ルール1:ルートコンポジションにはトップレベルのホスト、メディア、音声のみを配置します。ネスト構造を持つシーンはすべて別ファイルに分割し、data-composition-src 経由でマウントします。ルートに残されたネストマークアップは独立した行になりません。
The root composition holds only timed hosts, media and audio.
ルール2:すべての字幕は1トラックのみに集約します。data-track-kind="captions" を持つ単一のサブコンポジションホストが、すべての字幕グループを順番に保持します。字幕グループごとに行を分けたり、他の種類とトラックを混在させたりすることは禁止です。
- All captions live on one track: a single sub-composition host (one `data-track-index`)
ルール3:各トラックには1種類の要素タイプのみを配置し、data-track-kind(video/graphics/captions/audio)で明示します。data-track-index は表示上の並び順にすぎず、レイヤー階層(重なり順)を決定しません。重なり順は CSS で決定します。
Give each kind its own `data-track-index`; the number is display only; it never changes what renders on top.
ルール4:セーフゾーンはプレビューパネル上でのみ描画し、コンポジション内に書き込んではいけません。横型・縦型の両フォーマットで同一のセーフフレーム基準(Adobe Premiere のデフォルト:アクションセーフ 90%、タイトルセーフ 80%)を共有し、字幕や重要コンテンツは必ずタイトルセーフ枠内に収めます。
Safe margins: everything visible stays inside the action-safe box (90%), and captions and key content stay inside the title-safe box (80%).
最終ステップは二重検証です。まず hyperframes lint を実行して検出された問題をすべて解消し、次に Studio 上でタイムラインの構成(ベース行 + シーンホストごとの行 + 字幕行1本 + 音声行)を目視確認します。
Run `hyperframes lint` and fix every finding.
明確な境界線:本スキルは「どのような形状を構築すべきか」のみを扱います。特定のクリップの編集方法(分割/トリム/リタイム/音量/コピー/置換)はすべて /hyperframes-core の creator-editing-recipes.md に戻り、独自の手法を勝手に作ることは禁止します。
For how to change a clip, follow `/hyperframes-core` `references/creator-editing-recipes.md` and never invent a different form of the same edit.
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| cli | hyperframes lint(唯一被本 skill 点名的外部命令,作为结构正确性的静态门禁) |
4推奨統制措置と判定根拠
- SKILL.md: プロンプト指示およびルールテキストのみで構成され、スクリプト実行や外部への影響はありません
5二重目の独立検証
- [ok] 安全区百分比与宿主源码常量是否一致(文档唯一可被代码验证的声明) — SKILL.md 给出 Action-safe 90%(每边 5%)、Title-safe 80%(每边 10%),并指明来源 packages/studio/src/utils/previewSafeMargins.ts。打开该文件实测:`export const ACTION_SAFE_PERCENT = 90;` 与 `export const TITLE_SAFE_PERCENT = 80;`,注释亦写明「Adobe Premiere default: action-safe and title-safe margins are 10% and 20% total (5% and 10% per edge)」——文档与代码一致。
- [ok] 是否遗漏网络调用 / 脚本 / 凭证(绿档判定的关键反例检查) — 全域扫描 URL、fetch、process.env、child_process、writeFile、credential 关键词均为 0 命中;目录内只有 1 个 md 文件,无 scripts/、references/、资产。因此不存在隐藏执行面。
- [ok] 「轨类型 / 字幕单轨」等约定是否与仓库 lint 规则对得上(避免文档与实现脱节) — 文档自述「Author as if a structure lint rejects any violation」,并把词级时间规则交给 /embedded-captions 与 caption_* lint 规则;同仓 /embedded-captions 与 /hyperframes-core 的 lint 域存在对应规则,故约定不是孤例自说。本 skill 自身不实现 lint,属声明面。
- [ok] 是否存在夸大(把宿主能力说成自己的) — 文档通篇用祈使式约定(该建出什么形状)与指向(去看某文件),没有声称自己执行检查或渲染;收尾要求跑的是 hyperframes lint(宿主命令)。与同批 hyperframes-keyframes 同型:纯约定文档,能力来自宿主。
6結論
e1afb0832db4ac26…