Communitygithub.com

motion-graphics — entrée de dispatch

Utilisez cette compétence lorsque l'utilisateur souhaite un court-métrage animé, design-led, où le mouvement est le message : typographie cinétique, décompte de statistiques, animation de graphiques, logo sting, habillage de marque, tiers-inférieur, callout, superposition sociale, titre/animation tweet/actualité, affiche animée ou mise en avant rapide d'une page. Généralement sous 10s et jusqu'à ~30s, sans arc narratif, voix-off ou sujet filmé. Peut être rendu en MP4 ou superposition transparente.

Qu'est-ce que motion-graphics — entrée de dispatch ?

Cette compétence génère des graphiques animés courts et design-led, idéaux pour des contenus où le mouvement est le message principal, comme la typographie cinétique, les décomptes de statistiques, les animations de graphiques, les logo stings, ou les superpositions sociales. Elle ne convient pas aux pièces plus longues, narrées ou avec voix-off. Supportée via une interface en ligne de commande (`hyperframes`), elle suit un processus en 6 étapes : initialisation du projet, planification (choix de catégorie avec ou sans recherche), sourcing d'actifs si nécessaire, conception de la scène autour des actifs disponibles, construction par réutilisation de blocs de catalogue, rendu vidéo (MP4 ou WebM transparent), et vérification. Elle s'adresse aux développeurs et agents IA utilisant des outils comme Claude Code, Cursor, ou Codex, et nécessite Node.js et ffmpeg.

Compatible avec~Claude Code~Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/The-Ai-automation-Queen/content-system/tree/HEAD/skills/hyperframes/motion-graphics

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 motion-graphics — entrée de dispatch ?

Confirmer la route avant l'Étape 0. Cette compétence réalise un court graphique animé, design-led, non narré (le mouvement est le message ; ~moins de 10 s, pas de voix-off). Un traitement plus long, multi-scène ou narré → /general-video ; une vidéo narrée d'un site web → /website-to-video ; un explicateur thématique → /faceless-explainer ; une promotion produit → /product-launch-video ; des légendes sur des séquences existantes → /embedded-captions. Hors périmètre : données en direct / au moment du rendu, ou séquences impossibles à capturer. Pas sûr entre motion-first et narré ? Lire /hyperframes d'abord.

Un court graphique animé design-led. Actif d'abord : décider la stratégie d'actifs et sourcer du matériel réel avant de concevoir le plan, puis concevoir le plan autour de ce que vous avez, puis composer en réutilisant les capacités du catalogue. Tous les artefacts vont dans PROJECT_DIR = videos/<nom-projet>/ (créé à l'Étape 0) ; tous les chemins ci-dessous sont relatifs à ce répertoire.

PhaseExécutionArtefact principalFlux détaillé
initBashhyperframes.jsonÉtape 0
plansous-agent — décider recherche ? + classer + stratégie d'actifsshot-plan.json (brouillon : catégorie, requêtes asset_needs, brief)agents/director.md (Partie 1)
source ◇Bash — résolution media-use (sauter si asset_needs est vide)assets/ + assets/index.mdphases/source/guide.md
designsous-agent — conception du plan autour des actifs résolusshot-plan.json (final : bloc(s) + mise en page + mouvement + positions)agents/director.md (Partie 2)
buildsous-agent — composition reuse-firstcompositions/index.htmlagents/builder.md
renderBash — hyperframes render (MP4, ou --format webm/mov pour superposition)renders/video.mp4Étape 5
verifyBash — lint / inspect -> sous-agent de réparation en cas d'échec(corrections sur place)agents/finalize.md

◇ source ne s'exécute que lorsque la catégorie choisie déclare des actifs. Les catégories purement code/texte (par ex. kinetic-type, la plupart des charts/stat) ont asset_needs: [] et passent directement de la planification à la conception.

Catégories — divisées par la décision de recherche

La première décision de plan est : cela nécessite-t-il une recherche ? Cette bifurcation divise les catégories en deux groupes ; puis la catégorie spécifique est choisie — pour les catégories pilotées par la recherche, selon le type de contenu que la recherche renvoie. Chaque catégorie est un categories/<id>/module.md (ses règles de planification + construction) ; le vocabulaire de mouvement partagé vit dans references/motion-vocabulary.md (→ règles/plans hyperframes-animation + blocs de registre).

Catégories de formulaire — pas de recherche ; l'utilisateur fournit le contenu :

CatégorieIntentionS'appuie sur
kinetic-typeligne / citation / titre percutante, texte motion-firstblocs caption-* + règles d'animation
statnombre héros unique / compteur + anneauapple-money-count / rules/{counting-dynamic-scale, stat-bars-and-fills}
chartsbarres / lignes / camembert / course / % à partir de donnéesbloc data-chart
logo-reveallogo sting / habillage de marque (logo utilisateur)logo-outro / rules/svg-path-draw
lower-thirdsbarres de nom / titre, callouts, superpositions socialescaption-* + blocs de superposition du registre

Catégories pilotées par la recherche — chercher d'abord, puis animer selon le type de contenu (chemin RWA):

Contenu retournéCatégorieAnimation
page web / lienwebpageanimation de page web / UI (défilement, révélation, curseur, callouts)
article d'actualiténewsrévélation de titre + carte source + callouts de faits clés
tweettweetcarte tweet animée
image / entitéasset-fusionla géométrie de l'actif devient le graphique (fusion diégétique RWA)

Ordre de construction : un à la fois, couverture d'abord (l'approximatif convient). kinetic-type porté du prototype ; le reste suit.

Prérequis

macOS Apple Silicon ou Linux x64. Outils système : brew install node ffmpeg. npx hyperframes doctor une fois. Rendu GPU macOS : export PRODUCER_BROWSER_GPU_MODE=hardware.

Clés optionnelles (fallbacks locaux si non définies) — nécessaires uniquement pour les catégories qui sourcent/génèrent des actifs via media-use :

CléUtilisé pourFallback
GEMINI_API_KEY / GOOGLE_API_KEYgénération d'images (résolution media-use)ignorer génération / recherche seule
(fournisseurs asset_scout / recherche)recherche d'actifs réels webpage/news/tweet + asset-fusionla catégorie dégrade vers sans actif

Flux

Étape 0 — Initialiser

cwd est la racine de l'espace de travail de l'agent ; écrire tous les artefacts sous PROJECT_DIR = videos/<nom-projet>/. <nom-projet> : utiliser le répertoire donné par l'utilisateur, sinon un nom court en kebab-case dérivé de l'intention (<sujet>-motion). Pas le nom de base de l'espace de travail ni un timestamp.

Uniquement lorsque $PROJECT_DIR/hyperframes.json est absent :

PROJECT_DIR="${MOTION_GRAPHICS_DIR:-videos/<nom-projet>}"
mkdir -p "$(dirname "$PROJECT_DIR")"
npx hyperframes init "$PROJECT_DIR" --non-interactive --example=blank

init vérifie les compétences installées par rapport aux dernières sur GitHub et met à jour l'ensemble global si certaines sont obsolètes.

Contraintes : ne jamais hyperframes init dans la racine de l'espace de travail ; ne jamais imbriquer un autre hyperframes/ dans PROJECT_DIR ; chaque commande Bash (maître + sous-agents) est un sous-shell (cd "$PROJECT_DIR" && ...) — jamais de cd nu.

Étape 1 — Planifier (sous-agent : Directeur Partie 1)

Lancer un sous-agent. invite = agents/director.md complet + ## Contexte de dispatch (SKILL_DIR / PROJECT_DIR / la demande de l'utilisateur / Schema: <SKILL_DIR>/references/shot-plan-ir.md). Il doit :

  1. Décider : cela nécessite-t-il une recherche ? (la première bifurcation)
    • Non → choisir une catégorie de formulaire (kinetic-type / stat / charts / logo-reveal / lower-thirds) ; le contenu est fourni par l'utilisateur ; asset_needs: [].
    • Oui → émettre un plan de recherche dans asset_needs[] (actualités / web / tweet / image ; requêtes bipolaires). La catégorie pilotée par la recherche spécifique (webpage / news / tweet / asset-fusion) est confirmée par le type de contenu retourné à l'Étape 2 et finalisée à l'Étape 3.
  2. Écrire un brouillon shot-plan.json (enveloppe + catégorie de formulaire choisie ou intention de recherche + asset_needs + un paragraphe de brief de plan). Schéma : references/shot-plan-ir.md.

Validation : [ -s "$PROJECT_DIR/shot-plan.json" ] && echo ok || echo missing.

Étape 2 — Source ◇ (Bash : media-use, conditionnel)

Si shot-plan.json.asset_needs n'est pas vide, résoudre les actifs (rechercher / générer / récupérer → chemins figés locaux au projet + registre). Voir phases/source/guide.md (encapsule media-use resolve ; les catégories pilotées par la recherche utilisent la recherche d'actualités/web/tweet/image). Si asset_needs est vide, passer à l'Étape 3.

# illustratif — voir phases/source/guide.md
(cd "$PROJECT_DIR" && node <SKILL_DIR>/phases/source/resolve.mjs --plan ./shot-plan.json --out ./assets)

Dégrader gracieusement : si un fournisseur de recherche est indisponible, la catégorie retombe sur sans actif (le noter dans context.log).

Étape 3 — Concevoir (sous-agent : Directeur Partie 2)

Lancer un sous-agent (invite = agents/director.md Partie 2 + contexte de dispatch incluant le assets/index.md résolu si l'Étape 2 a été exécutée + catalog-map.md). Il conçoit le plan autour des actifs disponibles : choisir le(s) bloc(s) de catalogue + les règles/plans hyperframes-animation, la mise en page, le mouvement, les temps forts, et (pour asset-fusion) les element_positions + la palette de pipette. Finalise shot-plan.json (content.block + content.customize + contenu par catégorie).

Étape 4 — Construire (sous-agent : Constructeur, reuse-first)

Lancer un sous-agent. invite = agents/builder.md complet + contexte de dispatch (shot-plan.json, catalog-map.md, le module.md de la catégorie, references/motion-vocabulary.md, references/builder-contract.md). Reuse-first : npx hyperframes add <bloc> + personnaliser sur place ; écrire à la main uniquement les lacunes + l'affordance de fusion d'actifs. Sortie compositions/index.html respectant le contrat HF (timeline GSAP en pause sur window.__timelines, class="clip" + ids stables, tl.seek(0), déterministe).

Étape 5 — Rendre (Bash)

(cd "$PROJECT_DIR" && npx hyperframes render . --skill=motion-graphics -q draft -o ./renders/video.mp4)
# variante superposition transparente : --format webm  (ou mov)

Étape 6 — Vérifier (Bash → sous-agent de réparation en cas d'échec)

(cd "$PROJECT_DIR" && npx hyperframes lint . && npx hyperframes inspect .)

exit 0 → terminé. En cas d'erreurs de lint/inspect, lancer le sous-agent de réparation (agents/finalize.md : QA instantané + un passage de correction sur place + re-rendu). Ne jamais changer une durée fixe lors de la réparation.

Rapport + aperçu optionnel

Rapporter la sortie finale (renders/video.mp4, ou la variante .webm / .mov pour superposition) + durée. Ne pas ouvrir d'aperçu pendant l'exécution. N'en proposer un que sur demande, démarré après le rendu afin qu'il serve le fichier final :

(cd "$PROJECT_DIR" && npx hyperframes preview)   # Studio UI ; ou `npx hyperframes play` pour un lien partageable

Les drapeaux se trouvent dans la compétence hyperframes-cli (references/preview-render.md).

Tableau de reprise

ÉtatContinuer depuis
pas de shot-plan.jsonÉtape 1 (planifier)
shot-plan.json a asset_needs, pas de assets/Étape 2 (source)
shot-plan.json final, pas de compositions/index.htmlÉtape 3/4 (concevoir+construire)
compositions/index.html existe, pas de renders/video.mp4Étape 5 (rendre) + Étape 6
renders/video.mp4 existeRapport + arrêt

Notes de conception (mainteneurs — l'exécution ne lit pas ceci)

  • Raisonnement actif d'abord : le sourcing est fait en amont et informe la conception du plan (le flux RWA : analyser → rechercher → examiner → composer). Les catégories pilotées par la recherche (webpage/news/tweet) et asset-fusion s'appuient toutes sur la recherche media-use (actualités/web/tweet/image), qui est la lignée RWA documentée de media-use.
  • Reuse-first : l'analogue intra-écosystème des modèles générés par LLM est "composer des blocs de catalogue + règles hyperframes-animation". La timeline GSAP en pause de HF ≙ le useCurrentFrame de Remotion.
  • Contrat du module de catégorie : un categories/<id>/module.md (planification + construction), partageant references/motion-vocabulary.md (+ évaluation optionnelle). Ajouter une catégorie = déposer le dossier + enregistrer sa ligne de classificateur dans agents/director.md + sa ligne dans catalog-map.md ; le pipeline de phases est inchangé.
  • Forme du répertoire :
    videos/<nom-projet>/
      hyperframes.json  context.log
      shot-plan.json            # l'IR (sortie du Directeur)
      assets/  assets/index.md  # sortie media-use (si sourcé)
      compositions/index.html   # sortie du Constructeur
      renders/video.mp4
    
  • Enregistrement : dans le routeur hyperframes — ajouter l'intention "court graphique animé design-led" + description du Workflow ; retirer les déclencheurs motion-graphics de /general-video ; ajouter les arêtes inverses "NE PAS UTILISER". Voir motion-graphics-genre.md §5-7.

Skills associés