1仕組みと動作原理
本原則は2つのルールを1つに統合:① 字幕モデル(発話文の運命は drop / rail / embed の3つのみであり、embed は希少で「勝ち取った」ピークである);② オーバーレイ則(字幕行は映像の「上」に合成される overlay であり、予約エリアではない。そのため字幕のためにコンテンツを押し上げたりデッドゾーンを設けたりしない)。
Two ideas combine here. First, the **caption model** — every spoken phrase is `drop`, `rail`, or `embed`, and embed is the scarce earned peak, not the default. Second, the **overlay law** — a caption line is composited ON TOP of the film as an overlay; it is NOT a reserved zone, so you never shift content up or leave a dead band to "make room" for it.
希少性はハードな制約:rail が大半のテキストを担い、embed は ≤1/文(beat)、隣接や同フレームは不可、間隔は ≥1 beat。短い動画では通常1回、長い解説動画では各セクションに約1回。「すべての単語を embed する」のは典型的な誤り。
**The rail carries most of the text; embed is the scarce, earned peak** — ≤1 per beat, never two adjacent/co-visible, spaced ≥ a beat apart. A short clip → usually one embed; a long explainer → ~one per section. Embedding every word is the common mistake.
オーバーレイ則の検証可能な表現は「真の垂直中心で構図をとる」こと:y = H/2(横画面 540、縦画面 960)、コンテンツはキャンバス最下部まで描画可能。0.42×H に底部デッドゾーンを加えるのはバグであり、修正ではない。
- **Center the composition on the TRUE vertical center — y = H / 2** (landscape 540, portrait 960). Do not shift content up to "make room" for captions; a composition centered at 0.42 × H with a dead lower band is the bug, not the fix. - Content may extend to the canvas bottom.
唯一残されたソフトな退避ルール:小さく重要な可読テキスト(URL 行、法的表記、副字幕)を最下部約 80px の中央帯に配置しないこと。大きなグラフィック、カード、背景コンテンツが字幕下に重なることは許容される。
**One soft courtesy rule:** avoid parking _critical small readable text_ (a URL line, a legal line, a sub-caption) exactly in the bottom ~80px center span where the caption line sits — the overlay would fight it. Large imagery / cards / ambient content under the captions is fine; the caption skin is designed to read over content.
機械的ゲートの廃止:旧 captions.mjs の keepout チェックは廃止済み。字幕とコンテンツの重なりにおける可読性は、finalize のスナップショット目視 QA で判定する。
- There is no machine keep-out gate (the old `captions.mjs keepout` check is retired). Finalize snapshot QA judges caption-over-content legibility visually.
上流スキルとの関係は「統合」ではなく「重畳」:本原則は embedded-captions の上に「ON TOP」として適用され、上流側への吸収は意図しない。
> **Overlay doctrine — supplements the upstream `embedded-captions` skill. Applies ON TOP of it; do not expect it folded into the upstream skill.**
読み込みタイミング(トリガー条件)は description に明記:トーキングヘッドやローンチ動画への字幕追加時、フレーズの drop / rail / embed 判定時、字幕を載せる構図レイアウト時(keep-out 帯を予約しないこと)、および字幕下で真の画面中央に構図を合わせる時。
Load when adding captions/subtitles to a talking-head or launch video, when deciding whether a phrase should be dropped, ride the verbatim rail, or be promoted to a scarce embedded climax, when laying out a composition that will carry captions (do NOT reserve a keep-out band), or when centering a composition on the true frame center under captions.
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| package | 上游 skill 依赖(被本教义叠加):embedded-captions(rail+embed 模型出处)与 product-launch-video 的场景/finalize 代理(约束 #13) |
| cli | 已退役的 captions 检查入口(仅在文中被点名为「不再存在」的检查名,本目录不含该脚本) |
4推奨統制措置と判定根拠
- SKILL.md: 純粋なプロンプト指示およびルールテキストのみであり、スクリプト実行や外部への副作用なし
5二重目の独立検証
- [ok] 是否真的没有任何可执行物(green 档的关键前提) — rglob 全量列举:只有 `.claude/skills/captions-overlay/SKILL.md` 一个文件;无 scripts/、无 assets/、无 references/。全文无 shebang、无 ```bash 块。
- [ok] 是否含隐藏的网络外发(域名/端点) — `https?://` 在本文件零命中;无 curl/npx/CLI 调用语句。被点名的 `captions.mjs keepout` 是「已退役」的历史检查名,本目录并不含该文件(全量清单已证)。
- [discrepancy] meta.official_desc 是否与 frontmatter 原文一致 — 本 SKILL.md 的 description 是**未加引号的 plain scalar**,正文里含 `constraint #13 (...)`——YAML 把空格后的 `#` 当注释起点,`yaml.safe_load` 因此只解析到 `…embedded-captions and constraint`,丢掉后半段(解析长度 643 vs 原文该行 782 字符)。为避免展示层出现半句话,本 JSON 按**原文逐字**保留完整 description(含 `#13 (captions overlay, keep-out band retired) … Applies ON TOP of embedded-captions.`),该串在源文件中逐字可命中。此为上游 frontmatter 的书写瑕疵,非本 skill 的行为差异。
- [ok] 「验收靠人眼」是否被误读为「无验收」 — 原文两条并存:`There is no machine keep-out gate … Finalize snapshot QA judges caption-over-content legibility visually.` 与底部 ~80px 的软避让规则。结论:有验收,但验收方式从机器闸门改为快照目视——第一遍表述准确。
- [ok] 与上游 embedded-captions 的关系是否有事实依据 — SKILL.md 开篇 blockquote 与 description 双重声明 ON TOP 关系;引用的 rail+embed 与 constraint #13 均标注了出处(embedded-captions / product-launch-video scene agent),未见与上游冲突的改写。
6結論
4983e91a90bd624b…