Communitygithub.com

code-film

Film d'animation généré par code, vérifié image par image.

Qu'est-ce que code-film ?

code-film est une compétence spécialisée dans la création de films d'animation courts à partir de code pur, où chaque image est une fonction déterministe de son code temporel. L'utilisateur fournit un brief et la compétence génère une page HTML respectant le contrat `window.__seek(t)`, permettant au moteur de rendu de capturer chaque image de manière déterministe. Le système vérifie la séquence (flash, temps mort, format, réseau), encode la vidéo avec ffmpeg et produit un rapport incluant l'empreinte SHA-256 du fichier final. Utilisée principalement pour des clips de lancement, showreels, typographies animées ou animations de marque, elle ne convient pas aux animations UI, aux vidéos génératives (Veo, Kling) ou au montage de séquences existantes. La compétence s'appuie sur un corpus de recettes et une procédure en 9 étapes allant de la définition des entrées au rendu final, avec des vérifications obligatoires (contact sheet, flash floor, déterminisme).

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/event4u-app/agent-config/tree/HEAD/src/skills/code-film

Demander à votre IA préférée

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

Documentation

Que fait code-film ?

Un film d'animation dont chaque image est une fonction pure de son code temporel : une page expose window.__seek(t), ui:render --profile film la parcourt image par image, capture, prouve le caractère déterministe de la séquence, la vérifie par rapport au seuil de photosensibilité et au format déclaré, et l'encode avec ffmpeg. Pas de fournisseur vidéo payant, pas de lecture en direct. Les valeurs du mouvement du film se trouvent dans references/film-motion.md ; le contrat de la page dans film-page.

Quand l'utiliser

  • L'utilisateur demande un court film d'animation réalisé à partir de son propre matériel — un clip de lancement de produit, une démo, une typographie cinétique, un graphique animé, un explicateur de processus, une animation de marque en boucle.
  • Le film doit rendre deux fois la même image, reposer sur un temps fort ou un tempo déclaré, ou être livré en MP4 à une taille donnée.

Quand NE PAS l'utiliser

  • Une requête pour un fournisseur de vidéo générative (Veo, Kling, Sora) → motion-choreographer.
  • Une animation dans une interface utilisateur — survol, défilement, transition de page → fe-design § Animation.
  • Le montage ou le sous-titrage de séquences existantes → le groupe /video.
  • Un actif SVG unique statique ou en boucle → svg-authoring.

Procédure

  1. Entrées. Ne demander que ce que la recette liste comme variable : objectif, format et taille en pixels, palette en hexadécimal, une police de caractères, audio (aucun, un fichier fourni ou un tempo déclaré), carte de fin. Pour « fais-le simplement », indiquer les valeurs par défaut utilisées.

  2. Direction. Choisir une recette dans le corpus et indiquer le concept unique que chaque plan sert :

    node <skills-root>/corpus-grounding/scripts/ground.mjs search \
      --manifest <skills-root>/code-film/data/manifest.json "<le brief>"
    
  3. Interdictions. Extraire les signaux pour le brief (--domain tell) et écrire chaque interdiction avec son alternative dans le plan.

  4. Grille. Tempo et mesures à partir de la piste fournie (allin1.sh si installé ; sinon un tempo déclaré, rapporté comme déclaré), puis une liste ordonnée de plans avec durées. Maintenir chaque texte pour son temps de lecture (3 mots par seconde).

  5. Explicateurs uniquement — affirmations. Lister chaque chiffre, nom et date à l'écran avec sa source, ou les marquer comme provenant de l'utilisateur. N'en inventer aucun.

  6. Construction. Écrire la page sur le contrat de recherche : window.__seek(t), window.__videoMeta, pas d'horloge murale, aléatoire ensemencé, polices locales. Choisir le moteur de rendu parmi --domain renderer ; le HTML simple est la valeur par défaut et un moteur sous licence n'est suggéré qu'après avoir répondu à sa question de licence.

  7. Planche contact. Rendre une fois, lire contact.png, corriger les chevauchements, le fouillis et le timing hors tempo. Trois passes au maximum.

  8. Rendu.

    agent-config ui:render film/index.html --profile film --out film/out.mp4 [--audio track.wav]
    

    Le code de retour 0 signifie propre, 2 contient des résultats (déterminisme, flash, temps mort, format, réseau), 1 signifie non évalué, 3 signifie aucun pilote de navigateur.

  9. Rapport. Citer le manifeste : la forme de recherche, chaque vérification comme effectuée ou ignorée : <raison>, les résultats et vérification. Dire vérifié uniquement quand le manifeste le dit et que son empreinte de fichier correspond au fichier livré.

Statut — signification de chaque mot

  • vérifié — chaque vérification applicable a été effectuée sur cette machine et l'empreinte du fichier encodé est celle enregistrée. Cela ne dit rien sur la qualité du film.
  • statique-uniquement — les images ont été capturées et hachées, mais une vérification nécessitant ffmpeg (seuil de flash, encodage, format) n'a pas été effectuée. Nommer l'outil manquant.
  • non évalué — rien n'a été vu : aucun pilote de navigateur, aucune forme de recherche ou aucune durée déclarée. Nommer l'installation ou la déclaration manquante.

Format de sortie

  1. Le chemin du film et son SHA-256 extrait du manifeste.
  2. Le tableau des vérifications (effectuée / ignorée : …) et chaque résultat.
  3. Le chemin de la planche contact.
  4. Pour un explicateur, la liste des affirmations avec sources.

Piège

  • Une page qui utilise Math.random ou Date.now rend différemment lors de la passe inverse ; le manifeste nomme la première image divergente. Ensemencer à partir de t.
  • Le seuil de flash est un seuil de sécurité : un stroboscope échoue et aucun indicateur ne l'abaisse.
  • Le profil film exécute les scripts de la page avec le réseau désactivé. Une police ou une image récupérée depuis un CDN ne se charge pas — l'expédier à côté de la page.
  • Le déterminisme est prouvé par machine ; les polices et les GPU diffèrent d'une machine à l'autre.
  • Une page construite sur un framework temporel est vue via window.__timelines (entrées mises en pause, accessibles) ; les séquences intégrées sont maintenues à t − data-start. Encoder les séquences en intra-image (-g 1), sinon une recherche atterrit entre les images clés.

À NE PAS FAIRE

  • NE PAS coller le texte d'une invite provenant d'une galerie externe dans un plan ou une recette — l'écrire à partir du corpus.
  • NE PAS regrouper ou installer un moteur de rendu sans demander ; détecter et rediriger.
  • NE PAS considérer un film comme terminé à partir du seul code — ce sont les images qui décident.
  • NE PAS affirmer qu'un film est bon, conforme à la marque ou « moins IA » ; rapporter ce qui a été mesuré.

Voir aussi

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills associés