Recapitulação de filme (Movie recap)
Invocação e escopo padrão
Claude Code: /movie-recap Lucky.
Codex: $movie-recap Lucky (ou selecione esta skill no seletor de skills do host).
Um caminho de vídeo ou pasta com aspas também funciona. Leia o título/caminho e o escopo opcional da mensagem de invocação. Argumentos do Claude Code: $ARGUMENTS. Se esse token não for expandido pelo host, use a mensagem real do usuário, não o token literal como nome de arquivo.
Padrão: finalizar AMBOS o resumo completo e o Reel, incluindo os arquivos abaixo. Trate isso como uma instrução para executar o trabalho, não apenas para escrever um script, esboço ou plano de edição. Apenas Completo ou apenas Reel se aplica somente quando o usuário solicitar explicitamente. Não comece a renderizar apenas porque alguém pede para inspecionar, instalar, explicar ou modificar esta skill.
Este arquivo contém ambos os modelos de recapitulação atuais, consolidados sem histórico de preferências obsoleto. As regras de edição somente do modo Completo nunca devem vazar para o Reel. Instruções explícitas do usuário atual substituem esses padrões. Não altere os modelos de origem ou outros projetos de filme durante uma execução normal.
Resolver a entrada
- Comece na pasta do projeto selecionada pelo usuário. Pesquise arquivos de vídeo locais fornecidos (
.mkv,.mp4,.mov,.m4v,.webm,.avi) e legendas externas. Prefira um caminho explícito fornecido. Para um título como Lucky, combine nomes de arquivos e subpastas relevantes, ignorando pontuação/caixa e sufixos de lançamento comuns. - Exclua exportações de recapitulação anteriores, trailers, amostras, miniaturas e trabalhos temporários da seleção de origem. Teste a mídia candidata antes de escolher; não selecione um arquivo apenas por ser o mais longo. Verifique a identidade a partir da filmagem, créditos e legendas.
- Se houver exatamente uma fonte plausível para o título solicitado, prossiga sem perguntar. Se Lucky corresponder a vários episódios, ou dois filmes diferentes permanecerem plausíveis, faça uma pergunta concisa identificando os candidatos. Não combine episódios silenciosamente nem selecione um arbitrário. Sem título, use a única fonte clara; caso contrário, pergunte. Se não houver fonte, relate onde você procurou e solicite seu caminho. Não baixe um filme automaticamente.
- Mantenha a origem inalterada. Crie novas pastas
<Título>-Full-Recape<Título>-Reel-Recapao lado da origem. Se alguma delas já existir, escolha um par consistente e não utilizado-Edit-2,-Edit-3, etc., em vez de sobrescrever o trabalho anterior. Use o identificador do episódio nos nomes quando aplicável. - Crie uma pasta de trabalho de tarefa com escopo definido fora das pastas finais. Leia as instruções do projeto aplicáveis, mas mantenha os dois contratos de modo separados. Não sobrescreva um
AGENTS.mdexistente não relacionado. Se as instruções do projeto precisarem ser persistidas, mantenha-as na raiz da origem ou dentro de um espaço de trabalho de tarefa separado, não entre as saídas finais enxutas.
Ferramentas, voz e execução real
Ambiente de execução instalado automaticamente
Antes de pesquisar ferramentas globais, leia runtime.json ao lado deste SKILL.md instalado. Siga seu manifest_path e releia o manifesto compartilhado; exija status: ready. Use seus caminhos absolutos para python, ffmpeg, kokoro_model, kokoro_voices, source_whisper_model (reconhecimento de fala multilíngue para o filme de origem) e whisper_model (alinhamento da narração em inglês). Esses caminhos eliminam a necessidade de os usuários ativarem um ambiente virtual ou localizarem modelos manualmente. Use PyAV deste ambiente Python para sondagem; o instalador não fornece um executável ffprobe separado. Prefira CPU por padrão e só use uma GPU disponível após verificar se funciona.
Se o ponteiro estiver ausente, verifique também ~/.movie-recap/runtime-v1/runtime.json e, em seguida, execute a descoberta portátil abaixo. Se o manifesto compartilhado estiver ausente, desatualizado ou não estiver pronto, explique o erro de configuração real e direcione o usuário para executar o python install.py --target claude ou --target codex (com --update ao substituir uma skill) deste repositório. Se o usuário pediu para você configurar as dependências e o repositório estiver disponível, execute o instalador você mesmo. Não relate uma configuração bem-sucedida apenas porque um arquivo de manifesto existe; verifique os executáveis/modelos referenciados. Nunca inclua runtime.json em um repositório público porque ele contém caminhos específicos da máquina.
Este é um fluxo de trabalho de agente, não um programa de renderização de vídeo independente. Inspecione e reutilize auxiliares de produção compatíveis antes de criar lógica de edição ausente. Descubra FFmpeg/ffprobe (ou sondagem PyAV), Python, um mecanismo TTS e ferramentas de ASR/alinhamento. Teste uma codificação curta antes de se comprometer com uma renderização longa. Use codificação de CPU compatível se NVENC não estiver disponível. Nunca afirme que um vídeo foi concluído quando apenas instruções de texto foram produzidas.
Narrador padrão: Kokoro local am_michael, inglês, sintetizado a 1.00x. Completo: aplique exatamente um ajuste atempo=1.10. Reel: prefira 1.00x, encurte o script antes de considerar até 1.30x. Não mude de voz silenciosamente entre as saídas nem afirme uma voz exata do Instagram. Reutilize modelos instalados; pergunte antes de usar serviços pagos. Se a execução local necessária ou uma voz utilizável não estiver disponível, relate o bloqueador específico sem fingir que um SKILL.md independente instala essas capacidades. O instalador do repositório fornece configuração automática.
Descoberta portátil de dependências:
- Localize Python e FFmpeg/ffprobe a partir do ambiente ativo ou caminhos fornecidos pelo usuário. Se instalado,
imageio_ffmpeg.get_ffmpeg_exe()pode localizar um binário FFmpeg. - Localize o modelo ONNX Kokoro e os dados de voz do ambiente TTS instalado do usuário. Não presuma um nome de usuário, pasta de download ou sistema operacional específicos. Se os arquivos estiverem faltando, relate os ativos necessários e peça seus caminhos ou permissão para configuração, conforme necessário.
- Procure modelos faster-whisper em cache no cache do Hugging Face do usuário atual ou em um diretório de modelos especificado pelo usuário. Teste o suporte CUDA e volte para CPU quando necessário.
- Descubra ferramentas locais equivalentes em cada máquina. Não empacote pesos de modelo, credenciais de API ou filmagens com esta skill.
Reutilização, conteúdo novo e trabalho sobreposto
- Reutilize código de propósito geral funcional, ferramentas/modelos instalados, esquemas, construtores de render/filtro, utilitários de legenda, validação e lógica de empacotamento antes de escrever substitutos. Inspecione a compatibilidade primeiro; adapte apenas o comportamento ausente. Mantenha o código separado dos dados específicos do filme. Nunca carregue caminhos de filmes antigos, enredos, scripts, mapas de tempo de origem, narração, marca ou credenciais para um novo trabalho ou auxiliar público.
- Cada nova produção de recapitulação requer análise nova da origem fornecida, scripts completos/Reel recém-escritos e narração recém-sintetizada. Não leia ou reutilize análises de recapitulação anteriores, transcrições geradas, scripts, seleções de cena ou vozes como atalho. Legendas fornecidas pela origem são entradas válidas. Compartilhe a análise nova da execução atual entre suas versões Completa e Reel, mantendo seus scripts e contratos editoriais separados. Uma revisão explícita como “mesmo vídeo, mude o corte” pode preservar conteúdo não afetado; não o regenere desnecessariamente.
- Retentativas na mesma execução podem reutilizar resultados validados inalterados. Registre a identidade da origem, revisão do script, voz/modelo/taxa, transformações, configurações do codificador e versão do auxiliar com os intermediários. Invalide o trabalho afetado e o timing dependente, legendas, imagens e capítulos quando as entradas mudarem. A existência do arquivo por si só não é validação de cache. Uma nova execução não deve herdar um cache de conteúdo antigo.
- Sobreponha trabalho independente: transcrição com amostragem visual; síntese de parágrafos naturais aprovados com inspeção de cena; miniaturas e texto de upload de rascunho com renderização. Completo e Reel podem avançar independentemente após a análise da execução atual. Finalize as durações das imagens e legendas somente após a voz relevante ser medida/alinhada, e os capítulos após a linha do tempo ser travada. Não sintetize rascunhos não revisados apenas para manter os workers ocupados.
- Use o executor de jobs reutilizável para estágios de shell quando útil; leia seu manifesto e orientação de fluxo de trabalho. Ele fornece dependências, concorrência limitada, recursos exclusivos e temporizações de estágio. Ele não analisa filmes ou constrói edições. Reutilize auxiliares de produção locais compatíveis em vez de recriá-los; escreva apenas lógica ausente. Mantenha a revisão editorial com o agente. Use um processo TTS de longa duração para manter modelos carregados entre parágrafos, quando suportado.
- Comece conservadoramente com dois jobs independentes e um job pesado por recurso restrito. Faça benchmark de TTS em GPU ou workers adicionais antes da adoção; preserve pronúncia, pausas, voz e qualidade de codificação. Reduza a concorrência se a contenção de memória ou CPU/GPU desacelerar o trabalho. Processos sobrepostos não autorizam a criação de agentes ou serviços pagos.
- Meça o tempo decorrido desde a inspeção da origem até a verificação final, incluindo configuração, correções e falhas. Registre as temporizações dos estágios separadamente; nunca some durações sobrepostas ou equacione um rerender em cache com produção nova. Não encurte a história, exceda os limites de velocidade da narração, diminua a qualidade da exportação ou pule verificações para cumprir uma meta de velocidade.
Fluxo de trabalho de produção compartilhado
- Sondar streams de origem, duração, dimensões ativas, taxa de quadros, idioma do áudio e legendas. Leia o diálogo e amostre toda a história incluindo seu final. Use ASR local se legendas utilizáveis estiverem faltando; verifique visualmente ações importantes em vez de confiar em suposições do ASR. Distinga sonhos, flashbacks, lendas e resultados incertos de eventos reais. Pesquisa na web pode corroborar a identidade/ano do filme; nunca substitua a análise da filmagem por um palpite de enredo.
- Escreva uma narração em inglês clara e específica com causa e efeito precisos. Evite slogans de IA, fragmentos dramáticos empilhados, diálogos inventados e preenchimento repetitivo. Construa um mapa de tempo da origem com passagens exatas para cada evento narrado. O modo Completo cobre a história completa. O Reel estabelece o contexto e para no início do clímax, com seu próprio script e ponto de corte de spoiler.
- Sintetize parágrafos completos ou frases naturais, não fragmentos curtos de legendas de exibição. Junte-os em narração contínua com pausas naturais para respiração. Meça a fala ajustada real e, em seguida, construa a linha do tempo da imagem. Preserve as sílabas e não estique o áudio para caber em durações arbitrárias de cena.
- Alinhe as palavras à voz gerada. Audite omissões, nomes próprios e fala inesperada. Com faster-whisper, evite fornecer todo o script esperado como
initial_prompt; isso pode alucinar palavras ou pular aberturas. Se a decodificação de áudio falhar devido a uma incompatibilidade de API do PyAV, use FFmpeg para decodificar PCM mono de 16 kHz e passe um array NumPy para o Whisper. Inspecione resultados de baixa confiança em vez de aceitar carimbos de data/hora de palavras fabricados. - Mantenha um manifesto de edição temporário contendo entrada/saída da origem, início/fim da saída, âncoras de frase da narração, pontos de congelamento e transformações. Coloque as ações nomeadas em sua frase falada ou ligeiramente antes. Inspecione quadros de ação intermediários e limites de cena renderizados. Nunca cubra 'eles se beijam' com um abraço congelado ou 'procurando CCTV' com uma cena não relacionada vários segundos depois.
- Renderize o resumo completo usando a Parte A e o Reel usando a Parte B; o trabalho independente pode se sobrepor dentro dos limites da máquina. Reutilize apenas a análise de origem nova da execução atual, não a imagem transformada do resumo completo. Mantenha o timing preciso ao quadro com um CFR consistente, contagens de quadro explícitas e durações de concat. Verifique as renderizações em cache da mesma execução em relação ao script atual, seleção de origem e configurações; invalide clipes alterados em vez de reutilizar arquivos obsoletos. Codifique lotes de imagem compatíveis uma vez e use cópia de fluxo em sua montagem quando possível; reutilize o fluxo de imagem do Reel para suas duas mixagens. Rerrenderize apenas os lotes afetados quando uma correção permitir e, em seguida, verifique novamente a exportação montada final.
- Misture uma narração clara com uma base musical separada e silenciosa apropriada. Uma trilha sonora original sintetizada e discreta é aceitável. Não adicione Undertow automaticamente. O mapeamento de áudio explícito deve excluir todo o áudio do filme da exportação completa. Use H.264 High, yuv420p, CFR, pixels quadrados, AAC-LC estéreo (48 kHz é adequado) e MP4 faststart para ambos os modos.
- Gere o SRT TTS de frases naturais e o SRT de exibição curta independentemente a partir das mesmas palavras da narração e dos timings medidos. Use as regras de legenda compartilhadas da Parte A para ambos; suas restrições de exportação sem áudio original/apenas Completo não substituem a Parte B. Preserve cada palavra, pontuação e ordem. Forneça texto de upload e miniaturas conforme especificado.
- Valide a decodificação completa, contagem de quadros/duração esperada, dimensões, perfil de codec, margem de áudio, tempo SRT não sobreposto e reconstrução exata do script. Audite a duração total de cada clipe completo e a seleção de origem não contínua. Compare os dois fluxos de imagem/tempos do Reel. Inspecione as miniaturas e as ações narradas selecionadas. Revise o movimento representativo com áudio quando disponível; imagens estáticas e metadados por si só não comprovam reprodução suave. Relate honestamente qualquer passagem de audição/visualização em velocidade normal indisponível.
- Somente após a verificação, limpe os arquivos temporários gerados pela tarefa usando um caminho explicitamente verificado dentro do projeto da tarefa. Preserve origens, edições anteriores, ferramentas/modelos compartilhados, instruções e entregas. Não remova caches compartilhados. Se a limpeza for bloqueada pelo host, não tente novamente por meio de outro shell ou linguagem para contornar o bloqueio; relate o local retido e o motivo. Nunca publique, faça upload ou conteste alegações sem autorização explícita.
Contrato do pacote final
Substitua <Título> pelo rótulo do filme/episódio verificado. A entrega padrão tem TRÊS MP4s no total: um completo e duas versões Reel.
<Título>-Full-Recap/
<Título>-recap-with-narration.mp4
<Título>-narration-TTS.srt
<Título>-captions-display.srt
youtube-upload.txt
thumbnails/
thumbnail-01.png
thumbnail-02.png
thumbnail-03.png
<Título>-Reel-Recap/
<Título>-recap-with-narration.mp4
<Título>-recap-without-narration.mp4
narration.txt
<Título>-narration-TTS.srt
<Título>-captions-display.srt
instagram-copy.txt
Não crie um vídeo de resumo completo sem narração ou um SRT de áudio original vazio. O texto de upload completo é obrigatório neste fluxo de trabalho combinado, não opcional. Não adicione logotipo, marca d'água ou identificação de canal, a menos que o usuário instrua explicitamente o contrário.