Ponto de entrada HyperFrames
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 é controlada pela estrutura. O contrato completo de autoria está em /hyperframes-core; leia-o antes de escrever HTML de composição.
1. Iniciar a partir do estado do projeto
Aplique a primeira linha correspondente; não avalie linhas de estado inferiores:
| Estado | Ação |
|---|---|
| Portabilidade explícita de fonte Remotion existente para HyperFrames | Leia a seção /remotion-to-hyperframes de references/workflow-catalog.md, depois roteie diretamente para esse fluxo de trabalho. Pule a camada de intenção. |
| Operação específica em um projeto HyperFrames existente: inspecionar, diagnosticar, validar, visualizar, renderizar, publicar ou renderizar em lote | Realize apenas essa operação. Pule a intenção e o roteamento do fluxo de trabalho; carregue /hyperframes-cli e quaisquer habilidades de domínio necessárias. |
| Edição específica em um projeto existente | Faça a edição. Não execute a camada de intenção. |
BRIEF.md existe | Leia workflow e flow. Execute esse fluxo de trabalho; flow: companion sempre executa em /general-video. Não faça perguntas de briefing. |
Sem briefing, mas hyperframes.json ou STORYBOARD.md existe | Retome a partir dos arquivos do projeto e preferências registradas. Infira o fluxo de trabalho proprietário a partir dos artefatos existentes. Se não puder ser determinado de forma única, faça uma única pergunta de roteamento; não execute a entrevista de intenção. |
| Criação nova | Execute a camada de intenção (§ 4), depois roteie uma vez usando as regras abaixo. |
Continue com os adaptadores de fonte na § 2. Uma rota de fluxo de trabalho direta ou retomada pula §§ 3–4 e prossegue para a instalação do fluxo de trabalho na § 5. Uma operação ou edição específica pula §§ 3–5 e carrega apenas as habilidades de domínio necessárias da § 6.
Se uma solicitação nova não identificar o assunto ou a entrada, pergunte sobre o que é o vídeo antes de rotear. Verifique preferências e receitas antes de perguntar qualquer coisa (§ 4, etapa 1).
Mantenha o CLI do projeto atualizado
Um projeto scaffolded fixa hyperframes@<versão> em seus scripts package.json para que as renderizações permaneçam reproduzíveis; a fixação nunca avança por conta própria, e uma execução fixada de um CLI antigo não emite aviso sobre isso. Ao retomar um projeto cujos scripts carregam uma fixação, faça uma verificação antes do primeiro comando que afete a renderização:
npx hyperframes@latest upgrade --project . --check
A verificação é somente leitura e reporta a fixação em relação ao lançamento mais recente; mantenha o . explícito — em versões antigas do CLI, um --project simples seguido por outra flag consome essa flag como seu valor de diretório. Quando ele reportar que o projeto está desatualizado — ou qualquer saída do CLI já mostrar isso (o aviso stderr This project pins hyperframes@… (latest …), ou _meta.updateAvailable: true em um resultado --json de um script fixado) — aplique com npx hyperframes@latest upgrade --project ., depois verifique com npx hyperframes check. Uma verificação bem-sucedida confirma que as composições do projeto ainda validam na nova versão — não que a saída renderizada seja idêntica quadro a quadro à fixação antiga — portanto, um upgrade bem-sucedido nunca é silencioso: nomeie a versão antiga e a nova no resumo da execução. Um projeto sem composição ainda não precisa de verificação. Se a verificação falhar, reverta a alteração no package.json, continue na versão fixada e reporte em qual versão o projeto permanece e por quê. Aja no sinal em vez de retransmiti-lo ao usuário; nunca deixe uma fixação alterada não verificada.
2. Adaptar entradas ortogonais antes do roteamento
Uma fonte Figma altera como os ativos e o design entram no projeto, não qual fluxo de trabalho é o proprietário da entrega.
Se qualquer entrada for uma URL figma.com:
- Para criação nova, inicie a camada de intenção (§ 4) e complete suas leituras de memória e receitas.
- Durante a triagem de entrada, execute
/figmapara extrair ativos, tokens de marca, componentes e quadros de storyboard quando presentes. Para uma edição de projeto existente, execute/figmasem reabrir a intenção. - Roteie a entrega solicitada usando a saída de
/figma, depois continue apenas com as perguntas de intenção não respondidas da rota selecionada. - Não conduza o Figma através de ferramentas MCP brutas. Isso ignora a sanitização SVG, a proveniência
.media/manifest.jsonle a vinculaçãovar()de token de marca.
Uma URL de PR do GitHub não é uma fonte de site. Uma receita nomeada ou adotada já carrega seu fluxo de trabalho; confirme a adoção através da camada de intenção, depois roteie para esse fluxo de trabalho.
3. Roteamento de criação nova
Use a primeira linha correspondente. Corresponda à entrega solicitada, não a uma palavra ou tipo de arquivo mencionado de passagem.
| Prioridade | Solicitação | Workflow |
|---|---|---|
| 1 | Portabilidade explícita de uma fonte Remotion existente | /remotion-to-hyperframes |
| 2 | Criar uma apresentação, pitch deck ou deck interativo navegável | /slideshow |
| 3 | Adicionar legendas simples ou legendas a uma filmagem existente de talking-head sem alterá-la | /embedded-captions |
| 4 | Adicionar sobreposições gráficas projetadas a uma filmagem existente de talking-head, entrevista ou podcast sem alterar a filmagem | /talking-head-recut |
| 5 | Criar um vídeo sincronizado com batida a partir de uma faixa de música, sem narração ou captura de site | /music-to-video |
| 6 | Criar uma unidade explicitamente curta, sem narração, focada em movimento, tipicamente com menos de 10s | /motion-graphics |
| 7 | Explicar um pull request do GitHub ou alteração de código a partir de uma referência de PR | /pr-to-video |
| 8 | Comercializar ou mostrar um site, site de produto, aplicativo ou empresa a partir de uma URL ou briefing específico do site | /product-launch-video |
| 9 | Explicar um tópico, artigo ou notas com visuais inventados e sem captura de produto ou site | /faceless-explainer |
| 10 | Qualquer outro vídeo ou composição personalizada | /general-video |
Antes de finalizar a rota, leia a seção correspondente de references/workflow-catalog.md. É o contrato canônico de entrada/saída/acionamento disponível antes que as habilidades de fluxo de trabalho instaladas de forma lazy estejam presentes. Se o candidato não satisfizer essa entrada, continue o roteamento em vez de forçar a correspondência.
Resolver ambiguidades comuns
- Uma animação curta de título, sting de logotipo, gráfico de estatística, gráfico de tópico, gráfico de mapa ou terço inferior independente é
/motion-graphicsquando não é narrada e o movimento é a mensagem. Um cartão de título estático, sequência narrada, montagem mais longa ou loop personalizado é/general-video. - Um gráfico em movimento explicitamente curto pode usar uma URL, tweet, artigo ou captura de tela como material de origem. Uma solicitação genérica de "faça um vídeo a partir deste site" é
/product-launch-video. - Filmagem existente com legendas roteia para
/embedded-captions; filmagem com cartões de informação projetados roteia para/talking-head-recut. Re-temporizar, reordenar, recolorir, reenquadrar ou remixar filmagem é uma edição personalizada e cai em/general-video. - Um arquivo de música seleciona
/music-to-videoapenas quando sua grade de batida conduz a peça. Música usada como fundo não substitui a rota correspondente ao assunto. - "Quero um storyboard" altera o processo de revisão, não o fluxo de trabalho. Sem outro sinal de roteamento, use
/general-video. Um storyboard esboçado confirmado pode ser ele próprio a entrega solicitada; o loop de revisão define esse ponto de parada. - Fluxos de trabalho narrativos especializados suportam até cerca de 3 minutos e são mais fortes em torno de 30–90s. Roteie uma peça claramente mais longa para
/general-video. O comprimento nunca substitui uma portabilidade explícita, deck, legenda, sobreposição ou entrega conduzida por música.
4. A camada de intenção — uma conversa, antes de qualquer fluxo de trabalho ser executado
Apenas para criação nova — a tabela de estado da § 1 já decide se esta seção é executada (edições, operações de projeto, projetos com briefing e retomáveis, e portabilidades explícitas do Remotion nunca entram nela). Uma conversa na porta da frente transforma "faça um vídeo para mim" em um briefing confirmado — a rota, as respostas obrigatórias, a forma da execução e tudo o mais na cabeça do usuário — entregue a qualquer fluxo de trabalho que execute e tornado durável como BRIEF.md (formato: ../hyperframes-core/references/brief-format.md). Fluxos de trabalho são donos da execução; esta camada é dona do entendimento. A regra de abertura de cada fluxo de trabalho aponta de volta para cá, para que as perguntas sejam feitas uma vez, independentemente de qual porta o usuário usou.
Estas leituras são obrigatórias quando sua condição corresponder; não as substitua por lembrança, e leia apenas a seção correspondente quando uma referência for organizada por fluxo de trabalho:
| Condição | Leia antes de agir |
|---|---|
| Uma rota é candidata, antes de confirmá-la | Sua seção em references/workflow-catalog.md |
| A rota é conhecida, antes de fazer perguntas específicas da rota | Sua seção em references/route-briefs.md |
| A triagem julgou a solicitação informe, antes de qualquer trabalho conceitual | references/pitch-round.md |
| Oferecendo capacidades opcionais ou coletando mídia fornecida | As linhas filtradas por rota em references/capability-menu.md |
Derivando flow, storyboard, modo ou campos canônicos | ../hyperframes-core/references/brief-contract.md |
1 — Memória antes de perguntas. Duas leituras, ambas obrigatórias, antes de qualquer coisa ser perguntada:
- Padrões lembrados. Deixe
<MEDIA_DIR>ser o diretório de habilidade/media-useinstalado. Para um projeto existente,<MEMORY_ROOT>é sua raiz. Antes de scaffoldar, use um caminho de verificação deliberadamente inexistente sem.media, como/tmp/hyperframes-intent-memory-<run-id>; nunca use o workspace atual. Executenode <MEDIA_DIR>/scripts/prefs.mjs get --hyperframes <MEMORY_ROOT> --json. Torne cada valor lembrado a opção recomendada e nomeie sua fonte. A verificação pré-projeto vê apenas o nível pessoal; não reivindique proveniência do projeto. - Receitas. Execute
node <MEDIA_DIR>/scripts/recipe.mjs list --hyperframes <MEMORY_ROOT> --json. Se o usuário nomear uma receita, disser "como da última vez", ou uma receita corresponder à rota provável, pergunte se deseja adotá-la antes de outras perguntas de briefing — e faça a oferta merecer o sim: diga por que corresponde e o que a adoção economiza ("esta corresponde à sua receita de lançamento promocional — adotá-la preenche destino, proporção, idioma e a especificação de design; você confirmaria a mensagem e as duas perguntas de forma de execução"). Quando várias corresponderem, liste-as e inclua "nenhuma." Uma receita adotada bloqueia os campos que contém; peça apenas seus campos ausentes e as perguntas de forma de execução. Ela não remove os portões de revisão ou aprovação de renderização.
2 — Faça a triagem da entrada. Sobre o que é o vídeo — um site (vendido ou mostrado), um PR, um tópico, uma faixa de música, filmagem existente? E a solicitação é formada — a mensagem, o material e a ocasião legíveis a partir do que o usuário deu — ou informe, um assunto sem uma opinião? O material de origem não resolve isso por si só: um site, documento ou PR carrega sua própria tese, mas cinco narrações dessa tese são cinco vídeos diferentes — uma solicitação cuja única forma vem de sua fonte ("faça um vídeo sobre esta URL") é formada sobre os fatos e informe sobre a narração, e entra na rodada para apresentar a narração. Uma solicitação formada executa a camada exatamente como sempre; nada abaixo é adicionado para ela. Uma informe passa pela rodada de apresentação após o roteamento (etapa 4) e ganha uma pergunta aqui, antes de qualquer coisa ser gerada: o que o usuário já está imaginando? A resposta deles semeia a rodada (references/pitch-round.md). Um usuário que diz que não entende nada de vídeo recebe o mapa de decisão dessa referência em vez de uma sequência de perguntas. Para uma solicitação genuinamente exploratória ("precisamos de um vídeo, mas não tenho certeza de que tipo"), não interrogue — estabeleça o assunto e o que existe para mostrar, uma pergunta de cada vez, depois feche por…
[truncado para tradução]