Video Production logo

Video Production

Community
Littlpinguin
video-production

Point d'entrée unique de toute demande vidéo pour {{COMPANY_NAME}} (Reel, Short, vidéo LinkedIn, explainer, vidéo produit ou de lancement, motion design, montage de rushes, clips tirés d'une vidéo longue, montage documentaire sur archives, animation à l'encre, 3D, Manim). Cadre l'objectif business, choisit la filière, tient le dossier de projet, les trois validations humaines (concept, script, storyboard), le contrat de coût, le journal de décisions, le contrôle avant rendu, la QA mesurée (qa-video.py, agent video-reviewer) et la livraison ; passe la main aux skills spécialisées et aux workflows HyperFrames par un BRIEF.md. Ne publie pas, ne décide pas la doctrine de marque, n'écrit pas le post qui accompagne la vidéo, ne fait pas de deck (skill slides).

Overview

PublisherLittlpinguin
Repositorymarketing-cockpit-template
Skill namevideo-production
Stars
9
Forks
0
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by Littlpinguin on GitHub. Read the source before you install it.

Installation

Install the Video Production AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Littlpinguin/marketing-cockpit-template/tree/main/.claude/skills/video-production
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Littlpinguin/marketing-cockpit-template.git /tmp/marketing-cockpit-template
mkdir -p .claude/skills
cp -r /tmp/marketing-cockpit-template/.claude/skills/video-production .claude/skills/video-production
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Video Production in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Video Production on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Video Production is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

video-production : de la demande au rendu livré

Toute demande vidéo du cockpit entre ici, quelle que soit sa forme : Reel, Short, vidéo LinkedIn, explainer, vidéo produit ou de lancement, motion design, montage de rushes, clips tirés d'une vidéo longue, montage documentaire, animation à l'encre, 3D, Manim. Cette skill tient l'ordre, les validations, le budget et la QA. Chaque étape technique a sa skill, et la construction passe le plus souvent par un workflow HyperFrames.

Avant tout

  1. Module actif. .setup-completed porte modules.video.enabled: true. Sinon, proposer /modules et s'arrêter.
  2. HyperFrames présent pour les filières qui l'utilisent : le plugin hyperframes@hyperframes, installé par /modules, expose ses skills hyperframes:* dans la session. S'il manque, proposer /modules (installation) ou /health-check (diagnostic). Les capacités facultatives (whisper, Manim, corpus CLIP) sont notées par /modules dans .setup-completed (modules.video.capacites) : une filière qui en dépend le dit avant de commencer.
  3. Objectif business d'abord (règle (a) du CLAUDE.md racine) : notoriété, leads, conversion, rétention ou preuve sociale, avec l'indicateur suivi. Filière, format et durée en découlent, jamais l'inverse.
  4. Contexte. Lire 02-strategy/calendar/calendar.md (ce qui est prévu, ce qui est en cours) et 00-intel/ (signaux récents). L'intel est confidentielle : on reformule, aucun fait sur une personne n'en sort.
  5. Marque, jamais de mémoire : 01-brand/voice.md, 01-brand/anti-ai-writing-style.md, 01-brand/style-guide.md, 01-brand/divulgation-ia.md, 01-brand/droits.md, et le catalogue 01-brand/assets/. Si un fichier manque ou porte encore des {{...}}, s'arrêter et proposer /start-cockpit.
  6. Doctrine du module, selon la filière : 08-video/formats.md, 08-video/montage.md, 08-video/narration.md, 08-video/motion.md, 08-video/documentaire.md, et 08-video/inspiration.md pour la recherche de références.
  7. Vidéo de référence, en option. Si l'humain montre une vidéo qu'il aime, écrire dans brief.md ce qu'on garde (rythme, accroche, structure, ton) et ce qu'on change (sujet, traitement, angle). On ne reprend ni ses images, ni sa musique, ni son texte.

Le projet

Un dossier par vidéo, créé au cadrage et nommé AAAA-MM-JJ-<sujet> : la date du cadrage, puis le sujet en minuscules et tirets (2026-10-12-explainer-reporting). Ce nom est le <slug> de tout le module, exports compris (<slug>-<plateforme>.mp4).

08-video/projets/<slug>/
├── brief.md        objectif business, canal, durée, persona, message unique, matière, CTA, budget
├── REPRISE.md      état courant et prochaine action, lu en premier par une nouvelle session
├── decisions.md    journal en ajout seul : date, sujet, choix, options écartées, raison
├── couts.md        estimations, dépenses réelles, solde du budget
├── references.md   références d'inspiration retenues (créateur, lien, mécanisme) et planche référence → transposition
├── script.md       script minuté (validé) ; son frontmatter l'inscrit à l'inventaire
├── storyboard.md   plans, vignettes au vrai cadrage, sources de matière (validé)
├── sous-titres/    fichiers .srt relus (skill captions)
├── hyperframes/    racine HyperFrames : BRIEF.md, frame.md, brand.css, STORYBOARD.md, compositions/
├── hyperframes-sous-titres/  projet hyperframes:embedded-captions (skill captions), à part de hyperframes/ ; frames_fg/, frames_bg/ non versionnés
├── rushes/         sources, clips générés, intermédiaires dans rushes/tmp/ (non versionnés)
├── exports/        rendus finaux par plateforme (non versionnés)
└── qa/             rapports de qa-video.py et planches (seul le rapport .md final se versionne)

brief.md

markdown
# Brief : <titre de travail>

- **Objectif business** : <notoriété | leads | conversion | rétention | preuve sociale> ; indicateur suivi : <...>
- **Canal et plateforme** : <Reels | TikTok | Shorts | LinkedIn | site | YouTube> ; toile <1080x1920 | 1080x1350 | 1080x1080 | 1920x1080>
- **Durée visée** : <secondes>
- **Persona** : <persona de 01-brand/personas.md> ; ce qu'elle sait déjà du sujet : <...>
- **Message unique** : <une phrase>
- **Matière disponible** : <rushes, captures, assets de 01-brand/assets/, chiffres sourcés, voix, musique>
- **Appel à l'action** : <une seule action>
- **Budget** : <montant ou crédits> ; outils payants autorisés : <liste, ou aucun>
- **Échéance** : <date> ; entrée du calendrier : <ligne de 02-strategy/calendar/calendar.md>
- **Filière** : <ligne de la table « Choisir la filière »>
- **Vidéo de référence** (si fournie) : on garde <...> ; on change <...>

REPRISE.md

markdown
# Reprise : <slug>

- **État** : <cadrage | concepts | script | storyboard | matière | construction | rendu | QA | livré>
- **Dernière validation** : <validation, date, qui, ce qui a été validé>
- **Prochaine action** : <une action précise>
- **En attente de l'humain** : <question ouverte, ou rien>
- **Fichiers clés** : <chemins>

decisions.md

markdown
# Décisions : <slug>

Journal en ajout seul. Une décision qui change s'ajoute en nouvelle ligne, avec le même sujet ; l'ancienne ligne reste.

| Date | Sujet | Choix | Options écartées | Raison |
|---|---|---|---|---|
| <date> | Filière | <filière> | <autres filières envisagées> | <pourquoi> |
| <date> | Profil de goût | densité <n>, énergie <n>, audace <n> | <...> | <lecture de la vidéo> |
| <date> | Voix | <fournisseur, modèle, voix> | <...> | <échantillon validé le ...> |

couts.md

markdown
# Coûts : <slug>

Budget du projet : <montant ou crédits>

| Date | Outil | Fournisseur | Modèle | Échantillon ou série | Estimé | Réel | Solde |
|---|---|---|---|---|---|---|---|

script.md

Un frontmatter, un titre, puis un tableau minuté, une ligne par plan. Le frontmatter est ce que lit scripts/build-inventory.py : date (la date du cadrage, celle du slug), subject (le sujet de la vidéo en 5 à 10 mots, repris tel quel dans la colonne Sujet de l'inventaire) et statut (brouillon, puis validé à la validation 2, publié après la publication). Une seule colonne du tableau a un en-tête qui contient « Voix » : c'est le texte dit, celui que qa-video.py --script compare à la transcription du rendu ; le frontmatter et le titre ne la gênent pas.

markdown
---
date: <AAAA-MM-JJ>
subject: <sujet de la vidéo, 5 à 10 mots>
statut: brouillon
---

# Script : <titre de travail>

| # | Temps | Image | Voix | Texte à l'écran | Jeu |
|---|---|---|---|---|---|
| 1 | 0:00-0:03 | <ce qu'on voit> | <texte dit> | <carton> | <intention, pause, mot appuyé> |

Choisir la filière

DemandeFilière
Motion court sans voix (titre animé, chiffre, logo, lower-third, data viz, carte)motion-design → hyperframes:motion-graphics
Explainer narré sans tournage (article, notes, concept)hyperframes:faceless-explainer
Vidéo produit ou lancement depuis une URL, un site, une apphyperframes:product-launch-video
Annonce de fonctionnalité depuis un PR (clients SaaS)hyperframes:pr-to-video
Clip rythmé sur une musiquehyperframes:music-to-video
Rushes face caméra → reelreel-talking-head → video-editing : hyperframes:general-video, la voie ordinaire ; hyperframes:talking-head-recut seulement pour poser un habillage designé sur une séquence déjà coupée et étalonnée ; ou tout par ffmpeg
Vidéo longue → clipsvideo-repurpose
Clips IA ou stock + narration, montage librevideo-generation (matière) → hyperframes:general-video
Montage documentaire sur archivesvideo-documentary
Animation à l'encre, personnages, 3Dmotion-design (références) → hyperframes:general-video ou hyperframes:motion-graphics
Démonstration conceptuelle ou mathématiquemanim-composer → manim-ce → plan vidéo dans HyperFrames
Sous-titres seulscaptions (ffmpeg, ou hyperframes:embedded-captions pour du designé)
Présentation, decktoujours slides, jamais hyperframes:slideshow

Toute composition animée passe par motion-design, qui porte la marque jusqu'à HyperFrames. Une démo produit filmée en capture d'écran suit 08-video/montage.md § « Démo produit et capture d'écran ». Les skills du projet priment sur celles d'un plugin : si une skill hyperframes:* et une skill du template se recouvrent, celle du template décide, et le workflow HyperFrames exécute.

Étapes et validations

  1. Cadrage. Objectif business, calendrier et 00-intel/ consultés, filière choisie, dossier du projet créé, brief.md écrit, REPRISE.md initialisé.
  2. Concepts. Deux ou trois concepts réellement différents, chacun avec son chemin outillé honnête (ce que les outils disponibles produisent vraiment, pas ce qu'ils promettent), son coût estimé et son risque. En recommander un. Pour les nourrir, chercher des références avec python3 08-video/scripts/inspiration.py chercher "<mots en anglais>" (2 à 4 requêtes par concept), les transposer selon 08-video/inspiration.md (on reprend un mécanisme, jamais un look) et les consigner dans references.md. Pour chaque temps fort, chercher aussi dans le registre HyperFrames un bloc ou un composant qui le produit déjà (npx hyperframes catalog --query "<geste en anglais>" --json, 08-video/inspiration.md § « Deuxième source ») : le chemin outillé du concept s'appuie dessus. Chaque concept cite ses références avec leur lien et leur créateur, ce qu'on garde et ce qu'on change. Sans réseau ni cache, le dire et continuer sans références. → Validation 1 : choix du concept.
  3. Script dans script.md, selon 08-video/narration.md quand il y a une voix. Pour un format court, l'accroche en trois variantes (08-video/formats.md § « Format court : repères de production »). Profil de goût et moteur consignés dans decisions.md (08-video/motion.md). Le débit de la voix se mesure sans dépense, avec la voix locale de Kokoro ou une lecture chronométrée (08-video/narration.md § « Calibrer la longueur »). → Validation 2 : script validé.
  4. Storyboard. Filières HyperFrames : le plan d'HyperFrames (hyperframes/STORYBOARD.md), produit après la passation avec storyboard: yes ; ses croquis de mise en page suivent l'accord (voir « Voix et storyboard » plus bas). Autres filières, et hyperframes:motion-graphics qui n'en produit pas : storyboard.md, un tableau des plans avec des vignettes au vrai cadrage et la source de chaque matière. Dans les deux cas, la revue de singularité de 08-video/motion.md est faite, et une planche « référence → transposition » (une ligne par scène, dans references.md) accompagne le storyboard : 08-video/inspiration.md § « Transposer dans la marque ». → Validation 3 : storyboard validé. Aucun crédit dépensé avant.
  5. Matière. Réutiliser d'abord (01-brand/assets/, rushes existants), puis le stock (Magnific stock_search et stock_download, corpus documentaire), puis générer (video-generation, image-generation, voix, musique). Un échantillon avant toute série, sous le contrat de coût.
  6. Construction. HyperFrames ou ffmpeg selon la filière, dans hyperframes/ ou dans le plan de montage de video-editing.
  7. Contrôle avant rendu (section dédiée).
  8. Rendu, puis QA : qa-video.py et l'agent video-reviewer.
  9. Livraison (section dédiée).

Règles des validations :

  • À chaque validation, le tour s'arrête et attend la réponse de l'humain. Présenter ce qui est à valider, la recommandation, et ce que l'accord déclenche.
  • Une validation vaut pour une seule étape. Un « ok » sur le concept ne valide pas le script.
  • Une pré-autorisation globale (« fais tout », « je te fais confiance jusqu'au rendu ») se consigne dans decisions.md avec sa portée exacte : quelles validations elle couvre. Elle ne couvre jamais le premier usage d'un outil payant, un dépassement du budget, ni la revue humaine du rendu final.
  • Aucun crédit dépensé avant le storyboard validé. Pas d'image, pas de clip, pas de voix ni de musique payante « pour voir ».

Validations et passage de main par filière

Les trois validations gardent leur objet partout (concept, script ou liste, storyboard) ; leur support et le moment où la main passe changent selon la filière. Une filière qui a validé son storyboard.md avant la passation écrit storyboard: no dans BRIEF.md : le workflow publie alors son plan pour information et continue, sans second point de contrôle du storyboard. Le rendu reste soumis à l'accord de l'humain dans tous les cas.

FilièreValidation 1 : conceptValidation 2 : scriptValidation 3 : storyboardPassation, champs de BRIEF.md
Workflows HyperFrames appelés directement (faceless-explainer, product-launch-video, pr-to-video, music-to-video, general-video)Étape 2 ci-dessusscript.md (étape 3)Plan du workflow, hyperframes/STORYBOARD.md, à son point de contrôleAprès la validation 2 ; flow: automation, storyboard: yes
reel-talking-headAngle et traitement du reel, après l'analyse gratuite de la source (Temps 1)Script de montage dans script.md (Temps 2)storyboard.md aux vignettes au vrai recadrage (Temps 3)Après la validation 3, par video-editing : general-video avec flow: automation, storyboard: no ; talking-head-recut sans ces deux champs ; ou ffmpeg
video-repurposeTraitement de la série : plateformes, toiles, habillage, sous-titresListe des clips notée et validée, devenue script.md (étape 3)storyboard.md : vignette au vrai cadrage de chaque clip, habillage prévu (après l'étape 5)Après la validation 3, par video-editing : ffmpeg, ou general-video avec flow: automation, storyboard: no
video-documentaryQuestion, thèse, registre (étape 1)Découpage en emplacements (étape 2), puis narration sur les images retenues (étape 6)selections.json et storyboard.md (étape 5)Après la validation 3 (étape 7) : general-video avec flow: automation, storyboard: no
motion-design → hyperframes:motion-graphicsÉtape 2 ci-dessusscript.md : cartons, chiffres, tempsstoryboard.md, avant la passationAprès la validation 3 ; ni flow ni storyboard, le workflow est autonome par conception
Manim (manim-composer → manim-ce)Étape 2 ci-dessusscript.mdscenes.md de manim-composer, avec dans storyboard.md les plans qui entourent la démonstrationAprès la validation 3 : rendu Manim, puis composition par motion-design (general-video avec flow: automation, storyboard: no, ou motion-graphics)

Passer la main à HyperFrames

Pour toute filière HyperFrames : après la validation du script quand le workflow tient lui-même le storyboard, après la validation 3 sinon (table « Validations et passage de main par filière »). Dans une installation en plugin, la skill hyperframes:hyperframes fait passer chaque commande npx hyperframes par le lanceur du plugin, qui fixe la version du CLI : suivre sa règle pour toutes les commandes de cette section.

1. Choisir la toile selon la destination :

DestinationToile (--aspect, aspect:)Préréglage d'init
Reels, TikTok, Shorts, LinkedIn vertical1080x1920portrait
LinkedIn 4:5, l'autre vertical du fil1080x1350aucun préréglage 4:5 : portrait, puis data-height="1350" sur la racine de chaque composition (skill hyperframes:hyperframes-core)
LinkedIn carré (le plus sûr sur ordinateur), fil carré1080x1080square
Site, YouTube1920x1080landscape

2. Créer le projet HyperFrames dans un dossier qui n'existe pas encore : init refuse un dossier non vide, et le workflow ne relance pas init quand hyperframes.json existe déjà.

bash
npx hyperframes init 08-video/projets/<slug>/hyperframes --non-interactive --example=blank \
  --skill=<workflow> --resolution <portrait|square|landscape>

3. Poser la charte de marque : frame.md (le fichier de design qu'HyperFrames lit en premier) et brand.css, générés depuis 01-brand/tokens.json.

bash
python3 08-video/scripts/brand-frame.py 08-video/projets/<slug>/hyperframes --aspect <toile>

4. Écrire hyperframes/BRIEF.md, qui porte le brief confirmé : le workflow le lit et ne refait pas d'entretien.

markdown
---
workflow: faceless-explainer
flow: automation
storyboard: yes
message: "La seule chose que la vidéo doit faire passer, en une phrase"
destination: linkedin-feed
aspect: 1080x1080
language: fr
length: 45s
audience: "Persona du brief et ce qu'elle sait déjà du sujet"
angle: concept
narration: yes
voice: ff_siwis
---

## Intent

Ce qu'est la vidéo, pour qui, pourquoi maintenant ; l'objectif business du brief ; le ton, dans les mots de 01-brand/voice.md.

## Assets

- ../script.md : script validé (validation 2), narration à reprendre mot pour mot.
- assets/<fichier> : ce que c'est, où il sert.

## Customizations

- Ce que le concept validé demande en plus, par exemple un compteur animé sur le chiffre clé.

## Notes

- frame.md est généré par 08-video/scripts/brand-frame.py et fait foi : aucun preset de frame-presets, pas de build-frame, aucune recette adoptée, frame.md jamais réécrit.
- VO_MODE : verbatim.
- Voix : celle consignée dans decisions.md ; aucun fournisseur payant sans annonce de coût.
- Rendu seulement après accord explicite, vers ../exports/<slug>-<plateforme>.mp4.

workflow prend le nom de la filière sans préfixe (faceless-explainer, product-launch-video, pr-to-video, music-to-video, motion-graphics, general-video, talking-head-recut). flow: automation avec storyboard: yes met HyperFrames en mode collaboratif : il s'arrête et attend à ses points de contrôle, ce qui recouvre nos validations. Une filière qui a validé storyboard.md avant la passation écrit storyboard: no (table « Validations et passage de main par filière »). motion-graphics et talking-head-recut travaillent sans ces deux champs : leur storyboard se valide avant la passation.

5. Charger la skill de workflow hyperframes:<workflow>. Elle lit BRIEF.md et déroule son storyboard puis la construction. Points de vigilance :

  • Charte. L'étape de design system des workflows (choix d'un preset dans frame-presets, script build-frame, recette) se saute : frame.md existe et fait foi. Si un frame.md a été réécrit, relancer brand-frame.py, puis brand-frame.py --check.
  • hyperframes:music-to-video. Son étape 3 (« Pick the brand ») copie un preset tel quel dans frame.md, et sa porte de contrôle exige que frame.md soit une copie conforme d'un preset. Garder le frame.md de la marque, remplir le champ style du frontmatter de STORYBOARD.md (police et palette) depuis frame.md, et consigner l'exception dans decisions.md : cette condition de la porte est levée par décision, les autres (validate-plan.mjs sans erreur, accord sur le plan) restent.
  • Sous-titres. Sauter l'étape de design system saute aussi la copie de la peau de sous-titres : le script de sous-titres des workflows retombe alors sur sa pastille par défaut (police Roboto, fond noir), hors marque. Exception admise, consignée dans decisions.md : copier le seul caption-skin.html d'un preset (dossier frame-presets/ de la skill hyperframes:hyperframes-creative) vers hyperframes/.hyperframes/caption-skin.html ; le script y injecte les couleurs et les polices de frame.md (fichiers de police déposés dans assets/fonts/). Sinon, marquer l'étape de sous-titres du workflow comme sautée et sous-titrer avec la skill captions, ou hyperframes:embedded-captions sur des images filmées.
  • Connexion et médias. Au départ, le workflow affiche npx hyperframes auth status et attend le choix de l'humain : se connecter à HeyGen, ou continuer hors ligne. Connecté, l'étape audio prend la voix chez HeyGen et la musique dans sa bibliothèque. Hors ligne, la voix vient de Kokoro, en local, mais les trois workflows scriptés (faceless-explainer, product-launch-video, pr-to-video) n'ont aucune musique : leur étape audio ne fait que récupérer chez HeyGen. La génération locale de musique (Lyria si une clé Gemini ou Google est présente, sinon MusicGen en local) ne concerne que hyperframes:general-video et l'usage direct du moteur. Une vidéo hors ligne qui doit avoir de la musique la reçoit donc à part (voir le contrat de coût). HeyGen et Lyria sont des fournisseurs externes : coût ou quota annoncé avant l'étape audio. Licence de la musique : voir le contrat de coût.
  • Voix et storyboard. Le point de contrôle du plan (STORYBOARD.md) tient lieu de validation 3, et l'étape audio démarre dès qu'il est accepté. Avant de l'accepter : la voix validée est écrite dans le frontmatter de BRIEF.md (voice: ff_siwis hors ligne, ou l'identifiant de la voix HeyGen retenue si l'humain s'est connecté, car les identifiants changent d'un fournisseur à l'autre), et le coût de la voix et de la musique est annoncé. Vérifier que l'étape audio reçoit bien cette voix (--voice <id>) : sans elle, le workflow prend sa voix anglaise par défaut. Une voix payante encore jamais entendue se règle ainsi : accord sur le plan, puis échantillon payant annoncé et validé, et seulement ensuite l'étape audio. Une fois l'échantillon validé, après la validation 3, mettre voice: à jour dans BRIEF.md avec l'identifiant de la voix retenue, avant de lancer l'étape audio. hyperframes:motion-graphics n'a pas de storyboard : la validation 3 se tient sur storyboard.md avant de lui passer la main.
  • Rendu. Jamais automatique. Après npx hyperframes check propre et l'aperçu (npx hyperframes preview), demander l'accord, puis rendre depuis le dossier hyperframes/ :
bash
npx hyperframes render --quality delivery --output ../exports/<slug>-<plateforme>.mp4

Rappels : jamais de preset frame-presets (hors la peau de sous-titres) dans un projet client ; frame.md jamais édité à la main (le modifier, c'est modifier les tokens puis relancer brand-frame.py).

Contrat de coût

Avant tout appel payant (image, clip vidéo, voix, musique, 3D, fournisseur externe d'HyperFrames), annoncer dans la conversation :

  • l'outil (nom exact), le fournisseur et le modèle ;
  • la raison de ce choix ;
  • échantillon ou série ;
  • le coût estimé ;
  • le solde du budget du projet (couts.md) et, quand l'outil le permet, le solde du compte vérifié en direct : outil account_balance du MCP Magnific quand il est connecté.

Règles :

  • Un échantillon avant toute série. Le coût réel de l'échantillon décide de la série.
  • Premier usage d'un outil payant dans un projet : validation explicite de l'humain, même sous pré-autorisation.
  • Pas de substitution silencieuse. Jamais changer de fournisseur ou de modèle sans le dire et le consigner dans decisions.md. Un modèle indisponible est un blocage, pas l'occasion d'en prendre un autre.
  • couts.md à jour à chaque appel : estimation, dépense réelle, solde du budget.
  • Musique : la licence d'abord, même gratuite. L'étape audio des workflows HyperFrames choisit seule sa musique, et pas de la même façon selon le workflow. faceless-explainer, product-launch-video et pr-to-video la prennent dans la bibliothèque HeyGen si l'humain est connecté, et n'en ont aucune hors ligne. hyperframes:general-video et l'usage direct du moteur la génèrent en local, par Lyria (clé Gemini ou Google) puis par MusicGen. Les poids de MusicGen sont publiés sous licence CC BY-NC 4.0 (fiche du modèle). Tant que 01-brand/droits.md n'a pas tranché son usage pour la marque : fournir une piste sous licence établie dans la section ## Assets de BRIEF.md, en précisant qu'elle remplace la musique du workflow ; ou poser music: none dans le bloc YAML de tête de hyperframes/STORYBOARD.md (la narration reste, seule la musique du workflow est coupée) et ajouter la musique à part, depuis une bibliothèque sous licence ou par Magnific audio_music_generate sous ce contrat.

Signaler un blocage en cinq points, puis attendre :

  1. Ce qui bloque.
  2. Ce qui a été tenté.
  3. Les options possibles.
  4. La recommandation, avec sa raison.
  5. Ce qu'il faut de l'humain : une décision, un accès, une clé, du budget.

Contrôle avant rendu

  • Promesse tenue : une vidéo promise en mouvement a du mouvement réel, pas un diaporama d'images zoomées (08-video/motion.md).
  • Variété : jamais trois scènes du même type d'affilée.
  • Narration plus courte que la vidéo : durée du fichier de voix (ffprobe -v error -show_entries format=duration -of csv=p=0 <narration.wav>) inférieure ou égale à la durée de la composition.
  • Musique assez longue pour toute la vidéo, ou bouclage prévu sans coupure audible.
  • Assets tous présents dans le dossier du projet : npx hyperframes check sans requête en échec.
  • Marque à jour : python3 08-video/scripts/brand-frame.py 08-video/projets/<slug>/hyperframes --check sort 0.
  • Sous-titres en forme : .srt écrit dans sous-titres/ et python3 08-video/scripts/controle-sous-titres.py 08-video/projets/<slug> sort 0 (le hook du module le lance aussi à chaque écriture).
  • Revue de singularité répondue dans decisions.md.

QA et revue

bash
python3 08-video/scripts/qa-video.py 08-video/projets/<slug>/exports/<slug>-<plateforme>.mp4 \
  --plateforme <reels|tiktok|shorts|linkedin> --duree <secondes> --script 08-video/projets/<slug>/script.md
  • Sans piste son : --sans-audio. Sans voix (musique seule) : sans --script ; une colonne Voix vide dans script.md désactive de toute façon la vérification de couverture. Destination hors des quatre plateformes de 08-video/scripts/plateformes.toml (site, YouTube) : lancer sans --plateforme.
  • La QA écrit dans 08-video/projets/<slug>/qa/<nom>/ une image au milieu de chaque plan, une planche contact et rapport.md. Code 0 : aucun constat bloquant ; 1 : constats bloquants ; 2 : erreur d'usage ou d'outil.
  • Puis dispatcher l'agent video-reviewer (lecture seule) avec le rendu, brief.md, script.md et la plateforme : message et appel à l'action, marque, zones de sécurité, mouvement et variété, sous-titres, divulgation, crédits.
  • Deux tours de correction au plus sur les constats de la QA et de la revue. Au-delà, remonter à l'humain avec l'état des constats.
  • La revue humaine du rendu final reste obligatoire, quel que soit le résultat de la QA.

Livraison

  1. brand-check sur le script et sur l'habillage du rendu.
  2. Divulgation IA selon 01-brand/divulgation-ia.md : clips générés, voix de synthèse, musique générée.
  3. Crédits et droits : credits.md du corpus documentaire, licences du stock et de la musique, droit d'embarquer la police, accord des personnes filmées ; vérification dans 01-brand/droits.md.
  4. Calendrier : statut de l'entrée dans 02-strategy/calendar/calendar.md (idée → brouillon → à-valider → validé → publié).
  5. Inventaire : python3 scripts/build-inventory.py --add 08-video/projets/<slug>/script.md.
  6. Capitalisation dans decisions.md : prompts, voix et réglages validés, et les échecs avec leur raison, pour qu'ils ne soient pas retentés.
  7. REPRISE.md passé à l'état « livré ».

Checklist avant livraison

  • Trois validations obtenues (concept, script, storyboard), chacune notée dans decisions.md avec sa date
  • Aucun crédit dépensé avant la validation 3 ; chaque appel payant annoncé et inscrit dans couts.md
  • Voix validée et consignée ; musique sous licence établie (01-brand/droits.md)
  • Contrôle avant rendu coché ; rendu fait après l'accord de l'humain sur l'aperçu
  • qa-video.py sans constat bloquant, ou constats restants acceptés par l'humain ; revue video-reviewer traitée
  • Revue humaine du rendu final faite
  • Références d'inspiration citées avec lien et créateur ; aucun prompt, visuel ni code de créateur repris (08-video/inspiration.md)
  • brand-check, divulgation IA, crédits et droits faits
  • Calendrier, inventaire, capitalisation et REPRISE.md à jour

Reprendre une session

  1. Lire REPRISE.md, puis decisions.md (la dernière ligne de chaque sujet fait foi) et couts.md.
  2. Projet HyperFrames : lire hyperframes/BRIEF.md et hyperframes/STORYBOARD.md (le mode de travail en cours est dans son frontmatter) ; pour savoir ce qui est construit, npx hyperframes timeline --json depuis hyperframes/.
  3. Reprendre à la prochaine action notée, sans refaire le cadrage ni l'entretien.

Ce que cette skill ne fait pas

  • Publier : la publication reste une décision humaine.
  • Décider la doctrine de marque : 01-brand/.
  • Écrire le post qui accompagne la vidéo : social-content.
  • Faire une présentation ou un deck : slides.
  • Le détail technique de chaque étape : les skills de la table « Choisir la filière ».

Méthode inspirée d'OpenMontage (calesthio/OpenMontage, AGPLv3), réécrite pour le template : aucun texte ni code repris. Registre : docs/vendored-video.md.

Frequently asked questions

What does the Video Production AI skill do?

Point d'entrée unique de toute demande vidéo pour {{COMPANY_NAME}} (Reel, Short, vidéo LinkedIn, explainer, vidéo produit ou de lancement, motion design, montage de rushes, clips tirés d'une vidéo longue, montage documentaire sur archives, animation à l'encre, 3D, Manim). Cadre l'objectif business, choisit la filière, tient le dossier de projet, les trois validations humaines (concept, script, storyboard), le contrat de coût, le journal de décisions, le contrôle avant rendu, la QA mesurée (qa-video.py, agent video-reviewer) et la livraison ; passe la main aux skills spécialisées et aux work...

Why use Video Production on TypingMind?

Because you install it once and use it with any model. Video Production is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Video Production in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Littlpinguin/marketing-cockpit-template/tree/main/.claude/skills/video-production. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Video Production?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Video Production?

As many as you like. As long as a model supports skills, you can use Video Production with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Video Production AI skill free?

Yes. It is published on GitHub by Littlpinguin under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇