$npx -y skills add heygen-com/hyperframes --skill captions-overlayOverlay doctrine for the embedded-captions workflow — the caption MODEL (drop / rail / embed) and the rule that captions are an OVERLAY composited on top of the film, never a reserved bottom band you shift content up to avoid. Load when adding captions/subtitles to a talking-head
| 1 | # Captions Overlay Doctrine |
| 2 | |
| 3 | > **Overlay doctrine — supplements the upstream `embedded-captions` skill. Applies ON TOP of it; do not expect it folded into the upstream skill.** |
| 4 | |
| 5 | Two ideas combine here. First, the **caption model** — every spoken phrase is `drop`, |
| 6 | `rail`, or `embed`, and embed is the scarce earned peak, not the default. Second, the |
| 7 | **overlay law** — a caption line is composited ON TOP of the film as an overlay; it is |
| 8 | NOT a reserved zone, so you never shift content up or leave a dead band to "make room" |
| 9 | for it. The two reinforce each other: because captions ride as an overlay (the verbatim |
| 10 | rail in front, the occasional embed behind the subject), the composition keeps its full |
| 11 | frame and centers on the true vertical center. |
| 12 | |
| 13 | ## The caption model — drop / rail / embed |
| 14 | |
| 15 | Every spoken phrase is one of three things (verbatim from `embedded-captions`): |
| 16 | |
| 17 | | | What | How it's shown | |
| 18 | | --------- | ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
| 19 | | **drop** | filler — um/uh, stutters, self-corrections | not shown | |
| 20 | | **rail** | the default — ordinary spoken content (verbatim) | clean lower-third subtitle, **in front**, readable. A punch word can get an inline `emphasis` highlight (accent colour / active-word pop) — it stays on the rail. | |
| 21 | | **embed** | a promoted peak — the headline beat | one big word composited **behind the subject** (matte occlusion), designed entrance + exit | |
| 22 | |
| 23 | **The rail carries most of the text; embed is the scarce, earned peak** — ≤1 per beat, |
| 24 | never two adjacent/co-visible, spaced ≥ a beat apart. A short clip → usually one embed; |
| 25 | a long explainer → ~one per section. Embedding every word is the common mistake. |
| 26 | |
| 27 | This is the **Standard** mode shape (rail = the verbatim lower-third; embed = the climax |
| 28 | composited behind the subject). **Cinematic** mode drops the rail and makes everything |
| 29 | embed-style — use it only for pure-cinematic asks, never for explainer / voiceover where |
| 30 | the words must read. |
| 31 | |
| 32 | ### Rail-first, embed-scarce (the load-bearing rules) |
| 33 | |
| 34 | Quoted from the `embedded-captions` non-negotiables: |
| 35 | |
| 36 | - **Rail-first for talking-head / explainer.** Don't embed the whole transcript — most |
| 37 | text is the rail; embed only peaks. Embedding everything is the default mistake. |
| 38 | - **Embed is scarce + spaced.** ≤1 embed per sentence/beat, never two adjacent or |
| 39 | co-visible, ≥ a beat apart, at most one `apex`. climax = per-beat peak, **not** "the |
| 40 | single payoff of the entire clip." |
| 41 | |
| 42 | ## The overlay law — captions are NOT a reserved band |
| 43 | |
| 44 | In a generated launch composition, when captions are enabled, finalize composites a |
| 45 | **small, minimal word-by-word caption line** as an overlay layer ON TOP of the whole |
| 46 | film (a single text line, bottom-centered, roughly the bottom ~5-8% of canvas height). |
| 47 | It is an overlay, not a reserved zone (verbatim from constraint #13 of the |
| 48 | product-launch-video scene agent): |
| 49 | |
| 50 | - **Center the composition on the TRUE vertical center — y = H / 2** (landscape 540, |
| 51 | portrait 960). Do not shift content up to "make room" for captions; a composition |
| 52 | centered at 0.42 × H with a dead lower band is the bug, not the fix. |
| 53 | - Content may extend to the canvas bottom. Full-bleed subjects, rails, and backgrounds |
| 54 | all welcome. |
| 55 | - **One soft courtesy rule:** avoid parking _critical small readable text_ (a URL line, |
| 56 | a legal line, a sub-caption) exactly in the bottom ~80px center span where the caption |
| 57 | line sits — the overlay would fight it. Large imagery / cards / ambient content under |
| 58 | the captions is fine; the caption skin is designed to read over content. |
| 59 | - There is no machine keep-out g |