Communitygithub.com

josenjc9/short-video-edit

Guia de edição de vídeos curtos para anúncios, tutoriais, Reels e trailers. Conduz o usuário etapa por etapa, da verificação dos fatos e roteiro até a entrega, garantindo um resultado profissional.

O que é short-video-edit?

Esta skill transforma o processo de edição de vídeos curtos em um fluxo de trabalho profissional e sistemático, adequado para anúncios, vídeos explicativos, Reels e trailers. Ela conduz o usuário por cinco estágios principais: preparação (verificação de fatos, definição de estilo, storyboard), produção (montagem de acordo com os quadros aprovados, pós-produção), verificação automática e manual antes da entrega, e encerramento com revisão. A skill enfatiza que 90% da qualidade de um vídeo é decidida antes da renderização, por isso todas as decisões de roteiro, estilo e storyboard são validadas com o usuário antes de prosseguir. Funciona principalmente com ferramentas de linha de comando como ffmpeg e Python, e oferece funcionalidades como detecção de cortes, remoção de silêncios, sincronização de áudio e verificação de qualidade. Ela também inclui referências detalhadas para diferentes tipos de vídeo (narração, animação, montagem) e uma biblioteca de técnicas de edição, garantindo que cada corte tenha uma justificativa clara.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/josenjc9/short-video-skill/tree/HEAD/skill/short-video-edit

Perguntar na sua IA favorita

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

Documentação

Skill de Edição de Vídeos Curtos

Manual de edição para agentes de IA. O objetivo é produzir vídeos de nível profissional, não apenas "aceitáveis".

Um julgamento central: 90% da qualidade do produto final é definida antes do início da edição (fatos, estilo, storyboard), e 10% na renderização. Portanto, se a fase inicial não estiver aprovada, não renderize o vídeo inteiro.

As ferramentas desta skill estão em tools/ (o caminho <skill>/tools/ refere-se a esta pasta). Software necessário: ffmpeg, python3; ocr_check.py requer macOS e swiftc; hf_lint.py só é necessário se usar HyperFrames. Consulte tools/README.md para instruções de uso.

Papéis e Regras

  • O usuário é o decisor. Cada etapa só é considerada concluída quando o usuário aprova explicitamente (cite as palavras dele, não suponha).
  • Fatos e texto do roteiro apenas os fornecidos pelo usuário. Se quiser alterar ou adicionar algo, apresente opções A/B/C para ele escolher. Não adicione legendas, slogans ou enredos por conta própria.
  • Se não tiver certeza, pergunte. Não adivinhe. Não apresente informações não verificadas como fatos.
  • Se os requisitos mudarem durante o processo, volte à etapa correspondente e refaça, sem fazer alterações ocultas no trabalho.
  • Quando o usuário enviar várias mensagens curtas seguidas, responda primeiro "Entendi, aguarde terminar" e só então prossiga.

Roteiro Inicial (primeiro identifique o tipo, depois leia a seção correspondente)

Um vídeo pode pertencer a vários tipos; leia todos.

Tarefa como estaOnde ler
"Clima de cinema", "Trailer", "Montagem", várias fontes editadas em uma com emoçãoreferences/situacao_montagem_trailer.md + references/gramatica_edicao_narrativa.md, continuidade_entre_cortes.md, ritmo_cor_audio.md, formato_rejeicao_entrega.md
Principalmente pessoa falando, precisa cortar conteúdo e adicionar legendasreferences/situacao_video_falado_palestra.md
Protagonista é um personagem desenhado, precisa de interaçãoreferences/situacao_animacao_personagem.md
Tem imagens estáticas/infográficos, precisa transformar em vídeoreferences/situacao_imagem_para_video_dinamico.md
Técnicas: picture-in-picture, tela dividida, montagem, congelamento, câmera lenta, reversão, Ken Burnsreferences/biblioteca_tecnicas.md (com comandos ffmpeg testados, indicando se são testados ou comuns)
Transições: usar ou não, qual escolher, como fazer com ffmpeg xfadereferences/guia_transicoes.md
Animações de cartões, gráficos numéricos, efeitos de transição, camadas de efeitos, 3D/Three.jsreferences/graficos_dinamicos_3D.md (sensação de movimento, números, receitas de transição, como escolher motor de animação, quando vale a pena usar 3D)
"Ano N", rolagem anual, montagem de passagem de temporeferences/situacao_montagem_passagem_tempo.md
Não sabe como fazer: escolher técnica, animação, ferramentareferences/catalogo_tecnicas_ferramentas.md (cada item indica se é testado ou comum)
Processos (cozinhar, montar, construir, etc., passo a passo)Etapa 1, seção "Para processos, pergunte três coisas"
Tem animais de estimação, familiares, experiências reais"Ferramentas e Proibições": experiências reais não usam imagens geradas

Visão Geral do Fluxo

  1. Confirmar objetivo: objetivo em uma frase, público-alvo e uso, plataforma e especificações (proporção, duração, resolução), lista de materiais, critérios de sucesso verificáveis, o que não fazer.
  2. Roteiro: Para conteúdo criativo, dê três esboços de linhas narrativas diferentes para o usuário escolher. Versão final = segmentação, duração, legendas, direção de áudio.
  3. Storyboard inicial: Tabela de planos + quadro de storyboard, campo de técnica deixado em branco. Substitua adjetivos por números ("alegre" → amplitude de salto, batida de ação).
  4. Inventário e teste de riscos: Inventário de materiais (planilha de contato); técnicas para cada plano vs. "capacidades verificadas"; para técnicas não testadas, faça um teste de 5 segundos; se não funcionar, troque por uma opção simplificada; pacote de estilo (etapa 2) é fixado aqui. Aprovação = usuário confirma o storyboard.
  5. Versão bruta animada: Organize o storyboard em uma versão bruta com tempo e áudio; confirme ritmo e duração antes de prosseguir para a produção.
  6. Produção: Criação e pós-produção.
  7. Auto-verificação: Varredura de armadilhas antes de renderizar → renderizar → verificação automática → lista de verificação abrangente, imagens verificadas uma a uma.
  8. Entrega e encerramento.

Fase 1: Pré-produção (Três etapas exigem aprovação do usuário)

Etapa 1 | Fatos e Roteiro (pergunte uma vez, salve a resposta nos metadados da tabela de planos)

  • Regras de tratamento, regras de áudio (padrão: sem música, apenas efeitos sonoros; quais sons originais manter), proporção, duração, resolução, título.
  • Faça uma planilha de contato dos materiais com tools/storyboard.py para ver o conteúdo, não confie apenas nos nomes dos arquivos; verifique o espectro de áudio ou ouça.
  • Para conteúdo educacional/tutorial, verifique antes de agir: Cada definição deve ser verificada em fontes oficiais (documentação oficial primeiro, compilações de terceiros apenas como suporte). Anote "Esta frase corresponde a qual fonte" ao lado da tabela de planos. Marque como "não verificado" se não encontrar. Antes de remover qualquer parte do texto original, avalie se essa parte evita mal-entendidos. Suas simplificações devem ser claras: "Esta é minha simplificação, não a redação original." Se você leu apenas o resumo da pesquisa e não o texto completo, diga isso explicitamente.
  • Para processos, pergunte três coisas: ①A ordem do processo; ②Qual material pertence a qual produto final e a qual etapa (não adivinhe pela ordem de filmagem); ③Os momentos-chave que devem aparecer.
  • Antes de dizer "O material não tem/não foi filmado", assista ao vídeo inteiro quadro a quadro, não apenas as poucas imagens de ação. Quando o usuário enviar capturas de tela, use tools/find_frame.py para identificar em qual material e em qual segundo.
  • Critérios de seleção: Se o material tiver comentários verbais do cinegrafista, use-os como critério adicional; caso contrário, use condições claras de rejeição (desfocado, tremido, muito escuro). Ao rejeitar, anote qual take e a qual plano corresponde. Essas são apenas ferramentas auxiliares, não garantidas.

Etapa 2 | Pacote de Estilo (uma página, mostre primeiro ao usuário)

  • 1 a 2 vídeos de referência ou imagens de referência, com uma frase "Quero que se pareça com isso nesse aspecto." Ao analisar o vídeo de referência, especifique as dimensões; caso contrário, a IA pode considerar apenas as cores. Opções: tipo de vídeo, fonte, cor, cartões de texto, elementos, módulos (como entrada/saída de cartões, sobreposição, marcadores flutuantes, componentes reutilizáveis), materiais gratuitos (quais materiais gratuitos são usados, verifique os direitos autorais), movimento, ritmo, transições.
  • Cores: fundo/texto/uma cor de destaque (cor de destaque ≤15% da tela, contraste do texto ≥4.5:1); para vídeos com história, escreva um arco de cores (brilho alvo para cada segmento).
  • Fontes e idioma dos cartões: no máximo dois conjuntos.
  • Vocabulário de transições: ≤3 tipos em todo o vídeo; cada plano com um efeito principal.
  • Inclua uma imagem de estilo conceitual (um quadro-chave), não apenas texto.
  • Seleção de técnicas: Antes de começar, verifique quais técnicas podem tornar a edição mais refinada; sem limite de quantidade, mas cada uma deve ser justificada "em qual plano será usada e por quê." A lista para o usuário deve usar nomes simples com uma frase de efeito (por exemplo, "Zoom in: aproxima-se lentamente do protagonista"), sem códigos em inglês. Na entrega, verifique: as técnicas usadas correspondem a esta lista?
  • Técnicas comuns para vídeos falados/vídeos explicativos de redes sociais: máscara de cor (ajustar apenas o fundo), fundo com parede de vídeos, texto grande atrás da pessoa, controle deslizante de antes/depois, campos de entrada de texto com barra de progresso, congelamento com velocidade variável, tags flutuantes de palavras-chave, picture-in-picture, números saltando, corte de pausas. Não garanta ao usuário que consegue fazer técnicas não testadas; faça um teste de 5 segundos primeiro.

Etapa 3 | Tabela de Planos + Storyboard

  • Para cada plano, escreva: action (o que realmente acontece na tela), shot_size (longe/médio/perto/detalhe), legendas, cartões de texto, áudio (apenas segundos relativos). Para cartões de texto, escreva evidence (qual parte da tela o apoia).
  • Para cada corte, escreva cut_reason (por que cortar aqui, por que este plano); para match cut ou cut on action, escreva anchor (o que o plano anterior pega no final, o que o próximo plano pega no início). Cortes sem justificativa devem ser removidos primeiro.
  • Legendas: 4 a 5 caracteres por segundo, máximo 6; o tempo de aparecimento não deve ser anterior ao início do plano; a duração da legenda determina a duração do plano; cada frase de legenda deve ter suporte visual; caso contrário, peça material ao usuário.
  • Ao organizar os planos, tenha linha narrativa + alternância de planos: Primeiro, defina o protagonista e a estrutura (início, desenvolvimento, clímax, desfecho); apenas agrupar ações semelhantes não é narrativa. Alterne deliberadamente os tipos de plano em cada segmento, use padrões como "médio → perto → longe" ou "longe → médio → close".
  • Consistência de progresso em vídeos de processo: Grandes blocos seguem a ordem real do processo; dentro do mesmo bloco, vários produtos finais devem avançar sincronizadamente; produtos já concluídos não devem ser intercalados entre blocos ainda em andamento; os produtos aparecem apenas no segmento final de montagem final (exceto para prévias de abertura). Para "esconder as mãos", use crop para close, aplique apenas no plano indicado pelo usuário.
  • Se o usuário disser "quero alma/atmosfera" = precisa de correção de cor: use um único look em todo o vídeo.
  • Para o storyboard, use tools/storyboard.py para extrair quadros do material ou do vídeo final. A verificação automática verifica apenas o texto literal; a correspondência entre cartão e imagem deve ser verificada visualmente.

Antes de entregar a tabela de planos ao usuário, verifique cada item. Não entregue se faltar algum:

  1. Perguntou sobre a emoção (inspirador/caloroso/suspense); perguntou se quer música de fundo?
  2. Cartões de texto: primeiro, mostre 3 comparações de 5 segundos (três tipos diferentes de "jogadas", não o mesmo tipo com fontes diferentes). Primeiro, escreva a função de cada cartão; depois, escolha do "menu de jogadas de cartões" em references/gramatica_edicao_narrativa.md. O usuário escolhe um principal, e ao longo do vídeo, misture por bloco; use uma única fonte para todo o vídeo.
  3. Técnicas: Realmente verificou; lista com nomes simples; cada uma justificada em qual plano.
  4. Áudio: Use efeitos sonoros gravados, não sintetizados por programa; cada efeito corresponde a uma ação na tela. Se não estiver na biblioteca, procure em sites de áudio gratuito, verifique os direitos autorais, anote a origem no nome do arquivo e registre no README da pasta de áudio. Se não encontrar correspondência exata, encontre a mais próxima e justifique.
  5. Materiais visualizados (incluindo fotos); condições de rejeição escritas claramente; datas verificadas pela hora de filmagem, não pelo nome do arquivo.
  6. Fatos e roteiro apenas os fornecidos pelo usuário; seus cartões de texto são apenas opções, não os coloque diretamente.
  7. Imagem de estilo conceitual (três quadros-chave) entregue junto; quadro de capa salvo separadamente, sem duração total.
  8. Respostas curtas do usuário ("A", "ok", "tanto faz") têm duas interpretações; confirme primeiro.
  9. Cada corte tem cut_reason.
  10. Vídeos com música: antes de mixar, faça um Sound Map (camadas, início/fim, prioridade, fonte).
  11. Para cartões de texto emocionais, primeiro pergunte "Posso substituir por um plano?": Para cada cartão que "diz ao espectador como se sentir" (engraçado, comovente, constrangedor, chocante), anote ao lado se pode ser substituído por "personagem vê → reage" ou "plano A seguido de plano B". Se sim, escreva o plano alternativo; mantenha o cartão apenas se faltar material ou se houver pressa. Cartões informativos (números, anos, nomes, locais) não são afetados. A eficácia desta técnica ainda é debatida academicamente; trate-a como uma opção A/B, não como uma fórmula garantida. Em materiais documentais reais, não edite reações de momentos diferentes como "reação imediata" para fabricar emoções que não ocorreram.

Fase 2: Produção

  • Imagem: Faça primeiro um rascunho de baixa qualidade; só renderize na qualidade final após aprovação; altere apenas o plano modificado. Material HLG/HDR deve ser convertido para SDR antes do processamento com ffmpeg; meça o brilho de cada plano (signalstats) para corresponder ao alvo do arco de cores.
  • Imagens reais em alta definição: Grave telas de sites/aplicativos com automação de navegador a 3x a resolução; para saída 4K, defina devicePixelRatio. Se a resolução do material for insuficiente, informe o limite ao usuário no início. Ao gravar seu próprio site de demonstração, não abra rapidamente várias guias consecutivas; suas próprias regras de limite podem bloquear e gravar páginas de erro.
  • Efeitos: verifique a biblioteca de materiais antes de codificar manualmente: Se não encontrar, codifique manualmente e anote a lacuna. Efeitos comuns de cinema: zoom in/revelação com deslocamento de foco, transição de balanço de câmera, vazamento de luz, granulação de filme, vinheta, desfoque suave na entrada de cartões. Em cenas médicas ou calorosas, não use tremores, balanços, ângulos inclinados ou impacto de foco.
  • Cartões de texto (HyperFrames ou animações HTML similares): Escreva a linha do tempo em window.__timelines; para fromTo e from subsequentes, adicione immediateRender:false; para elementos que preenchem quadro a quadro, primeiro defina set opacity 0; legendas na mesma altura em todo o vídeo; não obstrua o assunto; ao mudar de plano, limpe todos os elementos do plano anterior. Antes de renderizar, use tools/hf_lint.py para verificar armadilhas.
  • Layout de cartões em chinês (para largura 1920): título com peso 900, ≥120px, espaçamento entre letras 0.01~0.03em, no máximo 14 caracteres por linha, quebre manualmente entre palavras, sem caractere isolado ou pontuação no início da linha; corpo com peso 500~700, ≥32px; espaço de meio caractere entre chinês e números/inglês; altura da linha em textos com máscara ≥1.18. Duração mínima do cartão = número de caracteres × 0.18s + 0.6s. Etiquetas sobrepostas na tela devem ter fundo sólido com texto escuro e negrito, colocadas em áreas vazias.
  • Ritmo: Algo deve se mover nos primeiros 0.3s; a primeira palavra deve aparecer em 1.5s; a próxima ação deve começar 0.1~0.3s antes do término da anterior; apenas um protagonista se move por vez; a saída deve ter cerca de metade da duração da entrada.
  • Após modificar o script gerado, verifique se o final do arquivo não foi truncado antes de executar.

Remoção de Fundo e Máscaras

  • Verificação de bordas = amplie para ver dedos, cabelos e ombros; não confie apenas na miniatura. Processamento da máscara: primeiro desfoque cerca de 1.6, depois ajuste o contraste, reduza 2px para bordas suaves sem bordas brancas.
  • Ao lado de segmentos com fundo removido, não coloque cartões sobrepostos ou legendas queimadas (legendas originais sobre pessoas serão tratadas como "não pessoa" e ficarão transparentes).
  • Não garanta o que não foi testado: pontas dos dedos ainda podem ter alguns pixels de borda colorida; diga isso claramente.

Armadilhas Práticas (GSAP e ffmpeg)

  • A duração total deve ser um número inteiro de quadros (segundos × fps = inteiro); caso contrário, a verificação de quadros pode diferir em 1.
  • O ponto de referência do áudio original deve ser calculado a partir do arquivo de tempo, não fixado em segundos (após alterar a duração do plano, não corresponderá mais à boca).
  • Quando o assunto for preto, não use a transição zoomin (ampliará para preto total); use smoothleft ou fade. Fotos no modo paisagem em vídeo retrato: primeiro corte para retrato mantendo o rosto, sem usar desfoque no fundo.
  • Três armadilhas do GSAP que fazem a imagem "aparecer → desaparecer → reaparecer" ou congelar o vídeo inteiro: ①tl.set(elementos_filhos_do_grupo, {opacity:1}, 0) colocado antes de tl.from(...) posterior, sobrescreverá o ponto de partida oculto de from; para ocultar, use tl.set(todos, {opacity:0}, 0) e depois to/from para exibir. ②Um seletor seleciona dois elementos de uma vez, resultando em animação precoce; mova apenas o elemento desejado ou use id. ③Nomes de variáveis do novo cenário colidem com outros cenários, fazendo com que onUpdate falhe e o vídeo congele a partir daquele plano. Antes de adicionar uma nova variável, faça grep em todo o arquivo pelo mesmo nome; após a alteração, verifique quadro a quadro do plano renderizado, extraindo um quadro antes e depois de cada transição de plano.
  • Na pós-produção, não use colorbalance para realces (telas brancas ficarão amareladas); use vignette=angle=PI/8 para vinheta. Após ajustar uma página web branca, meça o ponto branco novamente.
  • Dublagem: Faça apenas se o usuário disser explicitamente (padrão: apenas efeitos sonoros). Aplique silenceremove em cada frase e, se necessário, atempo (≤1.2). Em seguida, use um array Python para sobrepor em um wav do mesmo comprimento com base no código de tempo; usar amix com vários adelay de uma vez pode truncar a saída. Antes de mixar, verifique se o comprimento do arquivo de áudio é igual ao comprimento do vídeo final. Se as legendas mudarem, regenera a voz sincronizada.
  • Se o usuário reclamar de "muito barulho", remova apenas o som que ele mencionou; antes de remover, liste "o que será removido" para ele saber. Sons emocionais, como vozes originais, é melhor deixar um.
  • Após o vídeo ser concluído, o usuário pode inserir um plano no meio: altere apenas a tabela de planos (adicione plano, estenda legenda, mova posição do áudio), execute novamente a verificação, montagem, renderização e mixagem. Os pontos de início e fim posteriores serão ajustados automaticamente. Ao inserir uma foto, verifique a composição; não coloque legendas sobre assuntos com alta saturação.

Fase 3: Pós-produção

  • Correção de cor conforme arco de cores; use um único sistema de look em todo o vídeo, não um filtro diferente por plano.
  • A correção de cor com sensação cinematográfica é padrão: curva S, preto ligeiramente elevado (aspecto fosco), vinheta, granulação de filme na última camada do vídeo inteiro. Separação de tons com sombras azuladas e realces amarelados use apenas em looks coloridos; para segmentos em preto e branco, use um tom levemente frio; caso contrário, o preto e branco ficará com aspecto de fotografia antiga amarelada.
  • Efeitos sonoros: comece com poucos, cada som correspondendo a uma ação na tela. Antes de entregar, pergunte-se "o que faltará se eu remover este som?" Remova sons inadequados ao contexto; use loudnorm com alimiter sem estourar.
  • alimiter deve sempre ter level=disabled (o ganho automático padrão empurra os picos de volta para perto de 0dB). Na mesma etapa, adicione atrim até o comprimento do vídeo e adicione -shortest na saída; caso contrário, a trilha de áudio será mais longa que o vídeo e a verificação de quadros falhará. No final, use loudnorm=I=-16:TP=-1.5.
  • O áudio de planos com velocidade variável não deve ser esticado com atempo (causa distorção estranha): para câmera lenta/acelerada, use a velocidade original do áudio; insira áudio e vídeo como duas entradas separadas.
  • No final, peça ao usuário para ouvir com fones de ouvido; medições e reconhecimento de fala são apenas auxiliares. Frequências baixas (abaixo de 150Hz) não são reproduzidas em laptops e celulares; efeitos sonoros devem ter energia acima de 300Hz.
  • Versão leve ≤9MB: quando -maxrate não conseguir reduzir, use codificação de dois passes x264.

Remover Voz / Manter Som Ambiente

  • Não use reconhecimento de fala para encontrar intervalos e depois silenciar (a voz geralmente é marcada como não fala e, portanto, não é capturada, e o tempo é apenas em segundos inteiros); use ferramentas de separação de fontes de áudio (por exemplo, demucs) para obter uma trilha sem voz, uma vez é suficiente. Após a separação, verifique novamente com reconhecimento de fala como verificação: conteúdo entre parênteses é não fala, não conta como resíduo; repetir a mesma frase ou "inscreva-se" são alucinações do reconhecimento.
  • As ferramentas de separação podem tratar sons de spray, martelo e alguns sons de faca como voz e removê-los: nos segundos de áudio crítico, adicione a trilha de voz de volta, mas remova a faixa de frequência de voz de 250–3800Hz.

Ferramentas Auxiliares: Encontrar Cortes, Cortar Pausas, Encontrar Batidas

As três ferramentas foram verificadas funcionalmente com materiais sintéticos (resultados anexados); ao usar materiais reais, os limites e a eficácia ainda devem ser ajustados conforme o material.

  • PySceneDetect: scenedetect -i video.mp4 detect-adaptive list-scenes, lista a tabela de tempo dos planos. Verificação: vídeo de 6 segundos com três cortes de conteúdo diferente; detectou 3 planos, cortes em 2.0 e 4.0 segundos, consistente com o real. Em material de animação, os "planos" detectados podem não ser os planos desejados.
  • Auto-Editor: auto-editor video.mp4 --edit audio:threshold=5% --margin 0.15sec -o output.mp4, corta pausas em vídeos falados. Verificação: vídeo de 6 segundos com três segundos de áudio intercalados com um segundo de silêncio; cortou para aproximadamente 3.85 segundos. O limite deve ser testado com o material: no mesmo material sintético, 15% pode classificar todo o segmento como silêncio e cortar para o vazio; após o corte, legendas, sincronização labial e sincronização áudio-visual devem ser reavaliadas; o tempo da legenda deve ser recalculado a partir da versão cortada. Cortar pausas não significa que palavras supérfluas também são cortadas; as legendas não devem ter menos caracteres do que o falado. Use a versão oficial (por exemplo, Homebrew), não pacotes com nomes semelhantes.
  • librosa: librosa.beat.beat_track para obter batidas e BPM. Verificação: batida sintética de 120 BPM; mediu aproximadamente 117.5 BPM, 23 batidas, erro dentro de 2%; ainda assim, peça ao usuário para ouvir antes de entregar. Use apenas em vídeos que precisam sincronizar com batidas; vídeos relaxados não precisam.

Fase 4: Auto-verificação Antes de Entregar (cada item deve ter evidência)

Primeiro, execute a verificação automática: tools/qa_video.py video_final.mp4 pasta_saida --size WxH --fps N --share versao_compartilhamento.mp4 (verifica resolução, fps, quadros inteiros, comprimento da trilha de áudio, estouros, intensidade sonora, tela preta, congelamento, quadros antes/depois do corte, tamanho da versão de compartilhamento). Os números são verificados pela ferramenta; as imagens você deve ver uma a uma. Verifique cada item:

  1. Limpeza (faça em cada entrega): Extraia o primeiro, o intermediário e o último quadros de cada plano e monte uma imagem para verificar um a um. Mãos ou sombras que entram, ações não explicadas, planos onde nada acontece, sombras piscando após aceleração, tudo deve ser encurtado ou substituído.
  2. Continuidade do corte (obrigatório para vídeos com vários planos e emoção): Use tools/cuts_sheet.py para extrair 2 quadros antes e depois de cada corte e verifique a direção, a linha de visão, a fase da ação, o tipo de plano e a luz. Escreva issues com caminhos de imagem conforme references/formato_rejeicao_entrega.md. Corrija no máximo 2 rodadas; se ainda não passar, submeta à decisão do usuário.
  3. Especificações: Resolução, quadros por segundo, proporção devem corresponder ao que o usuário pediu; o vídeo final deve ser reduzido de 4K ou superior.
  4. Texto: Cada palavra na tela deve ser fornecida pelo usuário. Quando houver um texto original para comparar, use tools/ocr_check.py para converter quadros-chave do vídeo final e o texto original em texto e comparar frase por frase. Se houver divergência, volte ao original (erro de reconhecimento não significa erro na tela). Texto correspondente não significa conteúdo correto; verifique o conteúdo em fontes separadamente.
  5. Cartão = imagem: O nome de cada cartão deve corresponder ao que realmente acontece no plano. Ao selecionar segmentos e cortar, veja os quadros reais do segmento, não a descrição escrita.
  6. Legendas: Número de caracteres por segundo dentro do limite, não aparecem antes do plano anterior, mesma altura em todo o vídeo, sem quebra de linha automática.
  7. Legibilidade: Todas as palavras ainda estão claras na versão de compartilhamento (compactada).
  8. Limpeza: Sem elementos residuais ao mudar de plano, sem sobreposição, sem erros de página ou dados de teste.
  9. Consistência: ≤3 tipos de transições, cores seguem o arco, ≤2 conjuntos de idiomas para cartões.
  10. Ritmo: Algo se move nos primeiros 0.3s, não há dois protagonistas se movendo ao mesmo tempo, tempo de exibição dos cartões é suficiente.
  11. Áudio: Sem estouros, cada efeito sonoro corresponde a uma ação, sem efeitos inadequados ao contexto.
  12. Reproduzibilidade: Renderize duas vezes no mesmo momento; os hashes das capturas de tela devem ser idênticos (animações devem ser funções puras do tempo).
  13. Honestidade: Informe ao usuário sobre planos com qualidade de imagem irrecuperável e itens não verificados.

Fase 5: Entrega e Encerramento

Pasta de entrega (você define o local; a estrutura sugerida abaixo). Um vídeo por pasta, primeiro a data, depois o nome (AAAAMMDD_NomeDoVideo):

  • produto_final/: Versão de alta qualidade, versão leve (para compartilhar em aplicativos de chat, ≤9MB), capa, arquivos de legenda.
  • primeiro_corte/: Versões intermediárias e materiais de entrada.
  • diagramas_finais/: Pacote de estilo, storyboard, tabela de planos (arquivo legível por máquina + um .md para humanos), codigo_fonte/ (scripts para refazer + README).
  • Itens de teste (novas ferramentas, amostras de 5 segundos) em outra pasta testes/Data_Nome/; apenas o que será oficialmente lançado entra na pasta do projeto.
  • Use tools/deliver.sh para combinar áudio, compactar versão leve, copiar, verificar md5; arquivos com o mesmo nome não são sobrescritos.
  • Após alterar o produto final, atualize os diagramas finais: Os segundos e pontos de partida do storyboard e da tabela de planos devem corresponder ao produto final; caso contrário, você manterá documentos da versão antiga.

Mantenha apenas o final: Coloque materiais intermediários na pasta .work/ do projeto. Ao limpar, use tools/safe_trash.sh para mover para a lixeira, não delete diretamente; primeiro, liste o que será limpo para o usuário confirmar. Não mexa na área de trabalho de outras pessoas.

Cinco passos obrigatórios de encerramento (para cada vídeo)

  1. Finalização: Primeiro, verifique a capa. O início do vídeo deve ter um quadro de capa (título + protagonista). Salve a imagem da capa separadamente; a capa não deve incluir a duração total; calcule subtraindo do material de abertura. O texto da capa deve ser inferido do cartão de conclusão do vídeo, não do nome do arquivo ou de segmentos intermediários. Renomeie o arquivo final para <NomeDoVideo>_<Duracao>.mp4. A versão leve deve ter ≤9MB. Refazer o storyboard e a tabela de planos em diagramas_finais/ conforme o produto final. Verifique o md5.
  2. Limpeza: Storyboards antigos substituídos, scripts antigos, versões de primeiro corte, diretórios de trabalho, mova tudo para a lixeira com safe_trash.sh; escreva no README os nomes na lixeira para recuperação.
  3. Fechar tarefas: Marque como concluídas todas as tarefas ou pendências abertas para este vídeo.
  4. Revisão: Para cada versão, o que o usuário alterou (cite as palavras), causa raiz, como evitar na próxima; liste separadamente seus próprios erros; práticas reutilizáveis; inferências não verificadas marque como "não verificado".
  5. Otimizar esta skill: Na revisão, o que pode ser transformado em regra para "como evitar na próxima" deve ser escrito de volta na seção correspondente deste SKILL.md, não apenas acumulado no final do arquivo.

Ferramentas e Proibições

  • Priorize materiais reais (ffmpeg + animações HTML). Para cenas não filmadas: geração de imagens estáticas (não gere texto em chinês; use HTML para sobrepor texto chinês) → outros materiais externos. Experiências reais (animais de estimação, familiares, casos de clientes) não usam imagens geradas.
  • Antes de instalar qualquer nova ferramenta, pacote ou modelo, verifique a origem e os direitos autorais; peça permissão ao usuário antes de instalar; não instale durante o trabalho.
  • Não execute comandos que enviem texto livre para fora (por exemplo, comandos de feedback de ferramentas); desative os relatórios estatísticos das ferramentas por padrão.
  • Não escreva conteúdo não verificado, materiais privados do usuário ou dados pessoais em amostras ou exemplos públicos.

Habilidades Relacionadas