Agent skill

HyperFrames Motion Doctrine

by heygen-com in heygen-com/hyperframes

Sets the motion rules for HyperFrames videos so scenes read as one continuous camera move, covering exit-to-entry vectors, seams, idle motion and sustained motion.

Apache-2.0Auto-check passedMedia & Creative

Install HyperFrames Motion Doctrine

skills CLI
$ npx skills add heygen-com/hyperframes --skill motion-doctrine -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install heygen-com/hyperframes motion-doctrine --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/heygen-com/hyperframes.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/motion-doctrine .claude/skills/motion-doctrine && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
motion-doctrine
GitHub stars
59k
Used in
1 other repo
Token cost
~3k tokens
SKILL.md length
1,222 words
Files
4 (incl. scripts, references)
Skills in repo
32
Repo updated
First seen
Licence
Apache-2.0

At a glance

Sets the motion rules for HyperFrames videos so scenes read as one continuous camera move, covering exit-to-entry vectors, seams, idle motion and sustained motion.

  • Works in 4 steps: Axis — x stays x, y stays y, Z stays Z.… → Direction — never mirror. On Z,… → Speed — entry initial velocity ≈ exit… → …
  • Starting a multi-scene HyperFrames video and choosing its transitions
  • SKILL.md covers Route map, The Vector Law, The Current and The Vector Ledger, plus 8 more sections
  • Runs JavaScript scripts from its folder; calls node

What it does

This gateway skill is loaded before any HyperFrames animation is composed. Its central rule, the vector law, says that how one scene exits decides how the next enters: same axis, same direction, matched speed, cut mid-motion on both sides, with the sign of the scale change defining direction on the Z axis. It also bans idle wobble, asks for stillness before a climax, and treats carrier elements and causal motion as part of the plan.

A route map hands decisions to implementation skills: `cut-the-curve` for seam transitions, waterfall entries and nudge curves, `oversized-cursor` for cursor-led actions, and `seam-craft` for render mechanics. The authoring order is a vector ledger in `ledger.json`, stamping seams with `scripts/seam-stamp.mjs`, choosing a sustained-motion route per phase, building the compositions, then verifying with `scripts/seam-gate.mjs`. The skill states that its rules supersede generic motion guidance.

When your agent uses it

  • Starting a multi-scene HyperFrames video and choosing its transitions
  • Checking that scene cuts keep their direction and momentum
  • Fixing scenes that wobble in place between entry and exit

Example prompts

  • “Plan the transitions for this five-scene product video so it feels like one camera move.”
  • “Run the seam gate on index.html and fix any seams that break the vector law.”
  • “The title scene wobbles before the cut. Fix the idle motion.”

Requirements

  • A HyperFrames project
  • A JavaScript runtime for the `.mjs` scripts `seam-stamp.mjs` and `seam-gate.mjs`

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  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 =
  3. Speed — entry initial velocity ≈ exit final velocity, via mirrored eases (exit
  4. Phase — the cut lands mid-motion on BOTH sides. Settling to rest before the cut,

What it can do on your machine

Read from SKILL.md and the folder at commit 3aa6886. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

HyperFrames Motion Doctrine loads about 3k tokens when it runs, and up to ~4.1k if it reads all its reference files. Until then it costs about 216 tokens; SKILL.md has 1,222 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~216
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from heygen-com/hyperframes at commit 3aa6886, republished under its Apache-2.0 licence (© heygen-com). 1,222 words, ~2,956 tokens.

Download SKILL.mdSave it as .claude/skills/motion-doctrine/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
motion-doctrine
description
GATEWAY — 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 enter, incl. the Z scale-sign rule), the film's current, carrier elements, causal motion, the Seam Gate (build-gate enforcement), the ban on idle wobble (motion must PERFORM, not breathe), stillness-before-climax, and the sustained-motion routes. Routes to the low-level technique skills (cut-the-curve — the full catalog incl. waterfall entry + nudge curve, oversized-cursor, seam-craft). These rules SUPERSEDE generic / upstream motion guidance. [continuity, direction, vector, momentum, seam, transition, ease, performance, idle-motion, narrative-motion, film-grammar]
metadata.internal
true

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 + codecut-the-curve §1–5 (the catalog)
Text / element entry cascadescut-the-curve §6 (waterfall entry)
In-scene group repositioning (no cut)cut-the-curve §7 (nudge curve)
Cursor-led action / scene kickoff / morph ignitionoversized-cursor
Seam render mechanics / white-flash guardseam-craft
Product-launch / explainer / caption workoverlays 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:

VectorMeaning
The current (LEFT)"next beat" — neutral forward progress
Upwardelevation — 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)

bash
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.

Show full SKILL.md (433 more words)Show less

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):

RouteWhat it is
Staged revealsHold content back; pay it off on narration beats — the frame keeps gaining information (default for ≥2 content groups)
Camera with intentA mapped scale+pan path: establish wide → travel → arrive on the subject
Sequenced UI lifeThe product behaves over time: progress advances, highlights step, counts tick
Animated sequencesElements act out a beat: a card files into a stack, an item gets dragged, a result assembles
Cursor-led actionAn 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'tInstead
Author each scene's entrance in isolationWrite the vector ledger first
Crossfade between scenesCut-the-curve in the current's direction
Exit completes, THEN the scene changesCut mid-motion on both sides
Entry starts from rest after a cutEnter ≥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 handoffHold its opening frame composed, or match the sign
Idle wobble / breathe / float to fill timeAssign a sustained-motion route; or add story
Direction flip without a causeSpend a force, or keep the current
Reserved vectors used as varietyDefault to the current; spend them on meaning
Reaction a few frames after its causeSame-frame ignition
Action jumps straight to resultSchedule stillness-before-climax (0.3–0.75s)

© heygen-com, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (scripts, references) in .agents/skills/motion-doctrine of heygen-com/hyperframes.

  • SKILL.md
  • references/seam-gate.md
  • scripts/seam-gate.mjs
  • scripts/seam-stamp.mjs

Open the folder on GitHubat commit 3aa6886

Used in 1 other repository

We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in heygen-com/hyperframes, which our catalogue first saw on October 7, 2026.

Compare with similar skills

HyperFrames Motion Doctrine next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

HyperFrames Motion Doctrine compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
HyperFrames Motion Doctrine this skillheygen-com/hyperframes59k1 repos~3kAutomated safety check: PassApache-2.0
Yuv Viral Videohoodini/ai-agents-skills282—~7.5kAutomated safety check: NotesNone
Noti Tiktok Full Textnotivn/AIEV126—~4.8kAutomated safety check: PassMIT
SVG Character Animationcalesthio/OpenMontage66k—~421Automated safety check: PassMIT
Noti Youtube Editnotivn/AIEV126—~5.6kAutomated safety check: PassMIT
Vid Sizzle ReelVarnan-Tech/opendirectory674—~3.9kAutomated safety check: PassMIT

Similar skills

  • Yuv Viral Video

    hoodini/ai-agents-skills

    Edit any selfie or screen-share footage into a viral short-form video in YUV.AI's signature style — Apple-style liquid-glass cards (real CSS backdrop-filter), dark-mode polish, MrBeast-paced cuts…

    282 GitHub stars~7.5k tokensUpdated 3 mo ago
    Media & CreativeAuto-check: notes
  • Build a Vietnamese vertical TikTok explainer in the "MỔ XẺ PAPER AI" (AI paper dissection) format with HyperFrames (HTML/CSS/GSAP → MP4), Noti.vn style.

    126 GitHub stars~4.8k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • SVG Character Animation

    calesthio/OpenMontage

    Animate SVG character rigs with GSAP, CSS transforms, Remotion frame control, and HyperFrames-compatible browser previews.

    66k GitHub stars~421 tokensUpdated 6 days ago
    Media & CreativeAuto-check passed
  • Build a Vietnamese landscape 16:9 YouTube video (1920×1080) with HyperFrames (HTML/CSS/GSAP → MP4), keeping the Noti.vn/GĐT branding inherited from noti-tiktok-vn.

    126 GitHub stars~5.6k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Vid Sizzle Reel

    Varnan-Tech/opendirectory

    Generates a high-energy sizzle reel or hype video (MP4) from brand assets and key messages.

    674 GitHub stars~3.9k tokensUpdated 1 mo ago
    Media & CreativeAuto-check passed
  • Guizang Product Video Skill

    op7418/guizang-product-video-skill

    制作代码驱动的软件产品宣传片和版本更新片(product promo、release notes video、changelog promo)。从真实功能和产品设计出发定方向,用真实组件、GSAP/Three.js 动效、原创配乐和动作音效完成影片,每支片子的视觉手法都从产品本身推导,不套模板。

    740 GitHub stars~1.1k tokensUpdated 8 days ago
    DevelopmentAuto-check passed

More from heygen-com/hyperframes

All 32 skills in this repo
  • HyperFrames Animation

    heygen-com/hyperframes

    Collects motion rules, scene blueprints, transitions and runtime adapters for HyperFrames video compositions, with GSAP as the default animation runtime.

    59k GitHub starsUsed in 3 repos~2.1k tokens
    Auto-check passed
  • Embedded Video Captions

    heygen-com/hyperframes

    Adds captions to a single-subject talking-head video without editing the footage, from plain subtitles to cinematic text placed behind the speaker.

    59k GitHub starsUsed in 3 repos~8.6k tokens
    Auto-check passed
  • Weekly Changelog Video

    heygen-com/hyperframes

    Turns a weekly changelog markdown file into a branded HyperFrames video with voiceover, animated mock-UI scenes and captions, using fonts, background and scripts bundled in the skill.

    59k GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Faceless Explainer Video

    heygen-com/hyperframes

    Turns an article, notes or a topic brief into an explainer video whose visuals are invented per scene, built frame by frame in HyperFrames with no footage.

    59k GitHub starsUsed in 3 repos~7.7k tokens
    Auto-check: notes
  • Figma to HyperFrames

    heygen-com/hyperframes

    Imports Figma assets, brand tokens, components and motion into a HyperFrames video composition, using the Figma REST API with a connector or native export for shaders.

    59k GitHub starsUsed in 3 repos~4.5k tokens
    Auto-check: notes
  • HyperFrames Media Use

    heygen-com/hyperframes

    Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.

    59k GitHub stars~2.4k tokensUpdated today
    Auto-check passed

Works with

Questions about HyperFrames Motion Doctrine

What does HyperFrames Motion Doctrine do?

Sets the motion rules for HyperFrames videos so scenes read as one continuous camera move, covering exit-to-entry vectors, seams, idle motion and sustained motion. This gateway skill is loaded before any HyperFrames animation is composed. Its central rule, the vector law, says that how one scene exits decides how the next enters: same axis, same direction, matched speed, cut mid-motion on both sides, with the sign of the scale change defining direction on the Z axis.

When should I use HyperFrames Motion Doctrine?

HyperFrames Motion Doctrine fits situations like: starting a multi-scene HyperFrames video and choosing its transitions; checking that scene cuts keep their direction and momentum; fixing scenes that wobble in place between entry and exit.

How do I install HyperFrames Motion Doctrine in Claude Code?

Run `npx skills add heygen-com/hyperframes --skill motion-doctrine -a claude-code`. Or copy the skill folder (.agents/skills/motion-doctrine in heygen-com/hyperframes) into .claude/skills/motion-doctrine in your project. Claude Code loads it when a task matches its description.

How do I install HyperFrames Motion Doctrine in Codex?

Run `npx skills add heygen-com/hyperframes --skill motion-doctrine -a codex`. Or copy the skill folder (.agents/skills/motion-doctrine in heygen-com/hyperframes) into .agents/skills/motion-doctrine in your project. Codex loads it when a task matches its description.

Can I use HyperFrames Motion Doctrine in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add heygen-com/hyperframes --skill motion-doctrine -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/motion-doctrine, .gemini/skills/motion-doctrine, .github/skills/motion-doctrine and .opencode/skills/motion-doctrine in your project.

What does HyperFrames Motion Doctrine need to run?

Going by SKILL.md and its folder, HyperFrames Motion Doctrine needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node). Our summary lists: A HyperFrames project; A JavaScript runtime for the `.mjs` scripts `seam-stamp.mjs` and `seam-gate.mjs`.

Does HyperFrames Motion Doctrine access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is HyperFrames Motion Doctrine safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does HyperFrames Motion Doctrine use?

HyperFrames Motion Doctrine is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does HyperFrames Motion Doctrine use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.1k tokens, read only when the agent opens those files.

What are the alternatives to HyperFrames Motion Doctrine?

Skills that share tags, products or a category with HyperFrames Motion Doctrine: Yuv Viral Video (hoodini/ai-agents-skills, 282 stars), Noti Tiktok Full Text (notivn/AIEV, 126 stars), SVG Character Animation (calesthio/OpenMontage, 66k stars) and Noti Youtube Edit (notivn/AIEV, 126 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains HyperFrames Motion Doctrine?

heygen-com (a GitHub organization) maintains it in heygen-com/hyperframes, which has 59,375 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 9, 2026.

Source: heygen-com/hyperframes on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.