O que Motion Showreel faz?
Transforme uma ideia em um vídeo focado em gráficos, texto ou animações de interface, entregando MP4 e código-fonte reproduzível. Preserve a densidade de movimento e a liberdade criativa de um curta, mas também suporte a criação de conteúdos de até 20 minutos organizados em capítulos.
Princípio: a página expõe um render(t) determinístico, o script captura quadros sequenciais e o ffmpeg compila o MP4. Imagens, narração, música e efeitos sonoros compartilham o timeline.js. Sem narração, a organização visual segue o conteúdo e o ritmo da música; com narração, o tempo real da voz dita a sequência, e a música e os efeitos são ajustados em torno dela.
De onde vêm os bons vídeos: densidade de mudança, qualidade do movimento, um ponto memorável e a relação áudio-visual geralmente definem a percepção. Mas como e quanto algo se move é determinado pelo estilo e conteúdo – nem todo vídeo precisa de múltiplas câmeras, molas ou efeitos sonoros em cada batida. Globalmente, apenas alguns limites básicos (veja "Limites") são fixos; todo o resto é um ponto de partida para o modelo, não um teto.
Senso de vídeo: vídeos explicativos, demonstrações de produto e narrativas devem fazer com que os objetos e suas relações evoluam com o conteúdo, mantendo a continuidade espacial entre os takes. Não transforme cada frase da narração em um slide de título estático com fade-in, zoom e partículas de fundo. O storyboard deve primeiro responder "o que o espectador precisa entender que mudou?", "qual é o estado anterior e posterior do sujeito?" e "como isso se conecta ao take anterior?" – só então escolha a animação. Logos, tipografia cinética, loops e estilos intencionalmente estáticos seguem sua própria gramática; não julgue a qualidade por movimento constante ou 60fps forçados. Veja references/craft.md seção "Narrativa Contínua".
Escopo
| O usuário quer | Usar esta Skill? |
|---|---|
| Vídeo promocional de produto, portfólio de motion, animação de UI, tipografia cinética / sync de batida, vinheta de logo, bumper, GIF em loop | ✅ |
| Pessoa em chroma key (gerada por modelo de vídeo) + cenário, texto e animação em código | ✅ Pessoa fornecida pelo usuário (references/formats.md Classe H) |
| Roteiro ou gravação de narração fornecida pelo usuário, para exportar MP4 com locução | ✅ Modo dirigido por narração; TTS deve usar o roteiro original fornecido pelo usuário |
| Apresentação com clique, palestra ao vivo, demo interativa, ou transformar artigo em roteiro narrado | Use web-video-presentation |
| Página web, landing page, protótipo interativo, layout visual estático | ❌ Use web-design-engineer |
| Performance de pessoas realistas, textura fotorrealista, edição de素材 existente, gerar cenas direto com modelo de vídeo | ❌ |
Duração: máximo de 20 minutos (1200 segundos), conforme duração confirmada pelo usuário. Curtas-metragens ainda funcionam bem com 5–60 segundos; não transforme um longo vídeo em 20 minutos de cortes densos e sincopados. Acima de 2 minutos, leia references/long-form.md e planeje, produza e revise por capítulos. Se a duração especificada pelo usuário conflitar com o comprimento real da narração ou a quantidade de conteúdo, pare e confirme um ajuste – não corte, acelere a narração ou altere a duração sem autorização.
Pontos fortes e armadilhas do Opus
- Pontos fortes: pode misturar Canvas, SVG/DOM, WebGL, Three.js em um único arquivo, trocando de mídia a cada cena; movimentos podem ser calculados com fórmulas precisas (molas de forma fechada, grade de batidas, motion blur subquadro); som e imagem leem a mesma timeline; capacidade de renderizar quadros estáticos, revisar e modificar autonomamente por longos períodos; forte senso estético – um simples "dê o seu melhor" pode gerar algo impressionante.
- Armadilhas padrão: sem restrições, a imagem tende a fundo escuro, texto central e grande, todos os elementos com fade-in simultâneo, gradiente roxo-azul com brilho, câmera fixa; a música tende a cair em Lá menor, quatro acordes, cada batida forte com impact + crash, sino no final – vários vídeos soam como a mesma música. Portanto, primeiro encontre referências (visual e sonora), defina o estilo e uma lista de proibições. Mas as restrições não devem ser imutáveis: o banco de estilos e técnicas desta Skill são pontos de partida; sinta-se à vontade para adaptar, misturar ou personalizar conforme o tema.
- O que não faz bem: pessoas realistas, mãos/cabelo/tecido complexos, precisão física realista, produtos fotorrealistas (a menos que o usuário forneça modelo ou imagem). Nestes casos, estilize ou use a divisão de trabalho: chroma key + cenário em código.
Fluxo de trabalho
0 Verificação de ambiente (uma vez)
1 Levantamento de requisitos ── Preencher campos obrigatórios, resumir → 🛑 Aguardar confirmação do usuário
2 brief.md ── Referências → Uso + Estilo → Reel Read → Storyboard + Plano de som
3 Quadros de estilo ── Estilo definido: 3 quadros; Estilo indefinido: 1 quadro de cada uma das 3 direções → 🛑 Aguardar confirmação do usuário
4 Produção ── Com narração: preparar áudio real e timestamps → timeline → cena por cena → prévia → versão final
5 Música e mixagem ── BGM e efeitos sonoros com fontes independentes; com narração, voz em primeiro plano
6 Validação ── Verificação técnica (programática, deve passar tudo) + Revisão (identificar problemas nas imagens, submeter ao julgamento final do usuário)
7 Entrega
Diretório de trabalho: crie <slug>/ no diretório atual do usuário; coloque todos os arquivos lá: brief.md, index.html, motion.js, timeline.js, score.mjs ou score.tone.js (conforme a escolha de --audio do scaffold), build.sh, fonts/, assets/, audio/, qa/, out/.
Passo 0: Ambiente
Na primeira execução, rode sh <skill>/scripts/setup.sh: ele instala Playwright e Chromium, depois executa check-env.mjs. Necessita Node 18+ e ffmpeg; se faltar, informe ao usuário como instalar – não instale software de sistema pelo usuário. A ferramenta tem testes próprios: cd <skill>/scripts && npm test.
Passo 1: Levantamento de requisitos (pare e aguarde o usuário)
Pergunte apenas o que está faltando; não repita o que já foi fornecido. As seguintes informações são obrigatórias e não podem ser substituídas por valores padrão fixos sem a decisão do usuário:
| Informação obrigatória | O que precisa ser claro |
|---|---|
| Tema central, conteúdo a ser criado | O que será apresentado, quais conteúdos devem aparecer |
| Duração | Segundos ou minutos exatos; se pequenas variações são permitidas; não pode exceder 1200 segundos |
| Orientação (paisagem/retrato) | Definir as dimensões reais conforme a escolha; também manter a capacidade de o usuário especificar outras proporções como 1:1. Resolução e taxa de quadros podem ser sugeridas e incluídas no resumo de confirmação |
| Fonte do BGM | Síntese própria / Fornecido pelo usuário; o usuário também pode desligar explicitamente |
| Fonte dos efeitos sonoros | Síntese própria / Fornecido pelo usuário; escolha independente do BGM; também pode ser desligado |
| Modo de narração | Sem narração / TTS por IA / Gravação fornecida pelo usuário |
Condicionalmente obrigatório: se a opção for TTS, o roteiro deve ser fornecido pelo usuário – não escreva, complemente, modifique ou sintetize sem autorização; também especifique o serviço TTS e a configuração de API necessária (reutilize configuração existente, credenciais em variáveis de ambiente, não incluídas no brief). Suporta Gemini, MiniMax e adaptadores personalizados; leia references/narration.md conforme necessário. Se for gravação do usuário, necessário o arquivo de áudio ou URL acessível; se for BGM/efeito do usuário, necessário o arquivo correspondente. O idioma da narração, timbre, etc., que puderem ser inferidos do roteiro ou configuração, devem ser incluídos no resumo; caso contrário, pergunte.
Informações opcionais: materiais de referência, público-alvo e plataforma de publicação, estilo do tema. Se público e plataforma não forem fornecidos, infira com base no conteúdo e mencione no resumo. Se o estilo não for fornecido, deixe para a fase de quadros de estilo, onde três direções serão propostas.
Como lidar com materiais: se o usuário já forneceu conteúdo específico e autorizou a geração por IA, produza com base nisso; se não houver conteúdo suficiente, solicite os materiais necessários – também pode fazer pesquisa online sobre o tema e preservar as fontes. Se houver roteiro de narração, extraia informações dele primeiro, sem pedir que o usuário repita. A IA pode gerar ilustrações, cenas, gráficos abstratos e conteúdo ilustrativo claramente identificado; funções reais de produto, números e materiais de marca ainda seguem os "Limites" – não use informações fictícias para se passar por conteúdo real. Requisitos para logotipos de marca ou capturas de tela de produtos reais estão em references/stack.md.
- Se o usuário forneceu vídeos de referência: primeiro execute
inspect.mjs sheet <ref> --cells 30para uma visão geral,inspect.mjs grid <ref> --stripspara medir os pontos de corte e a grade de batidas (candidatos a BPM, quantos passos por seção, quadros contínuos de cada transição), einspect.mjs heat <ref>para ver onde e quanto se move em cada seção. Registre as medições no brief na seção de referência. Apenas aprenda a estrutura e as técnicas, não copie materiais. - Se o usuário forneceu uma faixa musical: sem narração, execute primeiro
audio.mjs beats <track> --out <slug>/audio/beats.json; com narração, as batidas da música se subordinam ao ritmo da fala. - Para nomes de produtos, marcas ou termos técnicos que aparecerão, verifique se estão corretos primeiro.
Depois de preencher tudo, resuma tema, duração, proporção, fontes de BGM/efeitos, modo de narração e situação dos materiais, e pare e aguarde a confirmação do usuário antes de escrever o brief. Mesmo que a primeira solicitação já tenha todas as informações, envie o resumo para confirmação. Se o usuário disser "faça o seu melhor", "me surpreenda" ou "você decide", isso autoriza escolhas criativas, mas não elimina a necessidade de informações obrigatórias ou de pular a confirmação; apenas continue se o usuário solicitar explicitamente que uma confirmação seja ignorada, e registre essa autorização.
Modo autônomo: mantenha a liberdade criativa, cumprindo apenas os limites e o pipeline técnico. Estilo, estrutura e técnicas podem ser decididos por conta própria, e o banco de estilos não precisa ser usado. Ainda escreva o brief e forneça três direções, seguindo as regras acima para as duas confirmações; exceto quando o usuário dispensar explicitamente a confirmação.
Passo 2: brief.md
Primeiro, encontre referências: antes de começar, escolha 1–2 obras de referência para este vídeo (este tema + este uso) – podem ser aberturas de filmes, comerciais, jogos, trabalhos de motion, movimentos de design. No brief, escreva "o que aprender" (composição, ritmo, gramática de câmera, lógica de cores, estrutura musical) e "o que não aprender" (personagens, takes específicos, melodia, logotipo, arquivo de fonte). Referências elevam o teto mais do que qualquer regra.
Depois, pense em três estruturas candidatas: por exemplo, uma jornada, um antes e depois, uma contagem regressiva, uma transformação, um plano-sequência sem cortes. Escreva 2–3 linhas para cada uma, escolha uma e justifique. A primeira ideia que vem à mente é geralmente o clichê do estilo.
Escolha Uso e Estilo separadamente:
- Uso (o que será filmado, a estrutura narrativa) – veja
references/formats.md, leia apenas a seção correspondente. - Estilo (aparência, movimento, som) – primeiro veja
references/styles/INDEX.md, depois leia apenas os 1–2 arquivos de estilo selecionados. O estilo pode ser usado diretamente, modificado (substituindo uma ou duas regras), ou mesclado (um principal e um secundário, ou alternando mídia por parágrafo), ou personalizado conformestyles/_template.md. As regras de estilo permanecem inalteradas; a história, os takes e a estrutura vêm do tema do usuário, não recicle de outros vídeos. Cada arquivo de estilo tem as seções "Sinais de identificação" e "Versão mais clichê": escolha 2–3 sinais com base no tema (pelo menos um fora do clichê) e, no brief, indique quais clichês foram evitados ou por que foram mantidos. Quando o usuário escolhe um estilo, ele quer reconhecê-lo instantaneamente – dois ou três sinais são suficientes. - Depois, acesse
references/craft.md(banco de técnicas) conforme necessário.
Escreva o brief seguindo references/brief-template.md. O núcleo é:
Reel Read:
format: [uso, tipo do formats.md]
benchmark: [referências · o que aprender · o que não aprender]
structure: [três estruturas candidatas → qual foi escolhida, por quê]
style: [estilo do styles/ (com modificações), ou esquema de mesclagem, ou regras personalizadas]
signals: [quais 2–3 sinais de identificação foram escolhidos e por quê; quais clichês foram evitados]
takeaway: [uma frase ou imagem que o espectador deve lembrar]
hook: [o que acontece no primeiro 1 segundo]
signature: [ponto memorável: em que segundo, qual técnica]
palette / type / motion / camera / texture: [valores específicos conforme o estilo escolhido]
sound: [sem som / sintetizado (referência sonora, groove, harmonia, instrumentação, curva, veja sound.md seção 2) / faixa do usuário (BPM, drop)]
audio-sources: [BGM e efeitos sonoros, cada um: IA / usuário / desligado]
narration: [sem / TTS com roteiro original do usuário / gravação do usuário; se houver narração, caminho da timeline de frases, voz em primeiro plano]
forbidden: [lista de proibições para este vídeo]
Em seguida, escreva a tabela de storyboard: sem narração, mantenha a grade de batidas + tabela de storyboard. Com narração, associe as frases aos takes e eventos, escrevendo: Take / ID da frase | Mudança a ser explicada | Estado inicial e final do objeto | Objetos e espaço herdados do take anterior | Eventos-chave e base temporal | Take e som. Um único take pode cobrir várias frases; uma frase pode ter várias ações. Não trate cada frase como um comando de corte, nem exija que cada frase preencha a tela. Os intervalos reais serão preenchidos após a preparação do áudio; não use a estimativa de tempo por contagem de palavras como alinhamento final. Para vídeos longos, adicione uma tabela de capítulos, duração de cada capítulo e regras de consistência entre capítulos.
Se o usuário disse apenas "faça o seu melhor", traduza isso nas restrições concretas acima – caso contrário, o resultado será aleatório.
Passo 3: Quadros de estilo (segunda pausa para confirmação do usuário)
Crie o projeto: sh <skill>/scripts/scaffold.sh <slug> [--audio synth|tone|layer|file|none] (synth = síntese nível 1; copia apenas a score selecionada; file usa a trilha final já preparada). Os valores padrão do scaffold são apenas para inicialização técnica e não substituem a confirmação de requisitos. O starter serve apenas para verificar se o pipeline funciona – substitua as imagens e o texto.
A. O usuário já definiu o estilo (ou forneceu referências claras): Os segundos nos comandos abaixo são apenas exemplos; use os tempos efetivos da abertura, ponto memorável e final do seu vídeo. Não copie 14.5 segundos para curtas ou longas.
- Crie com código real os quadros do hook, do ponto memorável e do final, com as cores, fontes e texto finais.
render.mjs <slug> --still 0.6,7.2,14.5 --sheet, revise você mesmo, corrija problemas óbvios antes de mostrar ao usuário. Se o movimento for essencial para a direção, gere também uma prévia contínua (--start --duration) conforme descrito abaixo.- Envie ao usuário o resumo do Reel Read, o esboço do storyboard e os quadros de estilo, perguntando "A direção está correta?".
B. O usuário não definiu o estilo (incluindo modo autônomo): Forneça 3 direções bem distintas, conforme regras em styles/INDEX.md:
- A: alinhada ao tema/marca; B: uma linguagem visual diferente (de outro grupo); C: ousada (personalizada, mesclada ou estruturalmente ousada – pelo menos uma direção não vem do banco).
- Para cada direção, escreva um mini Reel Read (estilo, referência, ponto memorável, direção musical, 3–5 linhas) e renderize com código real um quadro-chave que melhor a represente. Coloque as três direções no mesmo projeto, alternando com
?dir=a|b|c. B e C servem apenas para este quadro-chave – não precisam formar um vídeo reproduzível. render.mjs <slug> --directions a,b,c --at 14.5,2,0renderiza os três de uma vez e geraqa/directions.pngcom rótulos. Envie ao usuário e pergunte "Qual escolher, ou como misturar?".
Em ambos os casos, realmente aguarde a resposta do usuário antes de prosseguir para a produção. Em projetos TTS, anexe também o esquema de segmentação do roteiro original e uma amostra curta do timbre (usando apenas o texto fornecido pelo usuário), confirmando a direção do som juntos – sem criar um ponto de parada adicional obrigatório. Se o usuário declarou explicitamente que não precisa de confirmação, escolha um, justifique, revise e continue; na entrega, forneça as direções não escolhidas (no caso B, o qa/directions.png; no caso A, uma frase sobre cada uma das outras duas direções possíveis), para que o usuário possa mudar de ideia.
Para direções que dependem de movimento contínuo, além dos quadros estáticos, anexe uma prévia de 6–10 segundos de movimento representativo (para vídeos com menos de 6 segundos, use o vídeo inteiro), cobrindo pelo menos uma mudança de estado e sua preparação; primeiro verifique você mesmo os quadros contínuos para eliminar saltos. A prévia é confirmada junto com os quadros de estilo, sem adicionar uma terceira parada obrigatória. Se a narração ainda não foi gerada, marque-a explicitamente como uma prévia de movimento, sem afirmar que está alinhada com precisão à voz.
Passo 4: Produção
Antes de produzir, leia references/stack.md (contrato da página, determinismo, armadilhas de cada tecnologia). Para receitas prontas, consulte references/recipes.md.
Com narração, primeiro fixe a linha do tempo da narração: siga references/narration.md para sintetizar o roteiro original do usuário ou importar a gravação, obtendo a duração real e os timestamps das frases; depois organize as imagens. A gravação do usuário precisa ser transcrita com uma ferramenta disponível ou receber um SRT/JSON com texto e tempo; sem timestamps confiáveis, não afirme que o alinhamento frase a frase está completo. Se houver conflito de duração, confirme primeiro – não preencha, corte ou acelere silenciosamente. Importe os intervalos reais para a tabela de takes, preservando pausas e ênfases da narração; não force alinhamento com compassos musicais. Acima de 2 minutos, siga references/long-form.md para produzir por capítulos, mantendo cache de capítulos.
As frases apenas fornecem o intervalo de sincronia; os takes e movimentos do sujeito podem continuar através de múltiplas frases. Se uma mudança crítica exigir sincronia no nível da palavra, use o tempo real das palavras ou marcadores anotados manualmente, consultando narration.js, para que imagem e som façam referência ao mesmo evento; com apenas timestamps de frase, mantenha a sincronia no nível da frase – não invente pontos de tempo palavra por palavra. Durante a produção, use preview.mjs com áudio para pré-visualização com scrubbing e verificação quadro a quadro; a pré-visualização usa o mesmo render(t), não entra na renderização final.
- Escreva todos os pontos de tempo em
timeline.js; a página escore.mjsimportam dele. Escreva a tabela de takes emSHOTS(a validação reportará movimento por take), pausas intencionais emHOLDS(por exemplo, final[[b(36), DUR]]), batidas fortes que precisam de respiração emDROPS– a ferramenta de validação as lerá. Para transições que precisam acertar a batida, userevealOn(batida, duração_transição, ponto_de_revelação)para calcular o ponto de início, fazendo com que o novo quadro apareça exatamente na batida. - Faça cada take individualmente. Renderize 3 quadros estáticos de cada take: início, meio e fim; para mudanças críticas de estado e emendas de takes, veja também prévias contínuas, verificando se o sujeito não é reiniciado do zero, se a velocidade do movimento não muda abruptamente, se o take não é interrompido. Quadros estáticos bonitos não substituem a verificação de movimento; para movimentos rápidos, use
inspect.mjs strippara ver quadros contínuos. - Execute a verificação de determinismo
render.mjs <slug> --determinism; se falhar, corrija. - Para vídeos com 30 segundos ou mais, ou renderização lenta, primeiro produza uma prévia de baixa resolução:
--size 960x540 --out out/proxy.mp4. - Produza o vídeo final: primeiro defina no topo do
build.shas variáveisFPS,SIZE,AUDIO,LOOPconforme o brief, depois executesh <slug>/build.sh. Ele constrói a trilha sonora, executa a verificação de determinismo (não renderiza se falhar), renderiza, executa a verificação de enquadramento de texto (apenas material de revisão, não bloqueia a construção) e, por fim, executa a verificação técnica com as mesmas especificações (duração obtida detimeline.js:DUR). Adicione--subframes,--dpr,--graincomo parâmetros extras, conforme necessário para o estilo. Esses parâmetros aumentam significativamente o tempo de processamento – informe o tempo estimado antes de iniciar.
Para mixagem de trilhas, use AUDIO=file AUDIO_FILE=audio/final.wav sh build.sh; os métodos de construção anteriores (synth/tone/layer/none) continuam disponíveis. Para vídeos longos, use build-long.mjs para construção persistente por capítulo (veja references/long-form.md).
Regras rígidas:
- A imagem é determinada apenas por
t: não useMath.random,Date.now, rAF, timers, animações CSS; não salve estado entre quadros. - Carregue todas as fontes e matérias antes de definir
READY = true; hospede as fontes no projeto. - O layout deve ser derivado da largura e altura retornadas por
stageSize(), não use valores fixos em pixels.
Passo 5: BGM, efeitos sonoros e mixagem
Veja references/sound.md. BGM e efeitos sonoros são produzidos separadamente de acordo com as fontes confirmadas; são permitidas combinações como música do usuário + efeitos de IA, etc. A tabela abaixo mostra as opções de motor de síntese de IA; não use valores padrão do motor para substituir fontes de material já confirmadas. A direção do som (referência, groove, harmonia, instrumentação, curva) deve ser definida no brief:
| Nível | O que usar | Adequado para |
|---|---|---|
| Nível 1 · Síntese embutida | score.mjs, sintetizador Node (bateria, percussão, baixo, pads, dedilhados, marimba/lâminas/kalimba, órgão, pads vocais, FM, ruído ambiente, efeitos sonoros, sidechain, reverb, processamento lo-fi), zero dependências | Eletrônico, UI, chip music, ambiente, lo-fi, artesanal e toy, maioria dos vídeos de motion |
| Nível 2 · Tone.js | score.tone.js, renderização offline no navegador headless com Tone.js: instrumentos sampleados (audio.mjs samples salamander para baixar piano CC BY), convolução reverb, sintetizadores e efeitos mais ricos | Estilos que precisam de instrumentos reais, espacialidade, sensação cinematográfica |
| Faixa externa | Música fornecida pelo usuário (própria, licenciada, gerada por serviço de música por IA) | Usuário já tem trilha sonora |
- Construção:
audio.mjs build <slug>/score.mjsouscore.tone.js, ambos produzemaudio/music.wava −14 LUFS. - Faixa do usuário: sem narração, execute primeiro
audio.mjs beats(usa librosa automaticamente se disponível) para alinhar a timeline, depois sobreponha efeitos no score comS.load(). Com narração, use apenas as batidas musicais como referência, ajustando música e efeitos para se adaptarem à fala – não mova a timeline de narração já confirmada. - Sem som: pule se BGM, efeitos e narração estiverem desligados; desligar apenas o BGM não significa que o vídeo é silencioso.
- Com narração: reduza melodia principal, percussão densa e grandes dinâmicas na música; mantenha apenas efeitos sonoros informativos para ações, evitando palavras-chave e início de frases. Mantenha trilhas independentes; use
narration.mjs mixpara ducking durante a fala, equalização de loudness e tratamento de pico. Verifique as imagens com timestamps reais das frases; a percepção auditiva ainda precisa da revisão final do usuário.
Após cada build, execute audio.mjs check na mixagem final para ver números e gráficos; se o host suportar audição, ouça também – não considere a aprovação apenas pelos números. Se DROPS estiverem definidos em timeline.js, a ferramenta também medirá o declínio e a subida antes da batida forte – se não houver respiração, emitirá um WARN.
Passo 6: Validação
Verificação técnica: decidida por programa; se falhar, não pode ser entregue.
node <skill>/scripts/inspect.mjs qa <slug>/out/final.mp4 --out <slug>/qa/final \
--expect-size 1920x1080 --expect-fps 30 --expect-duration 16 --audio required # vídeo sem som: --audio none; vídeo em loop: --loop
Ela verifica se o arquivo pode ser decodificado, dimensões, taxa de quadros, duração, número de quadros, trilha de áudio, quadros pretos, loudness, pico verdadeiro e emenda de loop (quando necessário). Se qualquer item falhar, o código de saída é 1 e deve ser corrigido. Itens de especificação não passados serão listados como NOT CHECKED, o que não conta como aprovação. O build.sh inclui as especificações automaticamente. A própria ferramenta de renderização se recusará a publicar arquivos com número incorreto de quadros.
Revisão: para julgamento humano, não programático. Analise quadros amostrados, quadros amostrados em tamanho de celular, seções congeladas (as declaradas em HOLDS são marcadas como pausas intencionais; as demais, julgue se são espaços vazios), pontos de corte, movimento por take e flash frames, imagens marcadas de enquadramento de texto (qa/text-*.png), gráficos de áudio. Siga a lista de verificação em references/review.md, anote observações e os 3 problemas mais graves. Se o vídeo contiver números e gráficos, verifique a consistência com o conteúdo e os números. Após correções, renderize apenas a seção com problemas e depois o vídeo completo; registre o processo em qa/review_log.md. Se o host suportar subagentes, designe um agente que não participou da produção para revisar apenas esses materiais e identificar problemas (veja "Revisão independente" no review.md).
Com narração, execute adicionalmente narration.mjs check, verificando a cobertura temporal das frases, duração do áudio e especificação confirmada; revise frase por frase a consistência entre roteiro, imagem e voz – a verificação automática não substitui a revisão auditiva. Para vídeos longos, revise capítulo por capítulo e verifique a continuidade de imagem, som e linha do tempo nas emendas.
A conclusão da revisão é uma referência para o usuário, não substitui a visualização pelo próprio usuário. Itens não aplicáveis devem ser marcados como "não aplicável" (por exemplo, sincronia áudio-visual em uma obra sem som) – não atribua notas arbitrárias.
Passo 7: Entrega
Informe ao usuário:
- Caminhos de
out/final.mp4eout/poster.png(poster:render.mjs <slug> --poster <t>). brief.md: o prompt estruturado completo, com registros das duas confirmações; pode ser reutilizado, sem credenciais de API.- Com narração: anexe o roteiro original do usuário, a linha do tempo das frases e as fontes de cada trilha; para vídeos longos, anexe o manifesto de capítulos e os comandos de reconstrução a partir de pontos de interrupção.
- Resultados da verificação técnica (todos PASS), problemas não resolvidos do registro de revisão, tempo de renderização.
- Como reconstruir (
sh build.sh), como modificar apenas uma seção. - Fontes e licenças dos materiais de terceiros (fontes, materiais do usuário, faixas musicais); lembre o usuário de verificar novamente os fatos.
Os registros de conclusão e as evidências de revisão são salvos em qa/review_log.md no projeto e entregues junto com os arquivos de produção.
Limites (todos os estilos devem cumprir)
- Requisitos e roteiro: informações obrigatórias confirmadas; vídeo não excede 20 minutos; roteiro TTS deve vir do usuário. Conflitos de duração devem ser confirmados – não altere o roteiro, corte ou acelere sem autorização.
- Precisão factual: funções de produto, números, nomes vêm apenas do usuário ou de fontes confiáveis; se incerto, sinalize.
- Legibilidade do texto: tamanho da fonte legível em tela de celular; tempo de permanência suficiente para leitura (veja craft.md seção 7); texto não transborda, não sobrepõe, não é obstruído.
- Materiais licenciados: logotipos, capturas de tela, fontes, faixas devem ser utilizáveis; liste-os na entrega.
- Correção técnica: renderização determinística, todas as verificações técnicas aprovadas, sem quadros pretos, final não abrupto (quadro final estático ou loop contínuo).
- Consistência de estilo: as regras de estilo selecionadas são seguidas do início ao fim; não caia na lista de proibições do brief.
Fora isso, quanto movimento, uso de molas, densidade de efeitos sonoros, ritmo – tudo é definido pelo estilo e conteúdo (veja references/styles/ e craft.md).
Referência rápida de ferramentas (S=<skill>/scripts)
| Objetivo | Comando |
|---|---|
| Instalar dependências / verificar ambiente / autoteste | sh $S/setup.sh · node $S/check-env.mjs · cd $S && npm test |
| Criar projeto | sh $S/scaffold.sh <slug> [--audio synth|tone|layer|file|none] |
| Quadros estáticos + mosaico | node $S/render.mjs <slug> --still 0.5,3,7.2 --sheet · --range 0:15:1 --sheet |
| Três direções / poster | node $S/render.mjs <slug> --directions a,b,c --at 14.5,2,0 → qa/directions.png · --poster 14.5 → out/poster.png |
| Determinismo | node $S/render.mjs <slug> --determinism |
| Verificação de texto (material de revisão) | node $S/render.mjs <slug> --text-check [--safe auto|none|T,R,B,L] → qa/text.json + imagens marcadas (executado automaticamente pelo build.sh) |
| Analisar vídeo de referência | node $S/inspect.mjs grid <ref> --strips (pontos de corte + grade de batidas + quadros contínuos de transição) · heat <ref> (mapa de movimento por seção) |
| Prévia / Final / Segmento | --size 960x540 --out out/proxy.mp4 · Final: sh <slug>/build.sh --subframes 2 --grain 4 (especificações no topo do build.sh) · --start 6 --duration 3 --out out/seg.mp4 |
| Som | node $S/audio.mjs build <slug>/score.mjs (ou score.tone.js) · samples salamander · beats <track> --out audio/beats.json · check audio/music.wav (lê DROPS) |
| Narração / Mixagem final | node $S/narration.mjs tts … · import … · mix … · check … (parâmetros em narration.md) |
| Reconstrução de vídeo longo | node $S/build-long.mjs <slug>/chapters.json (parâmetros em long-form.md) |
| Pré-visualização com áudio | node $S/preview.mjs <slug> --size 1920x1080 --fps 30 (adicione --audio audio/final.wav; uso em stack.md) |
| Validação e material de revisão | node $S/inspect.mjs qa out/final.mp4 --expect-… (build.sh inclui automaticamente) · sheet · phone · strip --at 4.2 · loop · motion (lê SHOTS / HOLDS: movimento por take, saltos, flash frames) |
Arquivos de referência (leia conforme necessário)
| Arquivo | Quando ler |
|---|---|
references/formats.md | Passo 2: uso, por exemplo, vídeo promocional, portfólio, animação de UI, tipografia sync, logo, explosão de dados, composição chroma key |
references/styles/INDEX.md | Passo 2: índice de 43 estilos, regras das três direções, regras de mesclagem; depois leia apenas o styles/<slug>.md selecionado. Para personalização, use styles/_template.md |
references/craft.md | Passos 2 e 4: ritmo, movimento, transições, câmera, tipografia, cor, textura, pontos memoráveis, lista de sabores padrão |
references/brief-template.md | Ao escrever o brief |
references/stack.md | Passo 4: contrato da página, determinismo, armadilhas de cada tecnologia, fontes, materiais, múltiplas proporções, desempenho |
references/recipes.md | Quando precisar de uma receita pronta |
references/sound.md | Passo 2 (seção 2: direção do som) e Passo 5 |
references/review.md | Passo 6: explicação da verificação técnica, lista de verificação de revisão, revisão independente, problemas comuns, lista de entrega |
references/narration.md | Ao escolher TTS, narração do usuário, mixagem independente de BGM/efeitos sonoros |
references/long-form.md | Acima de 2 minutos: planejamento de capítulos, cache persistente, áudio por segmento e reconstrução com checkpoint |