Communitygithub.com

infofilm

Crie um filme explicativo narrado com infográficos (tipicamente de 5 a 15 minutos) sobre um assunto real — como um sistema funciona, o que aconteceu, o que acontecerá — no estilo de um cinejornal com cartões instrutivos dos anos 1950, um mascote de pantomima, um narrador entusiasmado, intervalos comerciais cantados e infográficos desenhados por código que aparecem exatamente na palavra falada.

O que é infofilm?

O infofilm é uma skill avançada para agentes de IA que transforma tópicos reais em filmes explicativos no estilo de cinejornais dos anos 1950, combinando narração, música, ilustrações geradas por IA e infográficos code-drawn. O pipeline completo inclui pesquisa com fontes primárias, roteiro verificado, narração via ElevenLabs com timestamps por caractere, músicas do Suno (tema, bases e jingles), ilustrações do Gemini e cenas do Remotion sincronizadas com a fala. O resultado final é um mestre em −14 LUFS com legendas SRT. A skill é ideal para usuários que pedem "um filme explicativo", "um vídeo infográfico", "um filme que explique…", "gör en film om…" ou um vídeo estilo cinejornal sobre um tópico. Suporta múltiplos idiomas, tem regras rigorosas contra palpites factuais, exige aprovação do usuário antes de gastar dinheiro (voz, imagens, música) e é completamente modular: o template vem com um demo funcional que pode ser substituído peça por peça. A skill é projetada para funcionar com Claude Code, Cursor, Codex ou agentes similares que podem executar scripts Python, Node.js e ferramentas de linha de comando como ffmpeg.

Funciona com✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/fltman/infofilm/tree/HEAD/skills/infofilm

Perguntar na sua IA favorita

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

Documentação

infofilm: filmes explicativos com infográficos

Um filme feito com esta skill é um baralho de cartões instrutivos dispostos sobre uma mesa azul-marinho. Cada cartão tem uma faixa de título, uma janela de imagem e uma faixa de legenda. Uma ilustração gerada por IA é exibida na janela, e infográficos desenhados por código surgem sobre ela na palavra exata que os nomeia. Um narrador de cinejornal carrega o significado, e um mascote o interpreta em pantomima, sem nunca falar. Intervalos comerciais cantados e uma balada de encerramento dão ritmo ao filme.

Cada número, título e rótulo é desenhado por código a partir de uma base de fatos. As imagens nunca contêm texto.

O modelo em template/ é um filme completo e funcional: uma demo de um minuto sobre anos bissextos. Use-o como base e substitua a demo pelo seu filme, peça por peça. O filme é renderizado a cada etapa: cenas sem um componente mostram seu cartão, e cenas sem narração recebem tempo estimado. Assim, você pode sempre visualizar o todo antes de gastar dinheiro.

Regras permanentes (substituem a conveniência)

  1. Dinheiro: pergunte primeiro. ElevenLabs, geração de imagens e downloads do Suno custam dinheiro real ou cota. Antes de cada lote pago, informe o que é, quantos itens e o custo estimado; --dry-run exibe o custo. Aguarde uma resposta positiva. Essa autorização cobre apenas aquele lote, a menos que o usuário tenha dado aprovação permanente ("você está autorizado para imagens, voz e música"). Registre cada aprovação e custo em notes/log.md.
  2. Nunca adivinhe um fato.
    • Cada afirmação e número vem de notes/research.md, que cita fontes primárias. Cada número na tela vem de video/src/data.ts, que cita a seção de pesquisa.
    • Eventos atuais devem ser verificados contra fontes primárias. Se algo não puder ser verificado, fica fora do filme, ou a cena espera; veja "Cenas que esperam" em references/script.md.
  3. Texto e números são desenhados em código, nunca pelo modelo de imagem. Os prompts de imagem proíbem texto, e cada imagem é inspecionada.
  4. O usuário ouve, o Whisper não. Nunca transcreva a fala gerada para verificá-la; o Whisper ouve mais erros do que existem. Em vez disso, forneça ao usuário uma página de audição.
  5. Sátira imparcial. A ironia visa o sistema, a máquina e o espetáculo, nunca um partido, grupo ou pessoa. Trate os lados de forma idêntica em tamanho, lógica de cores e animação. Nenhuma pessoa ou logotipo real nas imagens.
  6. Diacríticos corretos em todos os lugares (å ä ö é ü …), inclusive em prompts para subagentes. Diga a cada subagente explicitamente.
  7. Leia as palavras do usuário literalmente. "Distópico", "retrô" ou "estilo Fallout" são atmosferas, não listas de objetos. Quando uma palavra de estilo puder significar várias coisas, mostre propostas e confirme antes de prosseguir (veja references/style.md).

O pipeline

Trabalhe nestas fases em ordem. As etapas ⛔ são portões: pare e obtenha a decisão do usuário antes de prosseguir.

0 · Início

  • Confirme o assunto, público, idioma, duração (padrão cerca de 12 minutos) e propósito. Verifique ELEVENLABS_API_KEY e OPENROUTER_API_KEY no ambiente, Chrome com a extensão claude-in-chrome e um login Suno, além de node, pnpm/npm, ffmpeg e python3 com numpy e elevenlabs.
  • Estrutura inicial:
    <skill>/scripts/new_film.sh <dir> --slug my-film --title "My Film" --lang sv --locale sv-SE
    
    Isso copia o modelo, instala o Remotion, sintetiza os efeitos sonoros, constrói uma primeira linha do tempo e verifica tipos.
  • Mantenha decisões em notes/log.md, com datas e quem decidiu.
  • As renderizações precisam de espaço. Verifique df -h e aponte OUTDIR para um disco grande quando o disco do sistema tiver menos de cerca de 20 GB livres.

1 · Pesquisa → notes/research.md

  • Escreva seções numeradas (## 2.3 · O limite), um fato ou grupo por seção, cada uma com sua fonte primária: legislação, estatísticas oficiais, as páginas da própria autoridade.
  • Marque qualquer coisa incerta. Para um evento recente, registre a data em que os fatos são válidos.
  • Veja references/script.md.

2 · Visual e elenco ⛔

  • Reutilize o estilo padrão (creme, azul-marinho e tinta dourada; retrofuturismo de 1957; Bowlby One SC + Jost + Lobster) ou proponha alternativas. Renderize o mesmo infográfico pequeno em 3 a 7 estilos para que o usuário compare.
  • Escolha o mascote: um homem comum silencioso com um gesto característico (o mascote padrão tira o chapéu). Evite gestos que pertençam a mascotes famosos, como uma piscadela com um polegar para cima.
  • Gere o retrato de referência primeiro (kind: "ref"), depois uma ficha de modelo, e obtenha aprovação antes de qualquer imagem de cena.
  • ⛔ O usuário escolhe o estilo, mascote, gesto e fontes. Detalhes: references/style.md e references/images.md.

3 · Roteiro → script/script.md ⛔

  • Estrutura: um tema de abertura, 2 a 4 partes, um intervalo comercial entre as partes e uma balada de encerramento. Cada cena é um cartão de 15 a 40 segundos.
  • O orçamento de palavras é minutos × cerca de 127 palavras por minuto para um narrador de cinejornal.
  • Escreva os números por extenso na narração; os cartões mostram os dígitos exatos.
  • Evite palavras com data, como "na segunda-feira". O filme dura mais que a semana.
  • Revise antes de alguém pagar. Peça a um subagente independente que verifique o roteiro e a pesquisa com fontes primárias, classificando as descobertas em DEVE, DEVERIA e PODERIA. Corrija tudo classificado como DEVE. Revisões já encontraram erros na própria pesquisa.
  • ⛔ O usuário aprova o roteiro. Formato e elaboração: references/script.md.

4 · Narrador ⛔

  1. Crie 3 opções com voice/design_voice.py preview <tag> (pergunte primeiro) e deixe o usuário escolher uma. Salve-a com create.
  2. Faça uma leitura de teste de 2 cenas representativas e deixe o usuário aprovar o ritmo e a pronúncia.
  3. Grave tudo: python3 voice/narrate.py --dry-run, depois pergunte e execute.

Se uma cena for editada depois, apenas aquela cena é cobrada novamente. Detalhes e armadilhas: references/voice.md.

5 · Música (Suno, interface web oficial, via Chrome)

Você precisa destes segmentos:

  • um tema de abertura de cerca de 20 segundos, que funciona muito bem no modo Speech como uma voz de harmonia fechada e monótona
  • uma base instrumental para cada parte, em loop e com volume reduzido sob a voz
  • um jingle cantado para cada intervalo comercial
  • uma balada de encerramento, tipicamente uma regravação do tema.

Use prompts para expressões idiomáticas americanas dos anos 1950; palavras de gênero como "schlager" levam a música para outro lugar. O usuário gosta de opções no Suno, a menos que tenha lhe dado a escolha. Baixe WAV pelo menu do Suno, obtenha as letras alinhadas para os pontos de corte e escreva music/cuts.json e video/src/lyrics.ts. Detalhes: references/music.md.

6 · Ilustrações

  • Uma imagem 21:9 2K por cena, film-Sxx em art/shots.json, baseada na referência do mascote. Custo: python3 art/gen.py --dry-run, depois pergunte.
  • Examine cada imagem em busca de texto, objetos duplicados, membros extras e roupa errada, e regenere as ruins.
  • Execute python3 tools/sync_art.py e depois python3 tools/build_timeline.py. Detalhes: references/images.md.

7 · Cenas (Remotion)

  • Construa duas cenas douradas você mesmo: as cenas que contêm os infográficos centrais do filme. Faça-as atender ao padrão e registre-as em golden.ts, substituindo TheYear/TheRule da demo.
  • Em seguida, distribua para 2 a 3 subagentes construtores paralelos com video/CONTRACT.md (preencha suas linhas {{…}}). Cada construtor tem seu próprio registro de grupo e verifica com folhas de contato.
  • Os construtores podem começar antes da narração existir, porque as marcações seguem as palavras estimadas e depois mudam para as reais automaticamente. Se o roteiro mudar enquanto eles trabalham (uma revisão chega), envie a cada construtor as alterações exatas para suas cenas com SendMessage.
  • Revise você mesmo a ficha de cada cena.
  • Detalhes: references/scenes.md.

8 · Renderização e entrega

  • Execute tools/render.sh. Ele reconstrói a linha do tempo, verifica as marcações, verifica tipos, renderiza, aplica loudnorm de duas passagens para −14 LUFS / −1 dBTP e escreve o SRT.
  • Verifique o volume por segmento e faça verificações pontuais de quadros do mp4, depois abra o filme para o usuário.
  • Detalhes: references/render.md.

9 · Revisões

  • Texto alterado: regrave apenas aquela cena, depois reconstrua a linha do tempo. As marcações seguem as palavras automaticamente.
  • Imagem alterada: regenere a imagem, sincronize, reconstrua.
  • Música alterada: edite cuts.json.

Correções visuais não custam nada além de uma re-renderização; apenas nova narração, imagens ou downloads custam dinheiro.

Mapa do modelo

CaminhoO que é
film.jsontítulo, slug, idioma, localidade, introduções e bases das partes, música de início/fim de cena, modelo TTS, outDir
script/script.mdo manuscrito: ## Sxx · nome, <!-- title: -->, <!-- facts: -->, > visual:, narração
notes/research.md, notes/log.mda base de fatos; decisões e custos
voice/design.json + design_voice.py (design de voz), narrate.py (narração + timestamps), listen.py (página de audição), voice.json
music/suno/*.wav, cuts.json, tools/beats.py (tempo), tools/suno_lines.py (letras alinhadas → linhas)
art/style.json (o visual, a lista do que nunca fazer), shots.json, gen.py, img/
tools/build_timeline.py, cues.py, lint_cues.py, make_srt.py, sync_art.py, art_sheet.py, unframe.py, make_sfx.py, render.sh
video/src/theme.ts, fonts.ts, timing.tsx (useScene, cue), data.ts, lyrics.ts, Music.tsx, primitives/ (Card, Bits, Film, Jingle, Hemicycle), scenes/
video/tools/stills.mjs (folha de contato de quadros escolhidos), review.mjs (N quadros por cena, muitas cenas)

Armadilhas conhecidas, com suas correções: references/pitfalls.md.

Habilidades Relacionadas