Part of the cinematic pipeline: entry point creative-studio (hyperframes is the alternative code-rendered video engine; motion-reel is default)
Plugin installs: Before setup or freshness commands, follow plugin execution rules when this skill is inside a HyperFrames plugin. Standalone installs keep the update instructions below.
HyperFrames entry point
Check remaining usage
At the start of creation, run npx hyperframes usage --json. Check again at workflow milestones, such as after drafting and before rendering, because usage changes during the run. Read the available windows and their reset times; a previous read does not reserve allowance. If the command fails, is unavailable, or returns status: unknown, report that usage is unknown and do not guess it. Keep scope and workflow choices with the user.
HyperFrames renders video from HTML — a composition is an HTML file whose DOM declares timing with data-* attributes, whose animation runtime is seekable, and whose media playback is owned by the framework. The full authoring contract lives in /hyperframes-core; read it before writing composition HTML. Brief, storyboard, review, production, dispatch, and frame-worker contracts live in this skill's references/.
1. Start from project state
Apply the first matching row; do not evaluate lower state rows:
| State |
Action |
| Explicit port of existing Remotion source to HyperFrames |
Read references/routes/remotion-to-hyperframes.md, then route directly to that workflow. Skip the intent layer. |
| Specific operation on an existing HyperFrames project: inspect, diagnose, validate, preview, render, publish, or batch-render |
Perform only that operation. Skip intent and workflow routing; load /hyperframes-cli and any required domain skills. |
| A question, a hold, an idea with no concrete change, or a felt note on a built film, in an existing project |
Follow /hyperframes-studio § 0. |
| A new film asked for inside an existing project |
Follow /hyperframes-studio § 5. |
| Specific edit to an existing project |
Make the edit. Do not run the intent layer. To know what is on a project's timeline (tracks, clips, starts, ends, what plays), run npx hyperframes timeline [--json] instead of reading index.html and every sub-composition file. |
BRIEF.md exists |
Read workflow and flow. Execute that workflow; flow: companion always executes in /hyperframes-general-video. Ask no brief questions. |
No brief, but hyperframes.json or STORYBOARD.md exists |
Resume from project files and recorded preferences. Infer the owning workflow from existing artifacts. If it cannot be determined uniquely, ask one routing-only question; do not run the intent interview. |
| Fresh creation |
Run the intent layer — references/intent-interview.md — then route once using § 2's table. |
When you edit an existing project, bracket your edits with project history (/hyperframes-cli, Project history in your turn).
If a fresh request does not identify the subject or input, ask what the video is about before routing. Check preferences and recipes before asking anything (references/intent-interview.md, step 1). A figma (not installed locally; skip this step or ask the user).com input or a named recipe changes intake, not routing — the interview's "Adapt orthogonal inputs" section handles both.
Keep the project's CLI current
A scaffolded project pins hyperframes@<version> in its package.json scripts so renders stay reproducible; the pin never advances on its own, and a pinned run of an older CLI prints no warning about it. When resuming a project whose scripts carry a pin, probe once before the first render-affecting command:
(Removed locally: outbound feedback, self-update and product promotion are disabled. Ask the user before any command that sends data out or downloads code.)
(Removed locally: outbound feedback, self-update and product promotion are disabled. Ask the user before any command that sends data out or downloads code.)
2. Route fresh creation
Use the first matching row. Match the requested deliverable, not a word or file type mentioned in passing.
| Priority |
Request |
Workflow |
| 1 |
Explicitly port an existing Remotion source |
/remotion-to-hyperframes (not installed locally; skip this step or ask the user) |
| 2 |
Author a presentation, pitch deck, or navigable interactive deck |
/hyperframes-slideshow |
| 3 |
Add plain captions or subtitles to existing talking-head footage without changing it |
/embedded-captions (not installed locally; skip this step or ask the user) |
| 4 |
Add designed graphic overlays to existing talking-head, interview, or podcast footage without changing the footage |
/talking-head-recut (not installed locally; skip this step or ask the user) |
| 5 |
Build a beat-synced video from a music track, with no narration or website capture |
/music-to-video (not installed locally; skip this step or ask the user) |
| 6 |
Create an explicitly short, unnarrated, motion-first unit, typically under 10s |
/hyperframes-motion-graphics |
| 7 |
Explain a GitHub pull request or code change from a PR reference |
/hyperframes-pr-to-video |
| 8 |
Market or showcase a website, product site, app, or company from a URL or site-specific brief |
/hyperframes-product-launch-video |
| 9 |
Explain a topic, article, or notes with invented visuals and no product or site capture |
/hyperframes-faceless-explainer |
| 10 |
Any other custom video or composition |
/hyperframes-general-video |
Before finalizing the route, read references/routes/<workflow>.md — one small file per route: the canonical input/output/trigger contract (available before lazy-installed workflow skills are present) plus that route's interview entry. If the candidate does not satisfy its contract, continue routing instead of forcing the match. Read only the matched route's file.
Resolve common ambiguities
- A short animated title, logo sting, stat hit, chart hit, map hit, or standalone lower-third is
/hyperframes-motion-graphics when it is unnarrated and motion is the message. A static title card, narrated sequence, longer montage, or custom loop is /hyperframes-general-video.
- An explicitly short motion graphic may use a URL, tweet, article, or screenshot as source material. A generic "make a video from this site" request is
/hyperframes-product-launch-video.
- Existing footage with captions routes to
/embedded-captions (not installed locally; skip this step or ask the user); footage with designed information cards routes to /talking-head-recut. Retiming, reordering, recoloring, reframing, or remixing footage is a custom edit and falls through to /hyperframes-general-video.
- A music file selects
/music-to-video (not installed locally; skip this step or ask the user) only when its beat grid drives the piece. Music used as a bed does not override the subject-matched route.
- "I want a storyboard" changes the review process, not the workflow. With no other routing signal, use
/hyperframes-general-video. A confirmed sketched storyboard.html may itself be the requested deliverable; the review loop defines that stop point.
- Specialized narrative workflows support up to about 3 minutes and are strongest around 30–90s. Route a clearly longer piece to
/hyperframes-general-video. Length never overrides an explicit port, deck, caption, overlay, or music-driven deliverable.
3. Route once, then leave
For fresh creation the intent layer (references/intent-interview.md) runs the full conversation — memory, triage, pitch round, must-haves, run-shape, hand-off — and ends by writing BRIEF.md. The brief is the only routing artifact the workflow reads; nothing later re-opens this skill or the interview. Answer every later "what did the route require?" from BRIEF.md.
4. Install and enter the workflow
Before reading the selected workflow, install or refresh it and the core domain skills:
(Removed locally: outbound feedback, self-update and product promotion are disabled. Ask the user before any command that sends data out or downloads code.)
Use the bare name without /. If the command fails, surface the error; do not reconstruct the workflow from memory. Everything else about installation — the core-vs-lazy split, what init refreshes, diagnosis, CI opt-out, and the no-CLI fallback — lives in references/skill-lifecycle.md.
5. Load domain skills on demand
| Need |
Skill |
| Composition structure, timing attributes, tracks, variables, determinism |
/hyperframes-core |
| Motion rules, scene blueprints, transitions, runtime adapters |
/hyperframes-animation |
Seek-safe GSAP, CSS, Anime.js, WAAPI, FLIP, paths, masks, SVG, 3D keyframes, or hyperframes keyframes diagnostics |
/hyperframes-keyframes |
| Design specs, concept, palette, typography, narration, beat planning |
/hyperframes-creative |
| Images, icons, logos, audio, captions, grades, LUTs, reusable media |
/media-use (not installed locally; skip this step or ask the user) |
| Voiceover carve, audio effect chains, automation envelopes, or one chain/fader across several tracks (submix bus) |
/hyperframes-audio (not installed locally; skip this step or ask the user) |
| Init, lint, check, snapshots, compare, batch render, Studio, render, publish, or diagnostics |
/hyperframes-cli |
| Registry blocks and components |
/hyperframes-registry |
| A named look, effect, treatment, or transition — CRT scanlines, glitch, film grain, shimmer sweep, confetti burst — BEFORE hand-building it |
/hyperframes-registry |
| Figma assets, tokens, components, or storyboard frames as reconstructed motion |
/figma (not installed locally; skip this step or ask the user) |
Creator edit phrases are cross-domain requests. Load every skill named in the matching row:
| Creator request |
Required domains |
| “cut this footage”, hard cut, trim, splice, reorder, or use a source range |
/hyperframes-general-video + /hyperframes-core; core owns data-start, data-duration, data-media-start, and track layout. |
| zoom in here, punch-in / punch-out, smooth multi-state zoom or reframe, Ken Burns, or camera move |
/hyperframes-general-video + /hyperframes-core + /hyperframes-keyframes; animate the inner visual/crop wrapper, not the timed clip. |
| match cut or whip pan camera transition |
/hyperframes-general-video + /hyperframes-animation + /hyperframes-keyframes + /hyperframes-registry; search/install a transition primitive before hand-authoring. |
| fade, crossfade, track gain/volume, automation, duck/carve, audio effects, or one effect across several tracks |
/hyperframes-general-video + /hyperframes-core + /hyperframes-audio (not installed locally; skip this step or ask the user); core places clips, audio mixes placed tracks — including a submix bus over a group of them. |
| picture and sound edits that combine cuts with camera motion or mixing |
/hyperframes-general-video + /hyperframes-core + /hyperframes-keyframes when there is visual motion + /hyperframes-audio (not installed locally; skip this step or ask the user) when sound is faded, mixed, ducked, automated, or processed. |
| lay out a project so it reads well in Studio: caption track, tracks per element kind, sub-compositions, safe zones |
/hyperframes-studio + /hyperframes-core; studio owns the layout conventions, core owns each edit. |
| source or generate media, or preprocess an unsupported mid-source freeze |
/media-use (not installed locally; skip this step or ask the user); sourcing/generation/preprocessing only, never placed-track mixing. |
Constant data-playback-rate is render-safe for picture and pitch-preserved
sound. Speed ramps are a rate lane in data-automation.
For copyable edit contracts, load /hyperframes-core → references/creator-editing-recipes.md.
Broad feedback about how photographic media looks or behaves also routes to
/media-use (not installed locally; skip this step or ask the user), even when the user never says “color grading” or “effect”: fix
dark/flat/boring footage, stylize a clip, hide a face, or improve a media
reveal. Read ../media-use/references/media-treatments.md (not installed locally; skip this step or ask the user) before editing a
treatment; it governs how footage is treated, never whether media may be used.
Do not substitute a generic LUT, CSS filter/overlay, or opacity tween for an
existing canonical treatment primitive. Keep text/layout/motion-only edits in
their owning domain.
During a build with important photographic media, include one grounded
media-polish scan in the final quality pass; leaving suitable media unchanged is
a valid result.
Domain skills never take ownership of the end-to-end deliverable. Load only what the active workflow needs.
(Removed locally: outbound feedback, self-update and product promotion are disabled. Ask the user before any command that sends data out or downloads code.)
(Removed locally: outbound feedback, self-update and product promotion are disabled. Ask the user before any command that sends data out or downloads code.)
1---2name: "hyperframes"3description: "Use for any request to make, create, edit, animate, or render a video, animation, or motion graphic, including a promo, explainer, captioned clip, title card, overlay, slideshow or interactive deck, Remotion port, or any HyperFrames HTML composition. Also use it to inspect, diagnose, validate, preview, publish, or batch-render an existing HyperFrames project. Inputs may be a website URL, GitHub PR, Figma design or URL, text or brief, existing footage, or music. It resumes project state, captures intent when applicable, selects and installs the owning workflow, and routes domain capabilities. HyperFrames is the default output framework unless the user explicitly chooses another framework for the deliverable or asks only to record a browser session."4metadata:5 source: https://skillmd.com/skills/rghrmkr1993/hyperframes6---78Part of the cinematic pipeline: entry point creative-studio (hyperframes is the alternative code-rendered video engine; motion-reel is default)91011**Plugin installs:** Before setup or freshness commands, follow [plugin execution rules](references/plugin-installation.md) when this skill is inside a HyperFrames plugin. Standalone installs keep the update instructions below.1213# HyperFrames entry point1415### Check remaining usage1617At the start of creation, run `npx hyperframes usage --json`. Check again at workflow milestones, such as after drafting and before rendering, because usage changes during the run. Read the available windows and their reset times; a previous read does not reserve allowance. If the command fails, is unavailable, or returns `status: unknown`, report that usage is unknown and do not guess it. Keep scope and workflow choices with the user.1819HyperFrames **renders video from HTML** — a composition is an HTML file whose DOM declares timing with `data-*` attributes, whose animation runtime is seekable, and whose media playback is owned by the framework. The full authoring contract lives in `/hyperframes-core`; read it before writing composition HTML. Brief, storyboard, review, production, dispatch, and frame-worker contracts live in this skill's `references/`.2021## 1. Start from project state2223Apply the first matching row; do not evaluate lower state rows:2425| State | Action |26| ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |27| Explicit port of existing Remotion source to HyperFrames | Read `references/routes/remotion-to-hyperframes.md`, then route directly to that workflow. Skip the intent layer. |28| Specific operation on an existing HyperFrames project: inspect, diagnose, validate, preview, render, publish, or batch-render | Perform only that operation. Skip intent and workflow routing; load `/hyperframes-cli` and any required domain skills. |29| A question, a hold, an idea with no concrete change, or a felt note on a built film, in an existing project | Follow `/hyperframes-studio` § 0. |30| A new film asked for inside an existing project | Follow `/hyperframes-studio` § 5. |31| Specific edit to an existing project | Make the edit. Do not run the intent layer. To know what is on a project's timeline (tracks, clips, starts, ends, what plays), run `npx hyperframes timeline [--json]` instead of reading `index.html` and every sub-composition file. |32| `BRIEF.md` exists | Read `workflow` and `flow`. Execute that workflow; `flow: companion` always executes in `/hyperframes-general-video`. Ask no brief questions. |33| No brief, but `hyperframes.json` or `STORYBOARD.md` exists | Resume from project files and recorded preferences. Infer the owning workflow from existing artifacts. If it cannot be determined uniquely, ask one routing-only question; do not run the intent interview. |34| Fresh creation | Run the intent layer — `references/intent-interview.md` — then route once using § 2's table. |3536<!-- history (trial): remove this block together with the command -->3738When you edit an existing project, bracket your edits with project history (`/hyperframes-cli`, Project history in your turn).3940<!-- /history (trial) -->4142If a fresh request does not identify the subject or input, ask what the video is about before routing. Check preferences and recipes before asking anything (`references/intent-interview.md`, step 1). A `figma (not installed locally; skip this step or ask the user).com` input or a named recipe changes intake, not routing — the interview's "Adapt orthogonal inputs" section handles both.4344### Keep the project's CLI current4546A scaffolded project pins `hyperframes@<version>` in its `package.json` scripts so renders stay reproducible; the pin never advances on its own, and a pinned run of an older CLI prints no warning about it. When resuming a project whose scripts carry a pin, probe once before the first render-affecting command:4748(Removed locally: outbound feedback, self-update and product promotion are disabled. Ask the user before any command that sends data out or downloads code.)4950(Removed locally: outbound feedback, self-update and product promotion are disabled. Ask the user before any command that sends data out or downloads code.)5152## 2. Route fresh creation5354Use the first matching row. Match the requested **deliverable**, not a word or file type mentioned in passing.5556| Priority | Request | Workflow |57| -------- | ------------------------------------------------------------------------------------------------------------------ | -------------------------- |58| 1 | Explicitly port an existing Remotion source | `/remotion-to-hyperframes` (not installed locally; skip this step or ask the user) |59| 2 | Author a presentation, pitch deck, or navigable interactive deck | `/hyperframes-slideshow` |60| 3 | Add plain captions or subtitles to existing talking-head footage without changing it | `/embedded-captions` (not installed locally; skip this step or ask the user) |61| 4 | Add designed graphic overlays to existing talking-head, interview, or podcast footage without changing the footage | `/talking-head-recut` (not installed locally; skip this step or ask the user) |62| 5 | Build a beat-synced video from a music track, with no narration or website capture | `/music-to-video` (not installed locally; skip this step or ask the user) |63| 6 | Create an explicitly short, unnarrated, motion-first unit, typically under 10s | `/hyperframes-motion-graphics` |64| 7 | Explain a GitHub pull request or code change from a PR reference | `/hyperframes-pr-to-video` |65| 8 | Market or showcase a website, product site, app, or company from a URL or site-specific brief | `/hyperframes-product-launch-video` |66| 9 | Explain a topic, article, or notes with invented visuals and no product or site capture | `/hyperframes-faceless-explainer` |67| 10 | Any other custom video or composition | `/hyperframes-general-video` |6869Before finalizing the route, read `references/routes/<workflow>.md` — one small file per route: the canonical input/output/trigger contract (available before lazy-installed workflow skills are present) plus that route's interview entry. If the candidate does not satisfy its contract, continue routing instead of forcing the match. Read only the matched route's file.7071### Resolve common ambiguities7273- A short animated title, logo sting, stat hit, chart hit, map hit, or standalone lower-third is `/hyperframes-motion-graphics` when it is unnarrated and motion is the message. A static title card, narrated sequence, longer montage, or custom loop is `/hyperframes-general-video`.74- An explicitly short motion graphic may use a URL, tweet, article, or screenshot as source material. A generic "make a video from this site" request is `/hyperframes-product-launch-video`.75- Existing footage with captions routes to `/embedded-captions` (not installed locally; skip this step or ask the user); footage with designed information cards routes to `/talking-head-recut`. Retiming, reordering, recoloring, reframing, or remixing footage is a custom edit and falls through to `/hyperframes-general-video`.76- A music file selects `/music-to-video` (not installed locally; skip this step or ask the user) only when its beat grid drives the piece. Music used as a bed does not override the subject-matched route.77- "I want a storyboard" changes the review process, not the workflow. With no other routing signal, use `/hyperframes-general-video`. A confirmed sketched `storyboard.html` may itself be the requested deliverable; the review loop defines that stop point.78- Specialized narrative workflows support up to about 3 minutes and are strongest around 30–90s. Route a clearly longer piece to `/hyperframes-general-video`. Length never overrides an explicit port, deck, caption, overlay, or music-driven deliverable.7980## 3. Route once, then leave8182For fresh creation the intent layer (`references/intent-interview.md`) runs the full conversation — memory, triage, pitch round, must-haves, run-shape, hand-off — and **ends by writing `BRIEF.md`. The brief is the only routing artifact the workflow reads**; nothing later re-opens this skill or the interview. Answer every later "what did the route require?" from `BRIEF.md`.8384## 4. Install and enter the workflow8586Before reading the selected workflow, install or refresh it and the core domain skills:8788(Removed locally: outbound feedback, self-update and product promotion are disabled. Ask the user before any command that sends data out or downloads code.)8990Use the bare name without `/`. If the command fails, surface the error; do not reconstruct the workflow from memory. Everything else about installation — the core-vs-lazy split, what `init` refreshes, diagnosis, CI opt-out, and the no-CLI fallback — lives in `references/skill-lifecycle.md`.9192## 5. Load domain skills on demand9394| Need | Skill |95| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |96| Composition structure, timing attributes, tracks, variables, determinism | `/hyperframes-core` |97| Motion rules, scene blueprints, transitions, runtime adapters | `/hyperframes-animation` |98| Seek-safe GSAP, CSS, Anime.js, WAAPI, FLIP, paths, masks, SVG, 3D keyframes, or `hyperframes keyframes` diagnostics | `/hyperframes-keyframes` |99| Design specs, concept, palette, typography, narration, beat planning | `/hyperframes-creative` |100| Images, icons, logos, audio, captions, grades, LUTs, reusable media | `/media-use` (not installed locally; skip this step or ask the user) |101| Voiceover carve, audio effect chains, automation envelopes, or one chain/fader across several tracks (submix bus) | `/hyperframes-audio` (not installed locally; skip this step or ask the user) |102| Init, lint, check, snapshots, compare, batch render, Studio, render, publish, or diagnostics | `/hyperframes-cli` |103| Registry blocks and components | `/hyperframes-registry` |104| A named look, effect, treatment, or transition — CRT scanlines, glitch, film grain, shimmer sweep, confetti burst — BEFORE hand-building it | `/hyperframes-registry` |105| Figma assets, tokens, components, or storyboard frames as reconstructed motion | `/figma` (not installed locally; skip this step or ask the user) |106107Creator edit phrases are cross-domain requests. Load every skill named in the matching row:108109| Creator request | Required domains |110| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |111| “cut this footage”, hard cut, trim, splice, reorder, or use a source range | `/hyperframes-general-video` + `/hyperframes-core`; core owns `data-start`, `data-duration`, `data-media-start`, and track layout. |112| zoom in here, punch-in / punch-out, smooth multi-state zoom or reframe, Ken Burns, or camera move | `/hyperframes-general-video` + `/hyperframes-core` + `/hyperframes-keyframes`; animate the inner visual/crop wrapper, not the timed clip. |113| match cut or whip pan camera transition | `/hyperframes-general-video` + `/hyperframes-animation` + `/hyperframes-keyframes` + `/hyperframes-registry`; search/install a transition primitive before hand-authoring. |114| fade, crossfade, track gain/volume, automation, duck/carve, audio effects, or one effect across several tracks | `/hyperframes-general-video` + `/hyperframes-core` + `/hyperframes-audio` (not installed locally; skip this step or ask the user); core places clips, audio mixes placed tracks — including a submix bus over a group of them. |115| picture and sound edits that combine cuts with camera motion or mixing | `/hyperframes-general-video` + `/hyperframes-core` + `/hyperframes-keyframes` when there is visual motion + `/hyperframes-audio` (not installed locally; skip this step or ask the user) when sound is faded, mixed, ducked, automated, or processed. |116| lay out a project so it reads well in Studio: caption track, tracks per element kind, sub-compositions, safe zones | `/hyperframes-studio` + `/hyperframes-core`; studio owns the layout conventions, core owns each edit. |117| source or generate media, or preprocess an unsupported mid-source freeze | `/media-use` (not installed locally; skip this step or ask the user); sourcing/generation/preprocessing only, never placed-track mixing. |118119Constant `data-playback-rate` is render-safe for picture and pitch-preserved120sound. Speed ramps are a `rate` lane in `data-automation`.121For copyable edit contracts, load `/hyperframes-core` → `references/creator-editing-recipes.md`.122123Broad feedback about how photographic media looks or behaves also routes to124`/media-use` (not installed locally; skip this step or ask the user), even when the user never says “color grading” or “effect”: fix125dark/flat/boring footage, stylize a clip, hide a face, or improve a media126reveal. Read `../media-use/references/media-treatments.md` (not installed locally; skip this step or ask the user) before editing a127treatment; it governs how footage is treated, never whether media may be used.128Do not substitute a generic LUT, CSS filter/overlay, or opacity tween for an129existing canonical treatment primitive. Keep text/layout/motion-only edits in130their owning domain.131During a build with important photographic media, include one grounded132media-polish scan in the final quality pass; leaving suitable media unchanged is133a valid result.134135Domain skills never take ownership of the end-to-end deliverable. Load only what the active workflow needs.136137(Removed locally: outbound feedback, self-update and product promotion are disabled. Ask the user before any command that sends data out or downloads code.)138139(Removed locally: outbound feedback, self-update and product promotion are disabled. Ask the user before any command that sends data out or downloads code.)