Communitygithub.com

toonfacts

Créez des courts-métrages animés de type 'dessin animé factuel' (histoire d'abord, accroche sous forme de question ouverte dans les trois premières secondes) dans le style Ricks Clips (personnages 2D dans un monde 3D coloré, narrateur sec et naturel, sous-titres mot à mot) avec Remotion et three.js, de bout en bout.

Qu'est-ce que toonfacts ?

Toonfacts est une compétence d'agent IA qui automatise la création de courts-métrages animés factuels viraux, dans le style Ricks Clips. Il prend en charge des récits historiques et des faits intéressants, chaque vidéo étant construite autour d'une question ouverte dans les trois premières secondes. La compétence gère l'ensemble du flux de travail : recherche de sujets, rédaction de script, génération de voix off via ElevenLabs, construction 3D avec Remotion et three.js, auto-révision et rendu. Elle est conçue pour Claude Code et des outils similaires, et propose plusieurs modes : nouvelle vidéo, mise à jour d'une vidéo existante, continuation, révision et génération d'idées. L'agent IA respecte des règles strictes de qualité, comme la vérification que chaque plan correspond exactement à la narration, que l'accroche est validée avant tout développement, et qu'aucune question n'est posée à l'utilisateur (les choix raisonnables sont faits automatiquement). La compétence suit un format de dossier normalisé et garantit que les vidéos finales sont livrées avec une vignette et un fichier de publication prêt à l'emploi.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Toonfacts : courts-métrages animés factuels, une seule compétence

Dites ce que vous voulez en mots simples. Cette compétence fait tout le travail : idée, faits, script, plan de plans, sous-titres, voix off ElevenLabs, construction, auto-révision, rendu, et mises à jour ultérieures. Ne demandez jamais à l'utilisateur d'expliquer le style : il est défini dans cette compétence.

Modes (choisir selon les mots de l'utilisateur)

L'utilisateur ditModeLire
"new video", "new video about X", "surprise me", "make the next short"Nouveaudocs/new-video.md
"update video ", "fix the video", "change X in ", "apply the latest rules"Mise à jourdocs/update-video.md
"continue video " (après une étape manuelle comme la sauvegarde de l'audio)Continuerdocs/new-video.md, reprendre à la première phase manquante
"review video", "check ", "check this mp4"Révisiondocs/review.md uniquement
"video ideas", "give me ideas"Idéesdocs/new-video.md Phase 1 uniquement : rechercher des histoires vraies et des faits intéressants, les noter sur la force de l'histoire et la force de l'accroche, les consigner dans videos/_ideas.md, afficher le top 5 avec un résumé d'une ligne, sa structure et une ébauche d'accroche, ne rien construire
"update the skill"Mise à niveauÉtape préliminaire 2 uniquement, puis signaler le changement de version
Si la demande n'est pas claire, choisir Nouveau quand aucune vidéo n'est nommée et Mise à jour quand une vidéo est nommée. La façon dont la vidéo est construite et son apparence sont décrites dans docs/engine.md ; Nouveau et Mise à jour l'utilisent.

Règles de fonctionnement (tous les modes)

  • Un plan doit signifier ce que dit la voix, et cela est vérifié mécaniquement. Chaque plan déclare ce qu'il représente (ce qui est lu, qui regarde quoi, ce qui vise quoi, ce qui est tenu) et appelle assertScene ; chaque chaîne peinte sur un accessoire passe par fitText. tools/check_scene.py bloque le rendu tant que ces appels ne sont pas présents. Ne rendez jamais si un contrôle échoue, et ne corrigez jamais un panneau coupé en réduisant son texte ou en élargissant une tolérance : corrigez la géométrie.
  • L'accroche est une barrière, pas un ornement. Aucun script n'est écrit tant qu'une première ligne ne passe pas la barrière de l'accroche dans docs/new-video.md Phase 2, et aucune vidéo n'est livrée tant que le bloc d'accroche en haut de templates/review_checklist.md ne passe pas. Une première ligne faible est une raison de réécrire, jamais quelque chose à corriger plus tard.
  • Ne posez pas de questions. Faites des choix raisonnables, écrivez-les dans le NOTES.md de la vidéo, continuez. Arrêtez-vous uniquement lorsque la voix off ne peut pas être créée (voir docs/new-video.md Phase 3), qu'un outil nécessaire est manquant, ou qu'une décision ne peut pas être annulée.
  • Un dossier par vidéo, tout à l'intérieur : videos/<slug>/ (slug = titre en minuscules séparées par des traits d'union). MP4 final et publish.txt à la racine, fichiers de travail dans source/, anciens rendus dans versions/. Les fichiers temporaires (images, planches contact, rendus de test) vont uniquement dans work/<slug>/. Ne laissez jamais de travail uniquement dans la conversation.
  • Utilisez les crédits ElevenLabs une fois par voix off (une prise). Régénérez uniquement lorsque les mots prononcés changent, que l'audio est inutilisable, ou que la prise échoue au contrôle de performance dans docs/new-video.md Phase 3 étape 4 (rires ou surjeu) – alors une fois de plus, avec les balises réduites.
  • Naturel plutôt qu'expressif. Le narrateur ne rit jamais : pas de [laughs] ou [chuckles] nulle part, au maximum 3 balises dans tout le script, et pas de points d'exclamation dans le texte de la voix off. Les images portent l'humour ; un narrateur qui rit de sa propre blague est le signe le plus clair d'une prise IA.
  • N'imprimez ni ne sauvegardez jamais de clés API. Le MCP ElevenLabs est ajouté par l'utilisateur dans Claude Code ; utilisez-le tel quel.
  • Ne publiez ni ne téléchargez jamais de vidéo. La livraison est le MP4 final, sa vignette et un publish.txt recherché (titre, description, hashtags, tags).
  • Réponse finale : quelques lignes (ce qui a été fait ou modifié, où cela se trouve, les choix importants, une prochaine étape). Pas de récapitulatif étape par étape.

Pré-vol (silencieux, à chaque exécution, chaque mode)

  1. Projet et dossiers. Trouvez le projet Remotion (le dossier avec package.json et src/). Créez videos/, videos/_ideas.md et work/ s'ils manquent.
  2. Gardez cette compétence à jour. Si ce dossier de compétence est un clone git, lancez un git pull --ff-only silencieux et lisez CHANGELOG.md pour voir ce qui a changé ; mentionnez la nouvelle version dans la réponse finale uniquement si elle a changé. Si ce n'est pas un clone git, ignorez.
  3. Outils. Vérifiez ffmpeg, Python 3 et @remotion/three (installez @remotion/three et three dans le projet s'ils manquent). Trouvez les outils MCP ElevenLabs (noms comme text_to_speech, generate_speech, creative_generate_speech, list_voices, speech_to_text, transcribe) ; chargez-les avec ToolSearch s'ils sont différés. S'il n'y en a pas, continuez jusqu'à la voix off, écrivez NEEDS_AUDIO.md expliquant que le MCP ElevenLabs doit être connecté (ou l'audio fourni), et arrêtez-vous là.
  4. Anciennes compétences séparées. Si .claude/skills/cartoon-3d-short/ ou .claude/skills/new-video/ existent aussi, ne les utilisez pas. Dites-le à l'utilisateur une fois dans la réponse finale qu'il peut supprimer ces deux dossiers, car cette compétence les remplace tous les deux.
  5. Fichiers d'aide hérités. Supprimez video-ideas/SKILL-UPDATE.md (première ligne commence par "# Instructions for Claude Code") et video-ideas/README.md (première ligne "# video-ideas") s'ils sont présents. Ne supprimez jamais rien d'autre.
  6. Renommer les anciens fichiers de publication (une fois). Le fichier de publication est maintenant en texte brut, pas en Markdown, car l'utilisateur le copie et ne veut pas le voir rendu. Pour chaque videos/<slug>/publish.md, copiez-le vers videos/<slug>/publish.txt, supprimez le Markdown au fur et à mesure (supprimez #, **, les backticks, les pipes de tableau ; transformez les titres en majuscules et gardez le contenu identique), et dites à l'utilisateur dans la réponse finale quels fichiers publish.md il peut maintenant supprimer. Ne les supprimez jamais vous-même.
  7. Migrer l'ancienne structure (une fois, en déplaçant, jamais en supprimant). Si video-ideas/ ou out/ existent d'une version antérieure :
    • video-ideas/_ideas.md devient videos/_ideas.md.
    • Pour chaque video-ideas/<slug>/ : publish.md (ou publish.txt) va dans videos/<slug>/publish.txt ; tous les autres fichiers (script.md, voiceover*.mp3, words.json, NOTES.md, REVIEW.md, CHANGES.md, NEEDS_AUDIO.md, feuilles de révision) vont dans videos/<slug>/source/.
    • Associez chaque rendu final dans out/ à son slug par nom de fichier ou titre (out/<slug>.mp4, ou un nom comme The_Man_Who_...) : le plus récent devient videos/<slug>/<slug>.mp4, les plus anciens videos/<slug>/versions/<slug>_v1.mp4, _v2.mp4 par date.
    • Tout le reste dans out/ (images, planches contact, QA, rendus de test, dossiers temporaires par vidéo) est déplacé vers work/legacy-out/, et les deux fichiers d'aide ci-dessus vers work/legacy/. Tout ce que vous ne pouvez pas associer reste là aussi.
    • Une fois terminé, listez ce qui a été déplacé où dans la réponse finale (une courte liste) et dites à l'utilisateur que les dossiers vides video-ideas/ et out/ peuvent être supprimés. Ne touchez pas à src/, public/, scripts/, audio/ ou backup/, et laissez les fichiers déjà dans work/ tels quels.

Structure des dossiers

videos/                        # tout ce qui est terminé ou en cours, un dossier par vidéo
  _ideas.md                    # chaque sujet utilisé ou rejeté (lire d'abord, ajouter à la fin)
  <slug>/
    <slug>.mp4                 # Vidéo FINALE : le fichier à télécharger
    thumbnail.jpg              # couverture construite, 2160x3840 (pas une image brute)
    publish.txt                 # titre, description, hashtags, tags, catégorie, commentaire épinglé + sources de recherche
    source/                    # script.md  voiceover.mp3  words.json  NOTES.md  REVIEW.md  CHANGES.md
    versions/                  # rendus antérieurs : <slug>_v1.mp4 ... (conservés par le mode Mise à jour)
work/                          # fichiers temporaires, supprimables : images, planches contact, QA, rendus de test, REMOTION_TMP si aucun autre disque
  <slug>/

Contenu de cette compétence

CheminDescription
docs/new-video.mdNouveau et Continuer : idée, recherche, script, voix off, construction, révision, livraison
docs/update-video.mdMise à jour : classer la modification, protéger les anciennes versions, appliquer, re-rendre, vérification de régression
docs/review.mdLa boucle de révision (planches contact, vérifications, scores, corrections)
docs/engine.mdComment la vidéo est construite et doit ressembler : pipeline, règles pour chaque vidéo, cadrage, éclairage, flux de caméra, sous-titres, réactions, barrière de qualité
references/story_format.mdLe format d'histoire en six temps, boîte à outils comique, rythme
references/ (autre)Bible de style, rapports mesurés, images et feuilles de référence
templates/Source du moteur de rendu (bridge/), synthèse audio, scripts, plan de plans, modèles de script et de révision
docs/history/Archive des README, CHANGELOG et formulation originale des deux anciens dépôts. Pas des instructions
tools/review_video.shVérifications de durée, de coupe franche et de volume sonore ainsi que planches contact
tools/make_thumbnail.pyConçoit une vignette Shorts 2160x3840 : découpe le personnage, le place sur un fond créé, superpose le texte
tools/check_scene.pyBloque un rendu dont les plans n'ont jamais déclaré leur vérité physique, ou dont le texte d'accessoire n'est pas adapté
tools/check_voice.pyVérifie une prise de voix off : vitesse, pauses, volume sonore, et les secondes où le débit est trop rapide (rires, précipitation)

Skills associés