Fazendo vídeos de codificação com storyboard
Referência de condição
- Apenas quando o usuário realmente digitar
/goalpara iniciar ou retomar um objetivo, leia completamentereferences/goal-director.mde siga suas restrições de diretor. - Na produção, modificação, pré-visualização, renderização de planos comuns, e ao simplesmente discutir
/goal, não leia esse arquivo, nem o carregue preventivamente "para garantir".
Planeje primeiro, não escreva código antes da confirmação
- Veja todos os quadros em
.media/storyboard/e agrupe-os por "existência contínua ou transformação do mesmo objeto". - Em
STORYBOARD.md, escreva os grupos, dependências de planos e a lista de assets; os assets devem indicar as dimensões de exibição na tela. - Para planos com transformação contínua interna, em
RENDER_STRATEGY.mdcompare as soluções viáveis e fixe a abordagem de implementação →references/render-strategy.md. - Apresente a tabela de grupos e a lista de assets ao usuário e aguarde confirmação.
timeline.json é a única fonte de planejamento para números de plano, tempos de início e fim e duração total; não mantenha a timeline duplicada em vários arquivos Markdown.
Eixo principal de produção
- Para planos do mesmo grupo, primeiro configure um renderizador de objetos compartilhado, CameraRig, carregador de assets e estado da cena; os arquivos de plano devem manter apenas parâmetros de estado e tempo.
- Primeiro, reproduza estaticamente os quadros-chave do storyboard e componha uma folha de contato concisa para validação do usuário; se os endpoints não passarem, não faça interpolação ou easing.
- Após aprovação estática, produza a animação e entregue apenas uma pré-visualização arrastável, aguardando validação.
- Planos subsequentes evoluem a partir do quadro final do plano anterior aprovado: continuando, transformando, adicionando ou desaparecendo, sem redesenhar ou sobrescrever objetos existentes →
references/scene-continuity.md. - Após todos os planos serem aprovados, conecte-os na única linha do tempo final, verificando emendas, duração total e uma reprodução completa; só renderize o vídeo final após confirmação do usuário.
Planos, objetos e assets já aprovados são itens bloqueados. Se o problema for de dimensão, posição, corte, câmera ou efeito, modifique apenas os parâmetros correspondentes; a menos que o usuário negue explicitamente o asset em si, não gere um novo asset.
Paralelismo por dependência, não por ordem de plano
- Transformações contínuas do mesmo objeto ou partes que devem herdar o quadro final do plano anterior: produza na ordem de dependência.
- Cenários independentes, fundos, assets transparentes e planos completos que não dependem da composição do plano anterior podem ser produzidos em paralelo.
- Após a interface da cena-mãe compartilhada estar estável, os estados, camadas de sobreposição e animações internas de diferentes planos podem ser produzidos em paralelo.
- Ramos paralelos só podem escrever em seus próprios diretórios, não modificar a linha do tempo total, arquivos-fonte da cena-mãe compartilhada ou planos já aprovados; a saída precisa ser apenas a folha de contato ou pré-visualização.
- Se um plano posterior depende apenas da conexão de entrada, a cena e animação do objeto podem ser concluídas primeiro, e os parâmetros do quadro final do plano anterior são aplicados por último.
Caminho de execução mais curto e restrições de prompt
- Cada prompt de execução deve focar apenas na entrega atual que o usuário deseja ver, especificando claramente o escopo de gravação permitido, o número mínimo de etapas, o ponto de parada explícito e o que não deve ser feito nesta rodada; não expanda uma pré-visualização de etapa em uma validação final.
- Quando o usuário pedir "pré-visualização", o caminho padrão é apenas: completar a edição ou montagem necessária → confirmar que a página pode carregar → iniciar o Studio → retornar o link. Não bloqueie a pré-visualização com
check, snapshots em lote, folha de contato, tabela de emendas quadro a quadro, hash ou reprodução completa. - Combinações temporárias, concatenação parcial de planos e pontos de depuração não são integração final. Apenas deixe o usuário ver a sequência de imagens; a validação de emendas, revisão de duração total e reprodução completa são deixadas para a fase de integração final única após todos os planos serem aprovados.
- A validação deve responder diretamente à pergunta específica atual. Quando não houver erro ou problema visual claro, não adicione scripts de diagnóstico, detecção de versão, matriz de regressão, seek reverso, capturas de tela repetidas ou verificações "preventivas".
- Na mesma sessão, não empilhe em paralelo ou em série múltiplos navegadores, Studios,
check,snapshotou processosrender. Execute apenas um processo em primeiro plano necessário para a entrega atual; quando resultados disponíveis existirem, entregue imediatamente. - Se uma validação não renderizada não produzir nova saída por vários minutos ou exceder claramente o tempo normal, pare imediatamente e verifique o ponto de bloqueio mais direto; não espere dezenas de minutos sem feedback, nem execute novamente ou continue adicionando validações.
- Os prompts para a sessão de execução devem usar por padrão "pare ao terminar": atinja a solicitação atual do usuário e retorne o resultado, não prossiga para a próxima fase por conta própria, nem continue expandindo o trabalho porque as verificações técnicas passaram.
Regras de representação e movimento
- Adereços estáticos complexos: use texturas transparentes de alta qualidade; geometria estrutural e gráficos regulares: use Canvas/SVG; partículas, fragmentos, fumaça e pontos de luz: use Canvas.
- Crescimento, invasão e envolvimento contínuos devem separar as camadas de geometria, textura e animação. O que se expande é a geometria, não os pixels da textura.
- Uma única textura 2D não pode gerar faces superiores, laterais e oclusões que não existem na imagem original; se for necessária perspectiva real, use assets de múltiplos ângulos ou 3D, e primeiro explique os limites da aproximação.
- Afastar a câmera, afastar a cena e reduzir o objeto não são a mesma coisa →
references/camera-motion.md. - Se um problema de posição ou layout não for calibrado após três rodadas consecutivas, faça um painel de ajuste mínimo →
references/tune-panel.md.
Assets e determinismo
- O lado da imagem de origem não deve exceder 2 vezes as dimensões de exibição na tela; priorize WebP q85; imagens de uma única cena não devem exceder 3MB →
references/asset-budget.md. - Renderização com zero rede: não use scripts CDN ou fontes online.
- O código próprio não deve usar
Math.random,Date.nowou polling; executeawait img.decode()antes da primeira renderização.
Entrada e estado
/index.html: única entrada para a linha do tempo total e renderização final; sempre inicialize a partir do segundo 0./compositions/NN-name.html: entrada de depuração para grupo ou plano individual; deve poder ser inicializada de forma independente.- A linha do tempo total deve ser uma composição real, não usar iframe ou mudança de página para concatenar.
HANDOFF.mdmantém apenas o estado válido atual, itens bloqueados, arquivo atual, itens de negação em frases curtas e próximo passo; mantenha enxuto, não salve registros de processo, prompts longos ou relatórios históricos.
Validação mínima e entrega
- Fase estática: uma folha de contato de quadros-chave do storyboard + "aguardando validação".
- Fase de animação: uma pré-visualização arrastável + "aguardando validação".
- Pré-visualização de concatenação temporária: página carregável + link do Studio; não gere folha de contato, não verifique emendas quadro a quadro, não execute
checkformal. - Fase de correção: quadro ou pré-visualização corrigida + uma frase de explicação.
- Fase final: pré-visualização total ou vídeo + duração e caminho de saída.
- Verificações diárias apenas confirmam que a página carrega, os assets são visíveis e os quadros-chave estão corretos; o
checkformal é executado apenas uma vez na finalização da animação, na integração final ou quando um problema de execução específico surgir. Não repita lint, check, snapshots em lote ou regressão quadro a quadro.
Por padrão, não gere scripts de auditoria, JSON de validação, listas, instruções de entrega, relatórios de identidade/Mesh/partículas, hash quadro a quadro, diferença de pixels, renderização repetida, validação de arrasto reverso ou folhas de contato de múltiplas versões. Quando surgir um problema específico, verifique apenas o código, erro ou quadro problemático relevante, corrija e mostre o resultado; apenas se o usuário solicitar explicitamente, gere um relatório de diagnóstico formal.