What problem does it solve? Porting a Remotion (React) video composition to HyperFrames by hand is error-prone: frame-based timing, springs, easings, sequences, and media props all need precise mapping to a seek-driven HTML/GSAP model, and some React patterns (useState, useEffect, async metadata) cannot translate at all. This Skill encodes the full API mapping, lints the source for untranslatable patterns, and validates the result with SSIM-based render diffs. ## Core Features & Use Cases - Source linting: scripts/lint_source.py scans Remotion .ts/.tsx files and classifies findings as blockers (useState, useReducer, useEffect with deps, async calculateMetadata, third-party React UI libraries), warnings (@remotion/lambda, delayRender, useMemo), or info (staticFile, interpolateColors), recommending the runtime interop pattern from PR #214 when blockers appear. - Guided translation: references/ map every Remotion API (Composition, Sequence, Series, interpolate, spring, Easing, Audio, Video, Img, Lottie, fonts, TransitionSeries, Zod props) to its HyperFrames equivalent, emitting a single index.html with data-* attributes and one paused gsap.timeline registered on window.__timelines. - Measured validation: scripts/render_diff.sh computes per-frame SSIM between the Remotion baseline and the HyperFrames render against tier-calibrated thresholds (T1–T3), and scripts/frame_strip.sh produces side-by-side frame strips to debug failures. - Use Case: A user says "port my Remotion project to HyperFrames" — the Skill lints the source, translates the composition, renders both versions, and confirms visual equivalence with a mean SSIM above the tier threshold, writing TRANSLATION_NOTES.md for any dropped constructs. ## Quick Start Ask the agent to port your Remotion composition to HyperFrames by pointing it at your Remotion source directory and requesting a validated translation with an SSIM render diff.