Individual skill
remotion-to-hyperframes
Translate an existing Remotion (React-based) video composition into a HyperFrames HTML composition. Use ONLY when the user explicitly asks to port, convert, migrate, translate, or rewrite a Remotion composition as HyperFrames (e.g. "port my Remotion project to HyperFrames"). Do NOT use when (a) authoring a NEW HyperFrames composition (even if A/B-testing a Remotion video); (b) Remotion is mentioned in passing; (c) Remotion code is shared as reference, not for translation; (d) the user wants "the same video as my Remotion one" without explicitly asking to migrate the source — treat as a fresh HyperFrames build. When in doubt, default to the `hyperframes` skill. Detects unsupported patterns (useState, useEffect side effects, async calculateMetadata, third-party React component libraries, `@remotion/lambda`) and recommends the runtime interop escape hatch instead of a lossy translation.
remotion-to-hyperframes/SKILL.md
Source commit 645553ca7622570479e330cc089c65fcf34e0ba8
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 6, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 460
- Repository last updated
- Nov 4, 2026
- License
- Apache-2.0
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- testing Derived category
- engineering Derived category
- engineering-web Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 8,938 bytesSKILL.mdcore · 8,938 bytesSKILL.mdcore · 8,938 bytesSKILL.mdcore · 8,938 bytesSKILL.mdcore · 8,938 bytesSKILL.mdcore · 8,938 bytesSKILL.mdcore · 8,938 bytesSKILL.mdcore · 8,938 bytesSKILL.mdcore · 8,938 bytesassets/.gitkeepasset · 0 bytesassets/test-corpus/.gitignoreasset · 16 bytesassets/test-corpus/run.shruns · 8,421 bytesassets/test-corpus/tier-1-title-card/.gitignoreasset · 128 bytesassets/test-corpus/tier-1-title-card/README.mddoc · 2,221 bytesassets/test-corpus/tier-1-title-card/expected.jsonasset · 1,772 bytesassets/test-corpus/tier-1-title-card/hf-src/index.htmlasset · 1,837 bytesassets/test-corpus/tier-1-title-card/remotion-src/package.jsonruns · 296 bytesassets/test-corpus/tier-1-title-card/remotion-src/remotion.config.tsruns · 497 bytesassets/test-corpus/tier-1-title-card/remotion-src/src/Root.tsxruns · 259 bytesassets/test-corpus/tier-1-title-card/remotion-src/src/TitleCard.tsxruns · 773 bytesassets/test-corpus/tier-1-title-card/remotion-src/src/index.tsruns · 109 bytesassets/test-corpus/tier-1-title-card/remotion-src/tsconfig.jsonasset · 337 bytesassets/test-corpus/tier-2-multi-scene/.gitignoreasset · 215 bytesassets/test-corpus/tier-2-multi-scene/README.mddoc · 3,152 bytesassets/test-corpus/tier-2-multi-scene/expected.jsonasset · 2,002 bytesassets/test-corpus/tier-2-multi-scene/hf-src/index.htmlasset · 3,782 bytesassets/test-corpus/tier-2-multi-scene/remotion-src/package.jsonruns · 298 bytesassets/test-corpus/tier-2-multi-scene/remotion-src/remotion.config.tsruns · 497 bytesassets/test-corpus/tier-2-multi-scene/remotion-src/src/MultiScene.tsxruns · 2,367 bytesassets/test-corpus/tier-2-multi-scene/remotion-src/src/Root.tsxruns · 264 bytesassets/test-corpus/tier-2-multi-scene/remotion-src/src/index.tsruns · 109 bytesassets/test-corpus/tier-2-multi-scene/remotion-src/tsconfig.jsonasset · 337 bytesassets/test-corpus/tier-2-multi-scene/setup.shruns · 1,244 bytesassets/test-corpus/tier-3-data-driven/.gitignoreasset · 128 bytesassets/test-corpus/tier-3-data-driven/README.mddoc · 5,026 bytesassets/test-corpus/tier-3-data-driven/expected.jsonasset · 3,448 bytesassets/test-corpus/tier-3-data-driven/hf-src/index.htmlasset · 9,102 bytesassets/test-corpus/tier-3-data-driven/remotion-src/package.jsonruns · 319 bytesassets/test-corpus/tier-3-data-driven/remotion-src/remotion.config.tsruns · 497 bytesassets/test-corpus/tier-3-data-driven/remotion-src/src/Root.tsxruns · 681 bytesassets/test-corpus/tier-3-data-driven/remotion-src/src/Stargazed.tsxruns · 970 bytesassets/test-corpus/tier-3-data-driven/remotion-src/src/components/AnimatedNumber.tsxruns · 740 bytesassets/test-corpus/tier-3-data-driven/remotion-src/src/components/StatCard.tsxruns · 1,474 bytesassets/test-corpus/tier-3-data-driven/remotion-src/src/components/UnderlinedText.tsxruns · 1,154 bytesassets/test-corpus/tier-3-data-driven/remotion-src/src/index.tsruns · 109 bytesassets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/OutroScene.tsxruns · 423 bytesassets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/StatsScene.tsxruns · 676 bytesassets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/TitleScene.tsxruns · 1,230 bytesassets/test-corpus/tier-3-data-driven/remotion-src/tsconfig.jsonasset · 337 bytesassets/test-corpus/tier-4-escape-hatch/README.mddoc · 2,825 bytesassets/test-corpus/tier-4-escape-hatch/cases/01-use-state.tsxruns · 1,000 bytesassets/test-corpus/tier-4-escape-hatch/cases/02-use-effect-deps.tsxruns · 954 bytesassets/test-corpus/tier-4-escape-hatch/cases/03-async-metadata.tsxruns · 1,128 bytesassets/test-corpus/tier-4-escape-hatch/cases/04-third-party-react.tsxruns · 1,183 bytesassets/test-corpus/tier-4-escape-hatch/cases/05-lambda-config.tsxruns · 1,425 bytesassets/test-corpus/tier-4-escape-hatch/cases/06-warnings-only.tsxruns · 1,387 bytesassets/test-corpus/tier-4-escape-hatch/cases/07-custom-hook.tsxruns · 1,094 bytesassets/test-corpus/tier-4-escape-hatch/cases/08-mixed.tsxruns · 1,166 bytesassets/test-corpus/tier-4-escape-hatch/expected.jsonasset · 2,784 bytesassets/test-corpus/tier-4-escape-hatch/validate.shruns · 3,534 bytesreferences/api-map.mddoc · 12,391 bytesreferences/escape-hatch.mddoc · 5,403 bytesreferences/eval.mddoc · 5,589 bytesreferences/fonts.mddoc · 3,246 bytesreferences/limitations.mddoc · 4,857 bytesreferences/lottie.mddoc · 4,177 bytesreferences/media.mddoc · 3,872 bytesreferences/parameters.mddoc · 4,620 bytesreferences/sequencing.mddoc · 5,146 bytesreferences/timing.mddoc · 6,201 bytesreferences/transitions.mddoc · 4,500 bytesscripts/.gitkeepruns · 0 bytesscripts/frame_strip.shruns · 3,731 bytesscripts/lint_source.pyruns · 12,162 bytesscripts/render_diff.shruns · 3,066 bytesscripts/tests/fixtures/blocker.tsxruns · 1,853 bytesscripts/tests/fixtures/clean.tsxruns · 1,379 bytesscripts/tests/smoke.shruns · 3,635 bytes
Read excerpt
# Remotion to HyperFrames
## Overview
Translate Remotion (React-based) video compositions into HyperFrames (HTML + GSAP) compositions. Most Remotion idioms have direct HyperFrames equivalents — the translation is mechanical for ~80% of typical compositions. This skill encodes the mapping and guards against the lossy 20% by refusing to translate patterns that don't fit HF's seek-driven model and recommending the runtime interop pattern from [PR #214](https://github.com/heygen-com/hyperframes/pull/214) instead.
The skill ships with a **tiered test corpus** (T1–T4, 4 fixtures total) that grades translations against measured SSIM thresholds. Don't translate without running the eval — a translation that "looks right" but renders 0.05 SSIM lower than the validated baseline is silently wrong.
## When to use
**Use this skill ONLY when the user explicitly asks to migrate from Remotion.** Example trigger phrases:
- "port my Remotion project to HyperFrames"
- "convert this Remotion code to HyperFrames"