Communitygithub.com

toonfacts

Crie curtas animados de fatos interessantes (histórias reais, história e curiosidades, cada uma construída em uma pergunta aberta nos primeiros três segundos) no estilo Ricks Clips (personagens 2D em um mundo 3D colorido, narrador natural e seco, legendas palavra por palavra) com Remotion e three.js, do início ao fim. Modos: novo vídeo (tópico, pesquisa, roteiro, narração ElevenLabs, construção, auto-revisão, renderização), atualizar um vídeo existente, continuar, revisar, ideias. Use para "novo vídeo", "novo vídeo sobre X", "atualizar vídeo <slug>", "continuar vídeo <slug>", "revisar vídeo", "me dê ideias de vídeo" ou qualquer pedido de um curta animado viral de fatos.

O que é toonfacts?

O Toonfacts é uma habilidade especializada para agentes de IA, como Claude Code, que permite a criação de curtas-metragens animados no estilo 'Ricks Clips'. O skill gerencia todo o fluxo de trabalho de produção de vídeo: desde a pesquisa de tópicos, desenvolvimento de roteiro e narração via ElevenLabs, até a construção da cena com Remotion e three.js, auto-revisão e renderização final. Ele é projetado para criar vídeos virais baseados em fatos históricos, curiosidades e histórias reais, seguindo uma estrutura de 'story-first' com um gancho forte nos primeiros três segundos. O skill opera em modos distintos: 'new video' para criar um novo vídeo do zero, 'update' para modificar um existente, 'continue' para retomar após um passo manual, 'review' para verificar a qualidade e 'ideas' para gerar sugestões de tópicos sem construir nada. Para garantir a qualidade, o skill impõe regras rigorosas, como a verificação mecânica de cada cena (cada tomada deve corresponder ao que é dito na narração), o uso de um gancho forte como portão para aprovação, e a proibição de perguntas ao usuário (decisões são tomadas e registradas em NOTES.md). O resultado final é um vídeo MP4, uma thumbnail no formato 2160x3840 e um arquivo publish.txt com metadados para publicação.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/alifmahmudashik/toonfacts/tree/HEAD

Perguntar na sua IA favorita

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

Documentação

Toonfacts: curtas animados de fatos, uma habilidade

Diga o que quiser em palavras simples. Esta única habilidade faz todo o trabalho: ideia, fatos, roteiro, plano de cenas, legendas, narração ElevenLabs, construção, auto-revisão, renderização e atualizações posteriores. Nunca peça ao usuário para explicar o estilo: ele está definido nesta habilidade.

Modos (escolha a partir das palavras do usuário)

Usuário dizModoLeia
"novo vídeo", "novo vídeo sobre X", "me surpreenda", "faça o próximo curta"Novodocs/new-video.md
"atualizar vídeo ", "corrigir o vídeo", "mudar X em ", "aplicar as regras mais recentes"Atualizardocs/update-video.md
"continuar vídeo " (após uma etapa manual, como salvar o áudio)Continuardocs/new-video.md, retomar na primeira fase ausente
"revisar vídeo", "verificar ", "verificar este mp4"Revisardocs/review.md apenas
"ideias de vídeo", "me dê ideias"Ideiasdocs/new-video.md Fase 1 apenas: pesquisar histórias reais e fatos interessantes, pontuá-los em força da história e força do gancho, registrá-los em videos/_ideas.md, mostrar os 5 melhores com uma história de uma linha, sua forma e um gancho rascunhado, não construir nada
"atualizar a habilidade"Atualizar skillPré-voo etapa 2 apenas, depois relatar a mudança de versão
Se o pedido não for claro, escolha Novo quando nenhum vídeo for nomeado e Atualizar quando um for. Como o vídeo é construído e como deve parecer está em docs/engine.md; tanto Novo quanto Atualizar o usam.

Regras operacionais (todos os modos)

  • Uma cena deve significar o que a voz diz, e é verificada mecanicamente. Cada tomada declara o que afirma (o que é lido, quem olha para o quê, o que aponta para o quê, o que é segurado) e chama assertScene; cada texto pintado em um adereço passa por fitText. tools/check_scene.py bloqueia a renderização até que essas chamadas existam. Nunca renderize além de uma verificação com falha, e nunca corrija um letreiro cortado reduzindo seu texto ou aumentando uma tolerância: corrija a geometria.
  • O gancho é um portão, não um enfeite. Nenhum roteiro é escrito até que uma primeira linha passe pelo portão do gancho em docs/new-video.md Fase 2, e nenhum vídeo é entregue até que o bloco do gancho no topo de templates/review_checklist.md passe. Uma primeira linha fraca é motivo para redigir, nunca algo para contornar depois.
  • Não faça perguntas. Tome decisões razoáveis, escreva-as no NOTES.md do vídeo, continue. Pare apenas quando a narração não puder ser criada (consulte docs/new-video.md Fase 3), uma ferramenta necessária estiver faltando ou uma decisão não puder ser desfeita.
  • Uma pasta por vídeo, tudo dentro dela: videos/<slug>/ (slug = título em palavras minúsculas unidas por hífens). MP4 final e publish.txt no topo, arquivos de trabalho em source/, renderizações antigas em versions/. Rascunhos (imagens estáticas, folhas de contato, renderizações de teste) vão apenas em work/<slug>/. Nunca deixe trabalho apenas na conversa.
  • Gaste créditos ElevenLabs uma vez por narração (uma tomada). Regere apenas quando as palavras faladas mudarem, o áudio for inutilizável ou a tomada falhar na verificação de desempenho em docs/new-video.md Fase 3 etapa 4 (risos ou atuação exagerada) - então mais uma vez, com as tags reduzidas.
  • Natural vence expressivo. O narrador nunca ri: nenhum [laughs] ou [chuckles] em lugar nenhum, no máximo 3 tags em um roteiro inteiro, e nenhum ponto de exclamação no texto da narração. As imagens carregam a comédia; um narrador rindo da própria piada é o sinal mais claro de uma tomada de IA.
  • Nunca imprima ou salve chaves de API. O ElevenLabs MCP é adicionado pelo usuário no Claude Code; use-o como conectado.
  • Nunca publique ou faça upload de um vídeo. A entrega é o MP4 final, sua miniatura e um publish.txt pesquisado (título, descrição, hashtags, tags).
  • Resposta final: algumas linhas (o que foi feito ou alterado, onde está, as escolhas que importam, um próximo passo). Nenhum resumo passo a passo.

Pré-voo (silencioso, toda execução, todo modo)

  1. Projeto e pastas. Encontre o projeto Remotion (a pasta com package.json e src/). Crie videos/, videos/_ideas.md e work/ se estiverem faltando.
  2. Mantenha esta habilidade atualizada. Se esta pasta de habilidade for um clone git, execute um git pull --ff-only silencioso e leia CHANGELOG.md para saber o que mudou; mencione a nova versão na resposta final apenas se ela mudou. Se não for um clone git, pule.
  3. Ferramentas. Verifique ffmpeg, Python 3 e @remotion/three (instale @remotion/three e three no projeto se estiverem faltando). Encontre as ferramentas ElevenLabs MCP (nomes como text_to_speech, generate_speech, creative_generate_speech, list_voices, speech_to_text, transcribe); carregue-as com ToolSearch se adiado. Se não houver nenhuma, continue até a narração, escreva NEEDS_AUDIO.md explicando que o ElevenLabs MCP deve ser conectado (ou o áudio fornecido), e pare aí.
  4. Habilidades separadas antigas. Se .claude/skills/cartoon-3d-short/ ou .claude/skills/new-video/ também existirem, não as use. Diga ao usuário uma vez na resposta final que eles podem remover essas duas pastas, porque esta habilidade substitui ambas.
  5. Arquivos auxiliares legados. Exclua video-ideas/SKILL-UPDATE.md (primeira linha começa com "# Instructions for Claude Code") e video-ideas/README.md (primeira linha "# video-ideas") se presentes. Nunca exclua mais nada.
  6. Renomear arquivos de publicação antigos (uma vez). O arquivo de publicação agora é texto simples, não Markdown, porque o usuário copia dele e não quer lê-lo renderizado. Para cada videos/<slug>/publish.md, copie-o para videos/<slug>/publish.txt, removendo o Markdown conforme avança (descarte #, **, crases, barras de tabela; transforme títulos em maiúsculas e mantenha o conteúdo idêntico), e diga ao usuário na resposta final quais arquivos publish.md ele pode excluir agora. Nunca os exclua você mesmo.
  7. Migrar o layout antigo (uma vez, movendo, nunca excluindo). Se video-ideas/ ou out/ existirem de uma versão mais antiga:
    • video-ideas/_ideas.md torna-se videos/_ideas.md.
    • Para cada video-ideas/<slug>/: publish.md (ou publish.txt) vai para videos/<slug>/publish.txt; todos os outros arquivos (script.md, voiceover*.mp3, words.json, NOTES.md, REVIEW.md, CHANGES.md, NEEDS_AUDIO.md, folhas de revisão) vão para videos/<slug>/source/.
    • Combine cada renderização final em out/ com seu slug pelo nome do arquivo ou título (out/<slug>.mp4, ou um nome como The_Man_Who_...): o mais novo torna-se videos/<slug>/<slug>.mp4, os mais antigos videos/<slug>/versions/<slug>_v1.mp4, _v2.mp4 por data.
    • Todo o resto em out/ (imagens estáticas, folhas de contato, QA, renderizações de teste, pastas de rascunho por vídeo) é movido para work/legacy-out/, e os dois arquivos auxiliares acima para work/legacy/. Qualquer coisa que você não puder combinar fica lá também.
    • Ao final, liste o que foi movido para onde na resposta final (uma lista curta) e diga ao usuário que as pastas vazias video-ideas/ e out/ podem ser excluídas. Não toque em src/, public/, scripts/, audio/ ou backup/, e deixe todos os arquivos já em work/ onde estão.

Estrutura de pastas

videos/                        # tudo finalizado ou em andamento, uma pasta por vídeo
  _ideas.md                    # todo tópico usado ou rejeitado (leia primeiro, anexe por último)
  <slug>/
    <slug>.mp4                 # VÍDEO FINAL: o arquivo para enviar
    thumbnail.jpg              # capa construída, 2160x3840 (não um quadro bruto)
    publish.txt                # título, descrição, hashtags, tags, categoria, comentário fixado + fontes de pesquisa
    source/                    # script.md  voiceover.mp3  words.json  NOTES.md  REVIEW.md  CHANGES.md
    versions/                  # renderizações anteriores: <slug>_v1.mp4 ... (mantidas pelo modo Atualizar)
work/                          # rascunho, seguro excluir: imagens estáticas, folhas de contato, QA, renderizações de teste, REMOTION_TMP se não houver outro drive
  <slug>/

O que está nesta habilidade

CaminhoO que é
docs/new-video.mdNovo e Continuar: ideia, pesquisa, roteiro, narração, construção, revisão, entrega
docs/update-video.mdAtualizar: classificar a mudança, proteger versões antigas, aplicar, re-renderizar, verificação de regressão
docs/review.mdO ciclo de revisão (folhas de contato, verificações, pontuações, correções)
docs/engine.mdComo o vídeo é construído e deve parecer: pipeline, regras para cada vídeo, enquadramento, iluminação, fluxo de câmera, legendas, reações, portão de qualidade
references/story_format.mdO formato de história de seis batidas, caixa de ferramentas de comédia, números de ritmo
references/ (outros)Bíblia de estilo, relatórios medidos, quadros e folhas de referência
templates/Código fonte do renderizador (bridge/), síntese de áudio, scripts, plano de cenas, modelos de roteiro e revisão
docs/history/Arquivo dos README, CHANGELOG e redação original dos dois repositórios anteriores. Não são instruções
tools/review_video.shVerificações de duração, corte bruto e volume, além de folhas de contato
tools/make_thumbnail.pyProjeta uma miniatura de Shorts 2160x3840: recorta o personagem, coloca-o em um fundo feito, empilha o texto
tools/check_scene.pyBloqueia uma renderização cujas tomadas nunca declararam sua verdade física, ou cujo texto de adereço não foi ajustado
tools/check_voice.pyVerifica uma tomada de narração: velocidade, pausas, volume e os segundos onde a entrega é muito rápida (risos, pressa)

Habilidades Relacionadas