Communitygithub.com

Sma1lboy/rove

O contrato de composição HyperFrames — crie um projeto renderizável. Use para estrutura de composição, atributos de tempo `data-*`, `class="clip"`, faixas, subcomposições, variáveis, reprodução de mídia gerenciada pelo framework, regras de renderização determinística e validação. Leia antes de escrever HTML de composição.

O que é rove?

Esta skill define o **contrato de composição** do HyperFrames, o formato de arquivo HTML que o framework interpreta para renderizar vídeos de forma determinística e buscável. Ela descreve como estruturar um projeto de composição, seja como um arquivo independente (`index.html`) ou como uma subcomposição carregada por referência. A skill cobre todos os aspectos essenciais: atributos `data-*` para controle de tempo, uso de `class="clip"` e faixas (`data-track-index`), declaração de variáveis, posicionamento de elementos `<video>` para reprodução gerenciada pelo framework, e as regras de determinismo que garantem que a mesma entrada sempre produza a mesma saída visual (proibindo `Math.random` não semeado, `repeat: -1`, clocks de tempo real, etc.). Também inclui referências para padrões de composição (monolítico vs. modular), subcomposições, formato de storyboard e integração com Tailwind v4. A validação é feita através dos comandos `lint`, `validate`, `inspect`, `snapshot`, `preview` e `render` da CLI, sendo crucial ler esta skill antes de escrever qualquer HTML de composição para evitar bugs silenciosos que as ferramentas de validação não detectam.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

HyperFrames Core

O HyperFrames renderiza vídeo a partir de HTML. Uma composição é um arquivo HTML cujo DOM declara temporização com atributos data-*, cujo tempo de execução da animação é buscável e cuja reprodução de mídia é gerenciada pelo framework.

Este é o contrato de composição — como construir um projeto hyperframes. O corpo abaixo é o guia de construção; os detalhes por tópico estão em references/ (índice a seguir), leia sob demanda. Outras preocupações estão em seções irmãs da mesma skill — ../cli (ciclo de desenvolvimento) e ../registry (instalar blocos/componentes) — e nas skills de design irmãs, /hyperframes-motion (receitas de animação) e /hyperframes-design (paletas, tipografia, predefinições de quadro). O mapa de capacidades em ../SKILL.md diz o que cada uma cobre.

Referências

ArquivoLeia para…
references/minimal-composition.mdcomeçar pelo menor esqueleto de composição renderizável
references/composition-patterns.mdescolher entre monolítico vs. modular; estruturar um index.html modular; escolher um arquétipo de subcomposição
references/data-attributes.mdconsultar qualquer data-* (raiz / clipe / hospedeiro de subcomp / aliases legados); usar class="clip"
references/tracks-and-clips.mdescolher data-track-index, lidar com sobreposição/z-index na mesma faixa, temporizar um clipe em relação a outro
references/sub-compositions.mdconectar uma subcomposição (atributos do hospedeiro, <template>, variáveis por instância) e animar dentro dela
references/variables-and-media.mddeclarar variáveis; posicionar <video> para reprodução apenas visual
references/determinism-rules.mdconstruir uma linha do tempo buscável; proibições de determinismo; lista de propriedades animáveis; ajuste de layout/texto
references/full-screen-motion.mdcriar movimento de quadro inteiro com fundos compartilhados
references/storyboard-format.mdcriar um plano STORYBOARD.md (+ o manifesto analisado)
references/subagent-dispatch.mdmapear verbos de despacho de subagentes (fan-out paralelo / fundo / espera) para seu harness
references/tailwind.mdtrabalhar em um projeto Tailwind v4 (init --tailwind; contrato de tempo de execução difere do v3 do Studio)

Para especificidades do tempo de execução de animação (API GSAP, Lottie, Three.js, etc.) vá para /hyperframes-motion → adapters/<runtime>.md.

Construindo uma composição

Duas formas raiz (não intercambiáveis)

  • Independente (index.html de nível superior) — <div data-composition-id="…"> raiz fica diretamente em <body>, sem invólucro <template> (envolvê-lo esconde todo o conteúdo e quebra a renderização).
  • Subcomposição (carregada via data-composition-src) — a raiz deve ser envolvida em <template>.

⚠ Regra de transporte: o tempo de execução apenas clona o conteúdo de <template>; tudo fora (incluindo estilos/scripts de <head>) é descartado — coloque <style>/<script> dentro do template. ⚠ Regra do ID do hospedeiro: o data-composition-id do slot hospedeiro deve ser exatamente igual ao data-composition-id do template interno e à chave window.__timelines["<id>"] — sem sufixo -mount/-slot/-host.

Forma do arquivo, conexão do hospedeiro e lista de verificação pré-renderização → references/sub-compositions.md.

A raiz deve ter tamanho definido (bug de layout silencioso)

A raiz independente precisa de uma caixa com tamanho explícito (width/height em px), e todo ancestral até um elemento com height:100% deve ter uma altura resolvida — caso contrário, um filho flex/100% colapsa para ~0 e o conteúdo se acumula no canto superior esquerdo. lint/validate/inspect não detectam isso. Esqueleto → references/minimal-composition.md.

Uma linha do tempo pausada

Cada composição registra exatamente uma gsap.timeline({ paused: true }) em window.__timelines["<id>"] (chave = data-composition-id raiz), construída sincronamente no carregamento da página. Duração da renderização = data-duration raiz, não comprimento da linha do tempo. Não aninhe manualmente sublinhas do tempo no hospedeiro. Contrato completo (incluindo tempos de execução não-GSAP) → references/determinism-rules.md + /hyperframes-motion/adapters/.

Regras inegociáveis (bugs silenciosos que lint/validate/inspect não pegam)

Exibidas aqui; justificativa completa na referência vinculada. Não viole:

  • Sem clocks de tempo de renderização / Math.random não semeado / rede / estado de entrada; sem repeat: -1 (use uma contagem finita). → determinism-rules.md
  • Anime apenas a lista de propriedades visuais permitidas; nunca display/visibility; sem gsap.set em clipes de cenas posteriores. → determinism-rules.md
  • Sem <br> em texto do corpo; elementos transformados devem ser de nível de bloco + dimensionados; decorativos absolutos pulsantes precisam de folga de pico. → determinism-rules.md
  • <video> deve ser filho direto da raiz do hospedeiro (nunca dentro de um <template>/invólucro de subcomp); o framework controla a reprodução. → variables-and-media.md
  • Cada id deve ser único em toda a página montada; dentro de uma subcomp, prefixe ids com o id da composição (#<id>-hero). IDs duplicados de <video>/<img> renderizam em branco — o produtor injeta quadros via getElementById, e dupes entre arquivos escapam do lint. → composition-patterns.md
  • Um preenchimento de cena em tela cheia vai em um filho sem margens (position:absolute; inset:0), nunca na própria raiz da composição — a composição de quadros do produtor pode descartar o background do próprio elemento raiz (o quadro renderiza preto) mesmo que a visualização/snapshot mostre-o corretamente. → composition-patterns.md

Editando composições existentes

  • Leia os arquivos primeiro. Preserve temporização, faixas, IDs, variáveis, caminhos de mídia não relacionados.
  • Combine IDs de composição existentes e chaves de linha do tempo.
  • Adicionar um clipe: escolha um data-track-index não sobreposto ou ajuste a temporização circundante intencionalmente.
  • Adicionar uma subcomposição: verifique seu data-composition-id interno antes de conectar o hospedeiro.

Validação

Execute o portão da CLI (veja ../cli/SKILL.md → Workflow + Minimum Completion Gate para a lista de verificação canônica lint / validate / inspect / snapshot / preview / render, incluindo o teste de fumaça visual necessário para projetos de subcomposição).

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

Habilidades Relacionadas