Hadi Got Motion
Un studio de motion dans un skill : 12 styles de mouvement, chacun avec sa propre façon de se déplacer, et une barre de goût. Chaque image est construite à partir de matériel réel : estampes et photos d'archives, polices réelles, données réelles, enregistrements réels. Le code coupe, articule, chronomètre et éclaire ; le code ne dessine jamais l'art. La barre est Mr Pemberton's Mistake, une farce découpée parlante provenant de gravures victoriennes (references/case-pemberton.md).
Tout passe par une seule commande, hgm (scripts/hgm ici ; après hgm install elle est dans le PATH). Chaque commande hgm imprime un bref résumé et écrit les détails dans des fichiers, de sorte que les tokens vont au goût, pas à la plomberie. Lisez la section Budget de tokens ci-dessous avant de commencer ; elle fait partie du métier, pas une réflexion après coup.
Ordre de travail : Vérification des outils → Sélecteur de brief → Estimation → Configuration → Direction → Voix → Assets → Animation → Révision → Livraison. Ne commencez jamais la construction avant que le brief et la configuration soient terminés.
Vous reprenez un film ? Lisez HANDOFF.md du projet et exécutez hgm state dans le dossier du projet. Ne relisez pas les références du skill, les anciens films ou tout le fichier du film.
0–1 · Vérification des outils et sélecteur de brief (un échange)
- Ne demandez pas et n'expliquez pas. Exécutez
bash <dossier de ce skill>/scripts/hgm picker, en ajoutant--title "…" --duration 45 --concept "…"pour tout ce qui a déjà été dit. Appelez visualizeread_meune fois avec["elicitation"], puisshow_widgetavec le loader imprimé exactement comme imprimé. - La ligne de réponse revient sous la forme
Motion graphic details — Tools: … · Title: … · Duration seconds: … · Pacing: 1–5 · Concept: … · Motion style: … · …. Seul le concept est requis : pas de titre, nommez-le ; pas de durée, 30 s ; pas de pacing, 3 ; pas d'aspect de carte, pas de carte. - Si quelque chose manquait et que l'utilisateur n'a pas choisi « Pas maintenant », lancez
hgm installen arrière-plan. - Widget vide, pas d'outil widget, un script téléchargé ou un formulaire ignoré : voir
references/setup.md.
2 · Estimation de temps (juste après les réponses)
hgm estimate --answers "<la ligne de réponse, textuellement>". Donnez ses deux premières lignes en une ou deux phrases, puis lancez-vous. N'attendez pas d'approbation.
« Laissez Claude décider » : de bout en bout, sans questions
Quand le style est « Laissez Claude décider » (ou « vous décidez », « surprenez-moi », ou le formulaire a été ignoré) :
- Ne demandez plus rien. Décidez tout comme un réalisateur : le style qui sert le concept, le rythme (3 sauf si le concept demande clairement du calme ou de la frénésie), une carte seulement si l'histoire traverse des lieux réels, une marche uniquement dans la farce découpée ou le théâtre de papier, le casting et les voix, le script, et les images des archives (ChatGPT seulement si déjà connecté).
- Relancez
hgm estimate --style <id> --duration <s> --pace <1-5> --script write|have|noneet dites à l'utilisateur en deux lignes ce que vous avez choisi, pourquoi, et combien de temps cela prendra. - La seule étape que vous ne pouvez pas sauter est la connexion ElevenLabs, si une voix est nécessaire et que rien n'est encore connecté. Si cela ne peut pas se faire, réalisez un film typographique et musical.
3 · Configuration (terminez avant toute construction)
hgm install si nécessaire, puis hgm new <slug> --style <id> --pace <1-5> (ids : cutout-farce, kinetic-editorial, kinetic-swiss, editorial-collage, period-print, paper-theatre, real-maps, stat-hits, footage-led, silent-film, title-sequence, object-diorama), puis hgm doctor. La connexion ElevenLabs (hgm connect-voice) et les images ChatGPT (hgm connect-images) ont un libellé exact dans references/setup.md ; suivez-le mot pour mot et ne gérez jamais de clé. Tout est vert → dites « Configuration terminée » en une ligne.
4 · Direction
hgm ref <style-id>imprime tout ce dont ce style a besoin en une fois : sa section destyles.md, son langage de mouvement, les règles sous tous les styles, ettaste.md(la barre et la liste de contrôle anti-aspect-IA). N'ouvrez pas les fichiers de référence entiers.- Les faits nécessitent des recherches, jamais de suppositions. Si le film énonce des faits (histoire, science, personnes, chiffres, « que se passerait-il si »), un sous-agent les recherche dans
FACTS.mdavant que tout script ne soit écrit :hgm ref research. Script uniquement à partir de faits confirmés ; le drame vient des spécificités vraies. - Aucun script donné : proposez 3 concepts en un seul message (un personnage dans une situation, un accroche de 1,5 s, une escalade vers un dénouement) et éliminez vous-même le plus sûr. En mode « Laissez Claude décider », ne proposez pas : choisissez le plus fort et allez-y. Les mots par 30 s viennent du rythme (
pacing.jsonwords30: 50 au rythme 1, 66 au 3, 82 au 5). Terminez sur la ligne de dénouement. - Planifiez le décor. Écrivez un plan de scènes dans
BRIEF.md: une ligne par scène avec son intervalle de temps, son lieu et comment il change. Le monde change toutes lesscenerysecondes du rythme, sauf si l'histoire nécessite un seul lieu. Un nouvel accessoire sur le même fond n'est pas un changement (taste.md, « Scenery »). - Verrouillez le monde dans
BRIEF.mdavec cinq règles : palette (2–3 couleurs plus une accent par temps fort), gravure ou ligne, texture (un grain), lumière, lettrage (une famille).
5 · Voix : la voix est l'horloge (ignorez pour « pas de voix off »)
hgm voices --list→ casting dansaudio/cast.json→audio/script.json(textporte le jeu dans des [balises audio],captionest le texte propre à l'écran,gap_afterlaisse de la place pour l'action).hgm voice-allimprime une ligne de résumé plus les éventuelles lignes ✗ (journal complet :review/voice.log). Corrigez les lignes ✗ avecskip_start, la légende, ouhgm voices <id>. Détails :hgm ref elevenlabs.
6 · Assets : d'abord en ligne, puis ChatGPT
- Déléguez la partie mécanique à un sous-agent (outil Agent,
model: "sonnet") : donnez-lui la liste des visuels, les règles du monde du BRIEF et les commandeshgm assets <key> "query" …(images) ethgm assets --audio <key> "query"(sons). Il renvoie, par clé, ses 3 meilleurs candidats dans une feuille combinée et une courte liste textuelle. Vous visualisez cette petite feuille et choisissez ; puishgm pick <key>:<n>:<name>(vous ou le sous-agent) télécharge et enregistre le crédit. Sources :hgm ref sources. - Seulement ce que les archives ne peuvent pas fournir va à ChatGPT (
hgm img inbox/<name>.png "<prompt>", ou un pack de prompts) :hgm ref imagegen. - Cartes :
hgm map-data …puishgm map-reel:hgm ref maps. Ne dessinez et ne devinez jamais la géographie. - Découpez et articulez dans
assets/build_assets.py(hgm grid,hgm zoom,hgm cut,hgm explode; recette :hgm ref cutout-farce-recipe). Un sous-agent peut faire la lecture des coordonnées et le découpage ; vous vérifiez la feuilleexplodeunique.
7 · Animation
- Construisez dans
<slug>.mjs(l'échafaudage).hgm apiliste chaque helper avec sa signature : utilisez-le au lieu de lire l'échafaudage ou les anciens films. Gardez les helpers de timeline ; remplacez le bloc DEMO. - Un objet d'état avec
at(sec, {key: [from, to]}, dur, ease). Chaque action reçoit une indication SFX ; les légendes sont synchronisées avec les mots.at()met à l'échelle chaque durée selon le rythme (PC.k) ; coupez et changez de décor surPC.shotetPC.scenery.hgm voice-allapplique le tempo et les pauses du narrateur selon le rythme. - Déplacez-vous comme le style se déplace (sa fréquence d'images, ce qui marche sur les deuxièmes ou troisièmes, son easing, sa caméra, ses transitions). L'échafaudage applique déjà le profil. Ne donnez jamais à chaque style le même easing lisse entrée-sortie : cette uniformité est le signe distinctif de l'IA.
- Les marches appartiennent à la farce découpée (et au hop et glide du théâtre de papier) :
walk(style, t, {facing}),hgm ref walks,hgm walkspour la bobine. - Écrivez le fichier du film une fois, puis modifiez-le avec de petites modifications. Ne réécrivez jamais tout le fichier pour changer une scène.
- Pièges à éviter :
hgm ref trapsavant la première construction.
8 · Révision : ayez l'œil d'un designer (c'est ici que les tokens valent la peine d'être dépensés)
hgm stills 0,1,3,6,10,...(12 à 18 fois, y compris en milieu d'action) écritreview/contact.jpg. Visualisez-le une fois et jugez-le par rapport à la liste de contrôle du goût : accroche à 0, 1, 3 et 10 s ; un héros par temps fort ; rien ne couvrant un visage ; rien de simplement « présent » ; le décor change-t-il selon le plan, ou des images consécutives partagent-elles un même fond ? ; quelqu'un devinerait-il que c'est fait par IA ?- Corrigez tout ce que vous avez trouvé en un seul passage, puis
hgm stillsseulement les moments modifiés. Zoomez (hgm zoom) uniquement sur la chose que vous jugez.
9 · Construction et livraison
hgm build(rendu, mixage, muxage ; exécutez-le en arrière-plan), puishgm frames 0.2,<milieu>,<fin>et regardez les images du dernier MP4.hgm cover <t>crée une couverture simple, sans texte.- Envoyez le MP4 et la couverture (SendUserFile). Dites la durée, les éventuels changements par rapport au brief, et ce que vous n'avez pas pu vérifier (Claude ne peut pas écouter : le mix a été vérifié par les niveaux et les timings).
- Gardez
CREDITS.mdcomplet. Les retours arrivent de manière chirurgicale : appliquez exactement ceux-ci, revérifiez ces images, reconstruisez.
Budget de tokens
Mesuré sur les trois premiers films (Pemberton 338 tours, Hyderabad 116, Wright brothers 72) : chaque tour relit toute la conversation, donc le coût est tours × taille du contexte. La conversation commence à environ 90K tokens avant que quoi que ce soit ne se passe. Une capture d'écran, une feuille ou un cat reste dans le contexte et est payé à nouveau à chaque tour suivant. Donc :
- Moins de tours. Regroupez les commandes indépendantes en un seul appel d'outil (
hgm stills … && hgm frames …). Planifiez une liste de correctifs, puis appliquez-la en un seul passage. - Petites sorties. Utilisez les commandes
hgm, pascat,lsousedsur les références, les anciens films ou les journaux.hgm ref,hgm apiethgm staten'impriment que ce qui est nécessaire. N'imprimez jamais de JSON, la liste complète des voix deux fois, ou le fichier du film. Redirigez la sortie longue d'un outil vers un fichier et faitestail -3dessus. - Petites images, peu nombreuses. Une feuille de contact par tour de révision ; des images de 220 px suffisent pour juger. Ne lisez jamais d'images brutes, de téléchargements bruts ou d'images en taille réelle ; zoomez plutôt sur un recadrage.
- Sous-agents pour le travail mécanique (
model: "sonnet") : recherche et téléchargement d'actifs, vérifications de découpage et d'articulation, rendus, crédits. Ils renvoient une courte liste et une seule feuille. Gardez le modèle principal pour le concept, le script, le style, les choix et la révision du designer. - Passez la main avant que le contexte ne devienne lourd. À environ 200K tokens de contexte (ou 40 % de la fenêtre, selon la première échéance ; environ 50 appels d'outil), terminez l'étape en cours, exécutez
hgm handoff, remplissez ses lignes « Next », et dites à l'utilisateur : « Continuez dans une nouvelle conversation :continue <slug>.» Une nouvelle conversation reprend à partir de HANDOFF.md et dehgm statepour environ 5K tokens.
| Phase | Tours chat principal | Contexte pouvant être ajouté |
|---|---|---|
| Sélecteur + estimation | ≤ 4 | ≤ 8K (le guide visualize en est la majeure partie) |
| Configuration | ≤ 3 | ≤ 2K |
| Recherche (sous-agent écrit FACTS.md) | ≤ 2 | ≤ 3K (vous lisez FACTS.md, jamais les résultats de recherche) |
Direction (+ hgm ref) | ≤ 6 | ≤ 12K |
| Voix | ≤ 4 | ≤ 4K |
| Assets (sous-agent fait la recherche) | ≤ 6 | ≤ 10K (une feuille combinée + une feuille explode) |
| Animation (film écrit une fois) | ≤ 8 | ≤ 25K (le fichier du film que vous écrivez) |
| Révision (≤ 4 feuilles de contact) | ≤ 12 | ≤ 12K |
| Construction + livraison | ≤ 4 | ≤ 4K |
| Film entier | ≤ 50 | se termine sous ~180K |
Dépensez librement sur le concept, le choix du style et la révision du designer. Ils font le film ; le budget sort de la plomberie, jamais du regard.
Non-négociables
- Voix : ElevenLabs uniquement.
- Images : archives d'abord ; images ChatGPT si nécessaire. Jamais Higgsfield. Pas de vidéo IA. Ne dessinez jamais de personnages, d'illustrations ou d'emblèmes dans le code.
- Moteur : canvas + anime.js + FFmpeg. three.js uniquement pour la 3D véritable ; Blender uniquement si la lumière physique est l'idée.
- Crédits et clés : créditez chaque source. Ne mettez jamais l'adresse e-mail ou les informations personnelles de l'utilisateur dans les requêtes. N'imprimez jamais de clés.