$npx -y skills add heygen-com/hyperframes --skill motion-doctrineGATEWAY — load FIRST before composing any HyperFrames animation or video. The high-level motion law that makes a multi-scene video feel like ONE continuous camera move instead of a stack of independently-animated slides. Covers the vector law (how you exit determines how you ente
| 1 | # Motion Doctrine (Gateway) |
| 2 | |
| 3 | Read this before composing any animation. It decides WHAT happens at every seam and how |
| 4 | every scene performs; the technique skills implement it. These rules supersede generic / |
| 5 | upstream motion guidance. The failure this prevents: scenes authored in isolation — the |
| 6 | eye's momentum dies at every cut, and scenes wobble in place between entry and exit. |
| 7 | |
| 8 | ## Route map |
| 9 | |
| 10 | | Decision (this skill) | Implementation skill | |
| 11 | | -------------------------------------------------- | ------------------------------------------------------------------------------------------------- | |
| 12 | | Seam transition choice + parameters + code | `cut-the-curve` §1–5 (the catalog) | |
| 13 | | Text / element entry cascades | `cut-the-curve` §6 (waterfall entry) | |
| 14 | | In-scene group repositioning (no cut) | `cut-the-curve` §7 (nudge curve) | |
| 15 | | Cursor-led action / scene kickoff / morph ignition | `oversized-cursor` | |
| 16 | | Seam render mechanics / white-flash guard | `seam-craft` | |
| 17 | | Product-launch / explainer / caption work | overlays `text-beat-economics`, `brand-faithful`, `captions-overlay` on top of the upstream skill | |
| 18 | |
| 19 | Authoring order: **vector ledger (`ledger.json`) → STAMP the master seams from it |
| 20 | (`scripts/seam-stamp.mjs --ledger ledger.json --write index.html`) → sustained-motion |
| 21 | route per phase → carriers and causes → build comps → VERIFY (`scripts/seam-gate.mjs`).** |
| 22 | Hand-author only Tier-A morphs/match-cuts; stamped seams pass the gate by construction. |
| 23 | |
| 24 | --- |
| 25 | |
| 26 | # Part 1 — The Seam Law |
| 27 | |
| 28 | ## The Vector Law |
| 29 | |
| 30 | > How Scene A exits determines how Scene B enters: same axis, same direction, matched |
| 31 | > speed, cut mid-motion on both sides. |
| 32 | |
| 33 | 1. **Axis** — x stays x, y stays y, Z stays Z. Never trade axes across a cut. |
| 34 | 2. **Direction** — never mirror. On Z, direction = the SIGN of scale change: growing = |
| 35 | push (camera forward), shrinking = pull (camera back). A receding exit answered by a |
| 36 | grow-from-small entry is a mirrored vector — the most common violation, because |
| 37 | grow-from-small is the default element entrance. |
| 38 | 3. **Speed** — entry initial velocity ≈ exit final velocity, via mirrored eases (exit |
| 39 | `power4.in` + entry `power4.out`, same distance and duration; the incoming side picks |
| 40 | up ≥50% through the notional path). Mechanics in `cut-the-curve`. |
| 41 | 4. **Phase** — the cut lands mid-motion on BOTH sides. Settling to rest before the cut, |
| 42 | or starting from rest after it, is a dead beat. |
| 43 | |
| 44 | ## The Current |
| 45 | |
| 46 | Every film picks ONE dominant direction (house default: LEFT). Every ordinary seam uses |
| 47 | it. Other vectors are RESERVED — spending one means something: |
| 48 | |
| 49 | | Vector | Meaning | |
| 50 | | ------------------------- | --------------------------------------------------------------- | |
| 51 | | The current (LEFT) | "next beat" — neutral forward progress | |
| 52 | | Upward | elevation — a conclusion or reveal rises above what came before | |
| 53 | | Z forward (zoom-through) | pushing deeper into the same thought | |
| 54 | | Z backward (inverse zoom) | ARRIVAL — something bigger lands | |
| 55 | | Scale-burst (explode out) | leaving a world — a surface blasts past camera | |
| 56 | |
| 57 | - Never run consecutive seams in opposing directions — ping-pong reads as an error. |
| 58 | - A direction change needs a visible cause (click / bounce / impact) or a chapter boundary. |
| 59 | |
| 60 | ## The Vector Ledger |
| 61 | |
| 62 | Write it before authoring any master timeline — as **`ledger.json` at the project root** |
| 63 | (schema: `references/seam-gate.md`). One row per |