ASD

Motion Doctrine

GATEWAY — cárgalo primero antes de componer cualquier animación o video en HyperFrames; es la ley de movimiento que hace que un video multi-escena se sienta como UN solo movimiento de cámara continuo.

Reemplaza a: Guía genérica de motion/transición previa, Crossfades entre escenas

Estrellas
40.6k

en todo el repo

Actividad
57

0–100, la ruta de este skill

Actualizado
hace 28 días

último commit aquí

Commits
1

últimos 90 días

Contexto
3k tok

213 tok en reposo

Paquete
4 archivos

43 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add heygen-com/hyperframes --skill motion-doctrine --agent claude-code

Se instala solo en este repositorio.

Este skill reads environment config.

Qué hace

  • Establece la ley de vectores para cortes de escena: eje, dirección y velocidad deben coincidir entre salida y entrada
  • Define la corriente direccional dominante del film y reserva otros vectores para significados específicos
  • Prohíbe el idle wobble (respirar/flotar) y exige rutas de movimiento sostenido en cada fase
  • Impone el Seam Gate: un script verificador que audita ledger.json y aborta si los seams fallan
  • Rutea a skills de bajo nivel (cut-the-curve, oversized-cursor, seam-craft) para implementar las decisiones

Úsalo cuando

  • Antes de componer cualquier animación o video en HyperFrames
  • Al planear transiciones entre escenas de un video multi-escena
  • Al escribir el ledger.json de vectores antes de autorar el timeline maestro

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Ayúdame a planear las transiciones entre escenas de este video HyperFrames
    • Necesito escribir el ledger.json de vectores para mi timeline
    • Revisa si mis seams cumplen la Vector Law antes de renderizar

    SKILL.md

    En inglés

    Motion Doctrine (Gateway)

    Read this before composing any animation. It decides WHAT happens at every seam and how every scene performs; the technique skills implement it. These rules supersede generic / upstream motion guidance. The failure this prevents: scenes authored in isolation — the eye's momentum dies at every cut, and scenes wobble in place between entry and exit.

    Route map

    Decision (this skill) Implementation skill
    Seam transition choice + parameters + code cut-the-curve §1–5 (the catalog)
    Text / element entry cascades cut-the-curve §6 (waterfall entry)
    In-scene group repositioning (no cut) cut-the-curve §7 (nudge curve)
    Cursor-led action / scene kickoff / morph ignition oversized-cursor
    Seam render mechanics / white-flash guard seam-craft
    Product-launch / explainer / caption work overlays text-beat-economics, brand-faithful, captions-overlay on top of the upstream skill

    Authoring order: vector ledger (ledger.json) → STAMP the master seams from it (scripts/seam-stamp.mjs --ledger ledger.json --write index.html) → sustained-motion route per phase → carriers and causes → build comps → VERIFY (scripts/seam-gate.mjs). Hand-author only Tier-A morphs/match-cuts; stamped seams pass the gate by construction.


    Part 1 — The Seam Law

    The Vector Law

    How Scene A exits determines how Scene B enters: same axis, same direction, matched speed, cut mid-motion on both sides.

    1. Axis — x stays x, y stays y, Z stays Z. Never trade axes across a cut.
    2. Direction — never mirror. On Z, direction = the SIGN of scale change: growing = push (camera forward), shrinking = pull (camera back). A receding exit answered by a grow-from-small entry is a mirrored vector — the most common violation, because grow-from-small is the default element entrance.
    3. Speed — entry initial velocity ≈ exit final velocity, via mirrored eases (exit power4.in + entry power4.out, same distance and duration; the incoming side picks up ≥50% through the notional path). Mechanics in cut-the-curve.
    4. Phase — the cut lands mid-motion on BOTH sides. Settling to rest before the cut, or starting from rest after it, is a dead beat.

    The Current

    Every film picks ONE dominant direction (house default: LEFT). Every ordinary seam uses it. Other vectors are RESERVED — spending one means something:

    Vector Meaning
    The current (LEFT) "next beat" — neutral forward progress
    Upward elevation — a conclusion or reveal rises above what came before
    Z forward (zoom-through) pushing deeper into the same thought
    Z backward (inverse zoom) ARRIVAL — something bigger lands
    Scale-burst (explode out) leaving a world — a surface blasts past camera
    • Never run consecutive seams in opposing directions — ping-pong reads as an error.
    • A direction change needs a visible cause (click / bounce / impact) or a chapter boundary.

    The Vector Ledger

    Write it before authoring any master timeline — as ledger.json at the project root (schema: references/seam-gate.md). One row per seam: cut time, exit and entry vectors (axis + signed direction; Z rows carry the scale sign), selectors, technique. Exit and entry must match; if a row mismatches, fix the plan, not the easing. The verifier checks row consistency statically before any runtime sampling.

    Carriers

    The eye follows objects, not abstractions. The strongest seams hand a concrete carrier across the cut at matched position AND velocity: a cursor mid-path, a container that shrinks/docks into the next layout, a mark that flies into its exact slot, the word group of a waterfall cut. With no natural carrier, the scene heroes carry it (partial travel + early fade, entry mid-flight). Never a crossfade — it has no carrier at all.

    Causal Motion

    Chain motion so each move is visibly launched by the last: click → squash → release spring → flight → impact → recoil → reveal.

    • Effects start ON the causing frame — same timeline position, never "shortly after."
    • Reactions scale with implied mass: big elements rebound slower, small ones snap.
    • A force is a license to change direction; an uncaused flip is a ping-pong.

    The Seam Gate (build gate — run the verifier, exit 0 or the seam is not done)

    node <SKILL_DIR>/scripts/seam-stamp.mjs --ledger ledger.json --write index.html  # generate
    node <SKILL_DIR>/scripts/seam-gate.mjs  verify --ledger ledger.json --project .  # verify
    

    The script (usage + ledger schema: references/seam-gate.md) numerically enforces, per seam: ledger-row consistency, exit still moving at the cut, entry mid-flight (never from rest), measured direction = ledger direction, entry/exit speed match (WARN), zero overlap (one side visible per frame — the cut is not a dissolve), the Z sign rule (d(scale)/dt same sign both sides; the incoming scene's own entrances are scanned for sign-fighting), and carrier rect continuity with ancestor scale included. Use seam-gate.mjs probe --t <cut> to find each seam's true carrier selectors when authoring the ledger.

    Rules the script cannot check — still yours:

    1. Edits re-open the seam. Any change to a scene's first/last ~1s (including re-timing to new VO) invalidates that boundary's audit — re-run the verifier.
    2. Audio is the clock. Re-time scenes to the VO's real word timestamps; never rush a read to fit a slot. A VO regen re-opens its seams.
    3. Clip-gating gotcha (the usual cause of a zero-overlap FAIL): a clip whose data-start precedes its entry tween is un-hidden at its initial opacity — set initial autoAlpha: 0 AND data-start = the cut time, never earlier.

    Part 2 — Performance (the scene keeps performing)

    No idle wobble

    Idle sine loops (breathe, float, drift, glow pulse) are BANNED as sustained motion — they read as "the video is waiting." A scene that finishes entering with seconds left is a planning bug: add story, not wobble. Every phase between entry and exit is owned by one of these routes (name the route in the plan):

    Route What it is
    Staged reveals Hold content back; pay it off on narration beats — the frame keeps gaining information (default for ≥2 content groups)
    Camera with intent A mapped scale+pan path: establish wide → travel → arrive on the subject
    Sequenced UI life The product behaves over time: progress advances, highlights step, counts tick
    Animated sequences Elements act out a beat: a card files into a stack, an item gets dragged, a result assembles
    Cursor-led action An oversized cursor walks the eye to a trigger; its CLICK ignites the next beat (oversized-cursor)

    Test: pause at any second — something meaningful must be mid-flight (a reveal landing, the camera traveling, the UI doing what the narration says).

    Stillness before climax

    Schedule a 0.3–0.75s pause between the major action and its result — the dramatic comma. A scene that jumps straight from action to result loses it.

    Timing intents

    • Single entry ≤ ~800ms; longer buildup = multi-element stagger, not one slow element.
    • Exit ≈ 75% of entry. Exception: cut-the-curve inverts this (entry ~127% of exit).
    • Total stagger ≤ 500ms; with 8+ elements, tighten per-item delay or stagger the first few.
    • Forbidden eases: bounce.out / elastic.out. Entry overshoot back.out(1.4–1.7) is fine.
    • Similar elements share one ease+duration intent — never a unique pair per element.

    Transition vocabulary

    Use only 2–3 inter-scene transitions per film and repeat them; the default boundary is cut-the-curve in the current's direction. Hand-written shared-element morphs (intent: morph) don't count against the budget.


    Anti-Patterns

    Don't Instead
    Author each scene's entrance in isolation Write the vector ledger first
    Crossfade between scenes Cut-the-curve in the current's direction
    Exit completes, THEN the scene changes Cut mid-motion on both sides
    Entry starts from rest after a cut Enter ≥50% through the notional path
    Inverse-zoom exit → grow-from-small entry (or push → oversized retraction) Match the scale-velocity sign (Seam Gate 7)
    Incoming scene's own pop-in intro under a Z-seam handoff Hold its opening frame composed, or match the sign
    Idle wobble / breathe / float to fill time Assign a sustained-motion route; or add story
    Direction flip without a cause Spend a force, or keep the current
    Reserved vectors used as variety Default to the current; spend them on meaning
    Reaction a few frames after its cause Same-frame ignition
    Action jumps straight to result Schedule stillness-before-climax (0.3–0.75s)

    Reproducido de heygen-com/hyperframes bajo licencia Apache-2.0. Leer esta página en markdown.

    Archivos

    4 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere ledger.json en la raíz del proyecto y los scripts seam-stamp.mjs y seam-gate.mjs del SKILL_DIR.

    Necesita en el PATH:node

    Variables de entorno:CHROME_PATHJSON

    Detalles

    Creador
    heygen-com
    Categoría
    Diseño y UI
    Licencia
    Apache-2.0
    Recursos incluidos
    scripts en javascript + referencias
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de heygen-com/hyperframes

    Este repo incluye 25 skills. Si instalas uno, normalmente ya tienes los demás.

    Agent Media OS: resuelve BGM, SFX, imágenes, iconos, logos, voz, gradación de color o LUTs en un archivo local o bloque listo para usar; genera, opera y reutiliza assets en proyectos HyperFrames.

    Costo de contexto al activarse
    2k tok
    Tamaño del paquete
    152 archivos
    Última actualización
    hace 4 días
    herramientas desarrollo

    Convierte un pull request de GitHub (URL, owner/repo#N o 'este PR') en un video explicativo del cambio de código —changelog, feature, fix o refactor— construido a partir del diff, commits y archivos.

    Costo de contexto al activarse
    7.9k tok
    Tamaño del paquete
    30 archivos
    Última actualización
    hace 10 días
    redaccion contenido

    Punto de entrada obligatorio para crear, editar, animar o renderizar video, animaciones o motion graphics con HyperFrames, así como para inspeccionar, validar o publicar proyectos existentes.

    Costo de contexto al activarse
    3.2k tok
    Tamaño del paquete
    17 archivos
    Última actualización
    hace 15 días
    diseno ui

    Convierte una URL de producto o marketing, un guion pegado o un brief en un video de lanzamiento/promoción — promos SaaS, revelaciones de funciones, demos, lanzamientos de apps y empresas.

    Costo de contexto al activarse
    7.9k tok
    Tamaño del paquete
    28 archivos
    Última actualización
    hace 10 días
    redaccion contenido

    Usa el flujo de desarrollo de la CLI de HyperFrames: init, add, catalog, capture, lint, check, snapshot, compare, preview, render, publish, cloud, lambda, feedback, doctor y más; también para diagnosticar fallos de build o render.

    Costo de contexto al activarse
    3.9k tok
    Tamaño del paquete
    11 archivos
    Última actualización
    hace 3 días
    herramientas desarrollo

    Convierte texto (artículo, notas, tema o brief) en un video explicativo faceless: sin sitio ni material que capturar, los visuales se inventan por escena (tipografía, gráficos abstractos, diagramas, data-viz).

    Costo de contexto al activarse
    7.1k tok
    Tamaño del paquete
    24 archivos
    Última actualización
    hace 10 días
    redaccion contenido

    Skills relacionados

    Empaqueta un video de talking-head/entrevista/podcast existente con tarjetas gráficas superpuestas (títulos, lower-thirds, callouts, citas, PiP) sincronizadas con la transcripción, en 16:9, 9:16 o 4:5; el clip se reproduce intacto debajo.

    Costo de contexto al activarse
    16.3k tok
    Tamaño del paquete
    28 archivos
    Última actualización
    hace 24 días
    diseno ui

    Porta el código de una composición Remotion (React) existente a HTML de HyperFrames. Solo para pedidos explícitos de portar/convertir/migrar una fuente Remotion, en un único sentido.

    Costo de contexto al activarse
    2.4k tok
    Tamaño del paquete
    70 archivos
    Última actualización
    hace 10 días
    herramientas desarrollo

    Úsalo cuando el usuario o el agente necesite leer, buscar o consultar la documentación o la referencia de la API de Stripe, en vez de usar curl o WebFetch para docs.stripe.com.

    Costo de contexto al activarse
    225 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 24 días
    Oficialdesarrollo apis