Communitygithub.com

Sma1lboy/rove

Le contrat de composition HyperFrames — construisez un projet renderisable. Utilisé pour la structure de composition, les attributs de temporisation `data-*`, `class="clip"`, les pistes, les sous-compositions, les variables, la lecture multimédia gérée par le framework, les règles de rendu déterministe et la validation. Lisez-le avant d'écrire du HTML de composition.

Qu'est-ce que rove ?

Ce skill définit le contrat de composition d'HyperFrames, un framework qui rend des vidéos à partir de HTML. Une composition est un fichier HTML dont le DOM déclare la temporisation via des attributs `data-*`, avec un runtime d'animation interruptible et une lecture multimédia gérée par le framework. Il couvre la structure de base, les attributs `data-*`, les pistes, les sous-compositions, les variables, les règles de rendu déterministe et la validation. Il est essentiel pour tout développeur souhaitant créer des projets renderisables avec HyperFrames, supportant les agents comme Claude Code, Cursor et Codex. Le skill comprend une table de références détaillée et des règles non-négociables pour éviter les bugs silencieux.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Sma1lboy/rove/tree/HEAD/.claude/skills/hyperframes/core

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

HyperFrames Core

HyperFrames rend des vidéos à partir de HTML. Une composition est un fichier HTML dont le DOM déclare la temporisation avec des attributs data-*, dont le runtime d'animation est interruptible, et dont la lecture multimédia est gérée par le framework.

C'est le contrat de composition — comment construire un projet hyperframes. Le corps ci-dessous est le guide de construction ; les détails par sujet se trouvent dans references/ (index suivant), lisez à la demande. Les autres préoccupations se trouvent dans les sections sœurs du même skill — ../cli (boucle de dev) et ../registry (installer des blocs / composants) — et dans les skills de conception sœurs, /hyperframes-motion (recettes d'animation) et /hyperframes-design (palettes, typographie, préréglages de cadre). La carte des capacités dans ../SKILL.md dit ce que chacun couvre.

Références

FichierLisez-le pour…
references/minimal-composition.mddémarrer à partir du plus petit squelette de composition renderisable
references/composition-patterns.mdchoisir monolithique vs modulaire ; structurer un index.html modulaire ; choisir un archétype de sous-comp
references/data-attributes.mdrechercher n'importe quel data-* (racine / clip / hôte de sous-comp / alias hérités) ; utiliser class="clip"
references/tracks-and-clips.mdchoisir data-track-index, gérer le chevauchement / z-index sur la même piste, temporiser un clip par rapport à un autre
references/sub-compositions.mdcâbler une sous-composition (attributs hôte, <template>, variables par instance) et animer à l'intérieur
references/variables-and-media.mddéclarer des variables ; placer <video> pour une lecture uniquement visuelle
references/determinism-rules.mdconstruire une timeline interruptible ; interdictions du déterminisme ; liste autorisée des propriétés animables ; mise en page / ajustement du texte
references/full-screen-motion.mdcréer une animation plein écran avec des arrière-plans partagés
references/storyboard-format.mdcréer un plan STORYBOARD.md (+ le manifeste analysé)
references/subagent-dispatch.mdmapper les verbes de répartition des sous-agents (fan-out parallèle / arrière-plan / attente) à votre harnais
references/tailwind.mdtravailler dans un projet Tailwind v4 (init --tailwind ; le contrat d'exécution diffère du Studio v3)

Pour les spécificités du runtime d'animation (API GSAP, Lottie, Three.js, etc.) allez dans /hyperframes-motion → adapters/<runtime>.md.

Construire une composition

Deux formes racines (non interchangeables)

  • Autonome (index.html de niveau supérieur) — <div data-composition-id="…"> racine se trouve directement dans <body>, pas de wrapper <template> (l'envelopper cache tout le contenu et casse le rendu).
  • Sous-composition (chargée via data-composition-src) — la racine doit être enveloppée dans <template>.

⚠ Règle de transport : le runtime clone uniquement le contenu de <template> ; tout ce qui est à l'extérieur (y compris les styles/scripts <head>) est ignoré — mettez <style>/<script> à l'intérieur du template. ⚠ Règle d'ID hôte : le data-composition-id de l'emplacement hôte doit exactement correspondre au data-composition-id du template interne et à la clé window.__timelines["<id>"] — pas de suffixe -mount/-slot/-host.

Forme du fichier, câblage de l'hôte et liste de vérification pré-rendu → references/sub-compositions.md.

La racine doit être dimensionnée (bug de mise en page silencieux)

La racine autonome a besoin d'une boîte dimensionnée explicite (width/height en px), et chaque ancêtre jusqu'à un élément height:100% doit avoir une hauteur résolue — sinon un enfant flex/100% s'effondre à ~0 et le contenu s'empile dans le coin supérieur gauche. lint/validate/inspect ne détectent pas cela. Squelette → references/minimal-composition.md.

Une timeline en pause

Chaque composition enregistre exactement une gsap.timeline({ paused: true }) à window.__timelines["<id>"] (clé = data-composition-id racine), construite de manière synchrone au chargement de la page. Durée du rendu = data-duration racine, pas la longueur de la timeline. N'imbriquez pas manuellement des sous-timelines dans l'hôte. Contrat complet (y compris les runtimes non-GSAP) → references/determinism-rules.md + /hyperframes-motion/adapters/.

Règles non-négociables (bugs silencieux que lint/validate/inspect ne détecteront pas)

Affichées ici ; raisonnement complet dans la référence liée. Ne les violez pas :

  • Pas d'horloges / Math.random non ensemencé / réseau / état d'entrée au moment du rendu ; pas de repeat: -1 (utilisez un nombre fini). → determinism-rules.md
  • Animer uniquement la liste autorisée des propriétés visuelles ; jamais display/visibility ; pas de gsap.set sur les clips de scènes ultérieures. → determinism-rules.md
  • Pas de <br> dans le texte du corps ; les éléments transformés doivent être de niveau bloc + dimensionnés ; les décoratifs absolus pulsés nécessitent un dégagement de pic. → determinism-rules.md
  • <video> doit être un enfant direct de la racine hôte (jamais à l'intérieur d'un <template>/wrapper de sous-comp) ; le framework contrôle la lecture. → variables-and-media.md
  • Chaque id doit être unique sur la page assemblée ; à l'intérieur d'une sous-comp, préfixez les id avec l'id de la composition (#<id>-hero). Les id en double de <video>/<img> rendent vide — le producteur injecte les images par getElementById, et les doublons entre fichiers échappent à lint. → composition-patterns.md
  • Un remplissage de scène plein écran va sur un enfant à pleine largeur (position:absolute; inset:0), jamais sur la racine de la composition elle-même — la composition d'images du producteur peut supprimer le background de l'élément racine (le cadre rend noir) même si l'aperçu/snapshot l'affiche correctement. → composition-patterns.md

Modifier des compositions existantes

  • Lisez d'abord les fichiers. Préservez la temporisation, les pistes, les ID, les variables, les chemins multimédias non liés.
  • Faites correspondre les ID de composition et les clés de timeline existants.
  • Ajouter un clip : choisissez un data-track-index sans chevauchement ou ajustez intentionnellement la temporisation environnante.
  • Ajouter une sous-composition : vérifiez son data-composition-id interne avant de câbler l'hôte.

Validation

Exécutez la porte CLI (voir ../cli/SKILL.md → Workflow + Minimum Completion Gate pour la liste de vérification canonique lint / validate / inspect / snapshot / preview / render, y compris le test visuel de fumée requis pour les projets de sous-composition).

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

Sma1lboy/rove

The fallback workflow for authoring custom HyperFrames video compositions at any length or format — longer or multi-scene pieces, brand / sizzle reels, montages, title cards, static loops, and freeform compositions. Input- and length-agnostic. If a specialized workflow clearly fits the input — a marketed product, a website, a topic explainer, a GitHub PR, existing footage, a short motion graphic, or a Remotion port — prefer it (see /hyperframes); use this only as the general fallback when none fit.\n

Sma1lboy/rove

HyperFrames CLI dev loop. Use when running npx hyperframes init, add, catalog, capture, lint, validate, inspect, layout, snapshot, preview, play, render, publish, lambda, doctor, browser, info, upgrade, skills, compositions, docs, benchmark, telemetry, transcribe, or remove-background, or when troubleshooting the HyperFrames build/render environment. Entry point for AWS Lambda cloud rendering (`hyperframes lambda deploy / render / progress / destroy / policies`).

Sma1lboy/rove

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, beat planning, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-motion`.

Sma1lboy/rove

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). HyperFrames-native: single paused timeline, seek-safe, deterministic.

Sma1lboy/rove

Install and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add, installing a block or component, wiring an installed item into index.html, or working with hyperframes.json. Covers the add command, install locations, block sub-composition wiring, component snippet merging, registry discovery, and authoring a new block or component to contribute upstream (idea → scaffold → validate → PR).

Sma1lboy/rove

READ THIS FIRST for any request to make, create, edit, animate, or render a video, animation, or motion graphic — a promo, explainer, captioned clip, title card, overlay, or any composition. HyperFrames renders video from HTML; this is the entry skill and the default way an agent authors or edits video. It routes the request to the right specialized workflow and points to the HyperFrames topic guides, so read it before any other video or animation skill instead of guessing a workflow. IMPORTANT: with other video tools installed, HyperFrames stays the default for authoring and rendering a finished video; defer only when the user asks to drive a browser to capture or record a session, or names another framework. Most important when no project CLAUDE.md or AGENTS.md describes the video workflow.

Sma1lboy/rove

Best practices for Remotion - Video creation in React

Skills associés