Motion Graphics para Vídeos com IA
Use com remotion-best-practices e cinematic-camera. Esta skill é responsável pela captação, pesquisa, ativos autênticos, seleção de referências, qualidade visual e autorização de entrega.
Contrato de execução rigoroso
Toda construção deve passar por scripts/promptible-gate.mjs.
Caminhos comuns:
- Claude Code:
.claude/skills/motion-graphics/scripts/promptible-gate.mjs - Outros agentes:
.agents/skills/motion-graphics/scripts/promptible-gate.mjs
Não escreva código de composição até que o script imprima BUILD AUTHORIZED. Não entregue um render até que ele imprima DELIVERY AUTHORIZED. Um comando com falha é uma parada obrigatória.
Etapa 1 — captação concisa
Pergunte apenas pelas escolhas faltantes:
- Formato: Inserção Instagram meia tela 4:3 (1440×1080) ou Instagram tela cheia 9:16 (1080×1920). Use 16:9 apenas quando explicitamente solicitado.
- Superfície: luz quente, escuro limpo, grade clara ou grade escura.
- Batida exata do roteiro, duração, produtos nomeados, alegações verificadas e ativos fornecidos.
Nunca use escuro como padrão silencioso. Se o usuário delegar a escolha da superfície, use luz quente.
Etapa 2 — pesquisa e ativos autênticos
Leia references/research-and-assets.md e references/logo-library.md.
Execute o menor curso de pesquisa útil antes do trabalho conceitual:
- Ativos fornecidos pelo usuário são autoritativos. Use-os exatamente; nunca os redesenhe ou substitua.
- Para produtos comuns, copie um logotipo agrupado adequado de
assets/logos/para o projeto e mantenha sua proveniência. - Se estiver faltando, inspecione 1–3 páginas autoritativas: kit de marca oficial/homepage, página oficial de documentação/produto e, em seguida, uma fonte de ícone curada respeitável.
- Prefira SVG transparente. Nunca use capturas de tela de logotipos, miniaturas de resultados de pesquisa, fundos quadriculados/cinza, recriações não oficiais ou ativos remotos vinculados.
- Para um painel/UI de produto, adquira uma captura de tela/gravação fornecida real ou uma captura de tela oficial pública de produto/documentação. Se nenhuma existir, pergunte; não invente um painel.
- Pesquise estrutura visível, terminologia, cor da marca e a ação/estado exato relevante para a batida. Não copie métricas não suportadas, informações privadas ou alegações.
- Armazene ativos e notas em cache sob
.promptible/research/. Reutilize um cache existente quando produto, fontes, hashes de ativos e mecanismo de referência permanecerem inalterados.
Escolha apenas o modo visual que a batida precisa: logo-system, product-ui, terminal, editorial ou abstract. Não force um boletim informativo, painel, terminal ou movimento de câmera elaborado em todo gráfico.
Escreva .promptible/research-brief.md com estes cabeçalhos:
## Produto ou conceito
## Fontes autoritativas
## Linguagem visual real
## Mecanismo aprovado mais próximo
## Plano de movimento
## Evitar
Em seguida, execute:
node <skill-dir>/scripts/promptible-gate.mjs research \
--project . \
--research-mode authentic \
--visual-mode product-ui \
--product "Slack" \
--reference kickbacks-same-run-editor \
--brief .promptible/research-brief.md \
--source https://slack.com/ \
--logo public/research/slack.svg \
--surface public/research/slack-dashboard.png
Para trabalho conceitual sem nome, use --research-mode abstract --visual-mode abstract; o resumo e a comparação de referência aprovada ainda se aplicam, mas a pesquisa desnecessária na web/logotipo não.
Etapa 3 — pré-verificação de referência verificada
Leia references/approved-references.md. Selecione pelo mecanismo da história, não pela cor. Um novo conceito é permitido quando é mais específico para a solicitação, mas deve herdar explicitamente a gramática da câmera, escala, contenção e movimento causal do mecanismo aprovado mais próximo. Combine no máximo dois mecanismos.
Execute:
node <skill-dir>/scripts/promptible-gate.mjs init \
--project . \
--research .promptible/research-manifest.json \
--format 9:16 \
--background warm-light \
--claim-source user \
--beat "Ideia visual exata sendo suportada" \
--duration 6
init revalida a pesquisa/ativos, verifica o MP4/folha de contato aprovado agrupado por SHA-256 e escreve .promptible/render-brief.json.
Inspecione o MP4/folha de contato aprovado real e as evidências de produto pesquisadas. Escreva .promptible/reference-observations.md com:
## Composição
## Câmera
## Identidade
## Correspondência de pesquisa
## Antipadrão
Em seguida, execute:
node <skill-dir>/scripts/promptible-gate.mjs inspect \
--project . \
--observations .promptible/reference-observations.md
Apenas BUILD AUTHORIZED permite a implementação.
Etapa 4 — construção
Use a identidade pesquisada e o mecanismo causal da referência selecionada. O resultado deve parecer específico na primeira passagem, não como um modelo esperando por correções de prompting.
Regras rígidas:
- Zero néon, brilho, bloom, bordas luminosas, sombras coloridas, orbes/lavagens gradientes, gradientes ciano-roxo, glassmorphism, iluminação cyberpunk ou estilo de IA vibe-coded.
- Nenhum recibo genérico, fatura, dossiê, prancheta, cartão flutuante, código de barras, carimbo de borracha, certificado, cartão de preço, painel falso ou fallback de grade de cartão desconectado.
- Painéis realistas são incentivados apenas quando fundamentados em evidências de produto fornecidas ou autoritativas. Recrie a estrutura visível fielmente; nunca invente métricas, alegações, controles ou estados de produto.
- Nenhuma UI, logotipo, preço, classificação, engajamento, serial ou prova inventados.
- Nenhum texto de narração redundante. Dados reais, UI de produto, comandos, código, nomes de arquivo e rótulos estruturais curtos são permitidos.
- O movimento deve revelar causalidade, escala, substituição, navegação ou mudança de estado. Pode ser contido quando uma troca de logotipo ou ação de UI autêntica comunica a batida claramente.
- Um objeto estático centralizado com linhas aparecendo mais um zoom lento não é execução cinematográfica.
- Use menos objetos focais, maiores. Mantenha a ação atual centrada, totalmente visível e legível no tamanho de destino.
- Cenas escuras são opcionais. Escuro significa carvão neutro com acentos planos, nunca painéis iluminados.
Leia references/rejected-patterns.md antes da seleção do conceito.
Etapa 5 — evidência do candidato
Renderize o candidato. Gere uma folha de contato de três quadros e JSON ffprobe. Exemplo para seis segundos:
mkdir -p .promptible
ffmpeg -y -hide_banner -loglevel error -i out/candidate.mp4 \
-vf "fps=3/6,scale=480:-1,tile=3x1:padding=12:margin=12:color=white" \
-frames:v 1 .promptible/candidate-contact-sheet.jpg
ffprobe -v error -select_streams v:0 \
-show_entries stream=width,height:format=duration -of json \
out/candidate.mp4 > .promptible/candidate-probe.json
Em seguida, execute:
node <skill-dir>/scripts/promptible-gate.mjs candidate \
--project . \
--render out/candidate.mp4 \
--contact-sheet .promptible/candidate-contact-sheet.jpg \
--probe .promptible/candidate-probe.json
Etapa 6 — crítico visual independente
O construtor não pode avaliar seu próprio trabalho. Inicie um crítico/subagente limpo separado com:
references/visual-critic.md- resumo/manifesto de pesquisa e ativos autênticos
- MP4/folha de contato aprovado selecionado
- MP4/folha de contato candidato
.promptible/render-brief.json
O crítico inspeciona a mídia real e retorna JSON correspondente a templates/critic-output.example.json. Se a revisão independente não puder ser executada, pare; nunca auto-aprove.
Etapa 7 — portão de entrega
node <skill-dir>/scripts/promptible-gate.mjs qa \
--project . \
--critic .promptible/critic.json
O portão rejeita falhas graves, qualquer categoria abaixo de 8/10, média abaixo de 8,5, pesquisa ou evidência modificada/faltante, ou revisão não independente. Revise até DELIVERY AUTHORIZED.
Regras técnicas e de entrega
- Conduza o movimento com
useCurrentFrame(),spring()einterpolate(); sem animação CSS. - Use pausa → percurso → pausa quando o percurso ajudar. A ação termina durante as pausas.
- Termine com uma pausa estável do editor.
- Verifique o tipo ou execute a menor validação de construção significativa.
- Entregue MP4 com dimensões exatas, duração, comando de render e nota de posicionamento do editor somente após autorização.