← Back to list
🎬

hyperframes-core Checked

The HyperFrames composition contract — build one renderable project. Use for composition structur…
🎬 Video & Motion skills By calesthio Version v1.0.0 Added 2026-09-07 Updated 2026-09-07 Source ↗
9.5Overall rating
2Views
37Downloads
56.5kStars

Installation

🤖 Install via AI

Copy the prompt below and send it to your AI assistant (e.g. Claude Code) — it will follow the instructions and install automatically.

Install the "hyperframes-core" skill by following the instructions at https://skill123.me/install/hyperframes-core.
⌨️ Command line install

Run in your terminal — downloads and installs to ~/.claude/skills/.

curl -fsSL https://skill123.me/install/hyperframes-core.sh | bash
📦 Download ZIP

Download the zip and extract it into your skills directory (e.g. ~/.claude/skills/), then restart your session.

⬇ Download v1.0.0 · 34 KB
📊 Static rating
9.5/10
Trigger
9.0
Structure
10.0
Workflow
9.2
Content
9.0
Engineering
10.0
Security
10.0

Six-dimension rubric with reviewer rationale.

View scorecard ↓
🛡 Dynamic test
—

Not live-tested yet — this skill is rated on static analysis only.

About this skill

The HyperFrames composition contract — build one renderable project. Use for composition structure, the data-* timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

HyperFrames Core

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.

This skill is the **technical contract** — how to build one hyperframes project. The body below is the build guide; per-topic detail lives in references/ (index next), read on demand. Other concerns live in the sibling domain skills — hyperframes-animation, hyperframes-creative, hyperframes-media, hyperframes-cli, hyperframes-registry. The capability map in /hyperframes says what each one covers.

Documentation

The HyperFrames composition contract — build one renderable project. Use for composition structure, the data-* timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

HyperFrames Core

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.

This skill is the **technical contract** — how to build one hyperframes project. The body below is the build guide; per-topic detail lives in references/ (index next), read on demand. Other concerns live in the sibling domain skills — hyperframes-animation, hyperframes-creative, hyperframes-media, hyperframes-cli, hyperframes-registry. The capability map in /hyperframes says what each one covers.

References

| File | Read it to… |

| ------------------------------------ | ------------------------------------------------------------------------------------------------- |

| references/minimal-composition.md | start from the smallest renderable composition skeleton |

| references/composition-patterns.md | choose monolithic vs modular; structure a modular index.html; pick a sub-comp archetype |

| references/data-attributes.md | look up any data-* (root / clip / sub-comp host / legacy aliases); use class="clip" |

| references/tracks-and-clips.md | pick data-track-index, handle same-track overlap / z-index, time a clip relative to another |

| references/sub-compositions.md | wire a sub-composition (host attrs, <template>, per-instance vars) and animate inside it |

| references/variables-and-media.md | declare variables; place <video>/<audio>, set volume, trim |

| references/determinism-rules.md | build a seekable timeline; determinism bans; the animatable-property allowlist; layout / text fit |

| references/full-screen-motion.md | author full-frame motion with shared backgrounds |

| references/storyboard-format.md | author a STORYBOARD.md plan (+ the parsed manifest) |

| references/script-format.md | author the optional SCRIPT.md locked narration |

| references/subagent-dispatch.md | map subagent dispatch verbs (parallel fan-out / background / wait) to your harness |

| references/tailwind.md | work in a Tailwind v4 project (init --tailwind; runtime contract differs from Studio's v3) |

View full documentation

For animation runtime specifics (GSAP API, Lottie, Three.js, etc.) go to hyperframes-animation → adapters/<runtime>.md.

Building a composition

### Two root forms (not interchangeable)

  • **Standalone** (top-level index.html) — root <div data-composition-id="…"> sits directly in <body>, **no <template> wrapper** (wrapping it hides all content and breaks rendering).
  • **Sub-composition** (loaded via data-composition-src) — root **must** be wrapped in <template>.

> ⚠ Transport rule: the runtime **only clones <template> contents**; everything outside (incl. <head> styles/scripts) is discarded — put <style>/<script> **inside** the template.

> ⚠ Host-id rule: the host slot's data-composition-id must **exactly equal** the inner template's data-composition-id **and** the window.__timelines["<id>"] key — no -mount/-slot/-host suffix.

File shape, host wiring, and the pre-render checklist → references/sub-compositions.md.

### Root must be sized (silent layout bug)

The standalone root needs an explicit **sized box** (width/height in px), and every ancestor down to a height:100% element must have a resolved height — otherwise a flex/100% child collapses to ~0 and content piles into the top-left corner. lint/validate/inspect do **not** catch this. Skeleton → references/minimal-composition.md.

### One paused timeline

Each composition registers **exactly one** gsap.timeline({ paused: true }) at window.__timelines["<id>"] (key = root data-composition-id), built **synchronously** at page load. Render duration = root data-duration, not timeline length. Don't manually nest sub-timelines into the host. Full contract (incl. non-GSAP runtimes) → references/determinism-rules.md + hyperframes-animation/adapters/.

### Non-negotiable rules (silent bugs lint/validate/inspect won't catch)

Surfaced here; full rationale in the linked reference. Do not violate:

  • No render-time clocks / unseeded Math.random / network / input-state; no repeat: -1 (use a finite count). → determinism-rules.md
  • Animate only the visual-property allowlist; never display/visibility; no gsap.set on later-scene clips. → determinism-rules.md
  • No <br> in body text; transformed elements must be block-level + sized; pulsing absolute decoratives need peak clearance. → determinism-rules.md
  • <video>/<audio> must be a **direct child of the host root** (never inside a sub-comp <template>/wrapper); the framework owns playback. → variables-and-media.md
  • Every id must be unique across the **assembled** page; inside a sub-comp, prefix ids with the composition id (#<id>-hero). Duplicate <video>/<img> ids render **blank** — the producer injects frames by getElementById, and cross-file dupes slip past lint. → composition-patterns.md
  • A full-screen scene fill goes on a full-bleed **child** (position:absolute; inset:0), never on the composition root itself — the producer's frame compositing can drop the root element's own background (the frame renders **black**) even though preview/snapshot show it correctly. → composition-patterns.md

Editing existing compositions

  • Read the files first. Preserve unrelated timing, tracks, IDs, variables, media paths.
  • Match existing composition IDs and timeline keys.
  • Adding a clip: pick a non-overlapping data-track-index or adjust surrounding timing intentionally.
  • Adding a sub-composition: verify its internal data-composition-id before wiring the host.

Validation

Use hyperframes-cli for command details

  • [ ] npx hyperframes lint passes (0 errors)
  • [ ] npx hyperframes validate passes (0 console errors)
  • [ ] npx hyperframes inspect passes (0 errors)
  • [ ] Projects with sub-compositions: npx hyperframes snapshot --at <midpoints> and eyeball each frame
  • [ ] npx hyperframes preview for review (the user can edit anything in Studio's timeline)
  • [ ] npx hyperframes render only after the user approves

Score breakdown

Trigger
9.0
Rich What/When with many technical keywords; boundary implied via sibling skills but no explicit when-not.
Structure
10.0
78-line SKILL.md, clean references/ split, index table stating when to read each file, no redundant files.
Workflow
9.2
Task-oriented build guide with hard rules, edit-mode guidance, and lint/validate/inspect/render checklist; freedom well-calibrated.
Content
9.0
Terse imperative writing, concrete commands with npx examples, consistent formatting.
Engineering
10.0
Valid frontmatter, no scripts needed, all referenced paths exist.
Security
10.0
No network calls, no injection text, no secrets; all guidance is local deterministic rendering.
Excellent composition contract: tight 78-line SKILL.md, 13 well-indexed references, non-negotiable rules with silent-bug rationale, and a CLI validation checklist. Only minor gap is no explicit when-not boundary in description.