Communitygithub.com

explainer-short (court explicatif vertical)

Créez une courte vidéo explicative verticale (9:16) avec un présentateur, des graphiques animés, des sous-titres et un thème interchangeable. Idéal pour un clip d'enseignement, une démonstration produit ou un pipeline de rendu HTML/Canvas portable.

Qu'est-ce que explainer-short (court explicatif vertical) ?

Ce skill génère un court clip explicatif vertical (9:16) combinant un présentateur en bas de l'écran, des graphismes animés en haut et des bulles de sous-titres au milieu. Chaque séquence traite une seule idée. Un système de thèmes (chaud, monochrome, haut contraste, ludique) permet de modifier l'apparence (couleurs, typographie, coins arrondis, animations) sans toucher au code des scènes. Il s'appuie sur un pipeline HTML/Canvas headless utilisant Playwright et ffmpeg pour produire un fichier MP4. Les thèmes sont stockés dans des fichiers JSON, activés via un script shell. Le rendu peut inclure une piste audio (voix) avec normalisation du volume vers -14 LUFS. Le skill est conçu pour les agents IA, simplifiant la création de contenu vidéo pédagogique ou marketing en respectant des règles de design (une idée par séquence, lisibilité à distance, thème neutre par défaut).

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/spiritual-dev/explainer-short/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

Que fait explainer-short (court explicatif vertical) ?

Créez un court explicatif vertical : présentateur dans la moitié inférieure, graphismes animés dans la moitié supérieure, grandes bulles de sous-titres au milieu. Une seule idée par séquence. Des jetons de thème contrôlent la couleur, la typographie, les coins arrondis et les animations, permettant au même script de prendre une apparence chaleureuse, monochrome, à haut contraste ou ludique.

Quand l'utiliser

  • Un clip d'enseignement vertical de 8 à 30 secondes ou une démonstration produit
  • Un pipeline HTML/Canvas réutilisable qui exporte en MP4
  • Des thèmes visuels interchangeables sans réécrire le code des scènes

Disposition

+---------------------------+
|   graphismes / cartes (1080) |
|                           |
|---------------------------|  <- bulle de sous-titre à la jointure
|   présentateur (960)      |
|                           |
+---------------------------+
         1080 x 1920

Système de thèmes

Les thèmes se trouvent dans template/themes/*.json (et sample/themes/ pour la démo). Le thème actif est theme.json dans le dossier du projet.

bash template/scripts/use-theme.sh warm          # ou mono | high-contrast | playful
# ou depuis un projet copié :
bash scripts/use-theme.sh mono

Jetons (variables CSS après loadTheme) :

JetonRôle
--ink --muteTexte
--bg --bg-hi --bg-loFond d'écran
--surface --surface-2Cartes
--accent --accent-2 --accent-3Accentuation
--chip-bg --chip-fgBulle de sous-titre
--radius-card --radius-chip --chip-sizeForme
--headline-weightGraisse du titre
--font-sans --font-monoTypographie (OFL woff2 dans fonts/)

Préréglages : warm (par défaut), mono, high-contrast, playful.

Modifiez un fichier JSON, relancez use-theme.sh, rechargez. Aucune étape de build pour le thème lui-même.

Changement de police

  1. Placez un fichier woff2 sous licence ouverte dans fonts/ et conservez son fichier de licence à côté.
  2. Définissez fonts.sans / fonts.sans_file (et mono) dans le JSON du thème.
  3. Pointez @font-face dans index.html vers le nouveau fichier si le nom de famille change.
  4. Rendez à nouveau une image à mi-trame et confirmez.

Polices par défaut fournies : Inter + JetBrains Mono (SIL OFL). Les textes de licence sont livrés sous fonts/.

Démarrage rapide (démo de thème, sans prise de vue du présentateur)

npm install
node scripts/render_sample.mjs warm
node scripts/render_sample.mjs mono
# produit : sample/out/<preset>/<preset>.mp4 + images fixes de trames

Nécessite : Node 18+, Chrome ou Chromium système, ffmpeg.

Pipeline complet du projet (autonome)

  1. Copiez template/ dans un nouveau dossier de projet (ou travaillez dans sample/).
  2. Écrivez les scènes dans main.js qui appellent window.render(t) et utilisent les variables CSS du thème.
  3. Optionnel : présenteur – déposez une prise, remplissez src/edit.json, exécutez python3 src/edit.py (nécessite numpy + soundfile), puis python3 src/captions.py.
  4. Depuis la racine du skill (après npm install) :
PRESET=warm bash template/build.sh
# ou, pour un projet copié :
SKILL_ROOT=/chemin/vers/explainer-short PRESET=mono bash build.sh
# ou appelez directement le moteur de rendu :
node scripts/render.mjs --dir chemin/vers/projet --preset warm --out chemin/vers/projet/out/video.mp4
  1. Si vous avez out/voice.wav, python3 mix.py normalise le volume vers -14 LUFS / -1 dBTP et build.sh le multiplexe.

template/scripts/render.mjs est également copié à côté du modèle afin qu'un projet puisse conserver une copie locale.

Règles de conception

  1. Une seule idée. Un objet, une promesse, tenue avant la fin.
  2. Lisible à bout de bras. Grand caractère, contraste élevé, peu de mots à l'écran.
  3. Les bulles de sous-titres sont la voix. Gardez les indices courts ; figez brièvement sur le dernier mot.
  4. Thématisez, ne codez pas en dur. Les couleurs, les rayons et la taille des bulles proviennent des jetons.
  5. Valeur par défaut neutre. Warm est le défaut ; la personne choisit un préréglage.

Vérification avant livraison

Notez chaque axe de 0 à 3. Livrez uniquement si la moyenne est d'au moins 2,3. Un réviseur indépendant mesure le fichier principal.

AxeÀ vérifier
FigementLa dernière bulle se maintient ~0,3-0,5s ; pas de coupure en milieu de mot
Volume sonoreEnviron -14 LUFS intégré (mesurer avec ffmpeg loudnorm)
Crête réelle<= -1 dBTP
CouvertureLa trame de fin ou le décalage de vignette est une carte titre claire
ThèmeJetons appliqués ; aucune couleur de marque codée en dur restante
ClartéUn inconnu comprend le message sans audio

Grille complète : references/review-rubric.md. Zones sécurisées : references/cover.md.

Fichiers

CheminRôle
package.jsonDéclare playwright-core
template/Projet de démarrage (HTML, thème, polices, build.sh)
template/themes/JSON des préréglages
template/theme.jsloadTheme() -> variables CSS sur :root
sample/Démo de thème autonome de 12s
scripts/render.mjsRendu headless des trames + multiplexage ffmpeg
scripts/render_sample.mjsWrapper pratique pour les préréglages d'exemple
references/Structure, thèmes, grille de révision, couverture, finition
docs/Aperçus des trames issues de exécutions vérifiées

Liste de contrôle pour l'agent

  • npm install exécuté dans la racine du skill
  • Préréglage de thème choisi (ou warm par défaut)
  • theme.json correspond au préréglage
  • Les scènes utilisent des variables CSS, pas de couleurs de marque codées en dur
  • L'exemple ou le build complet produit un MP4
  • ffprobe confirme 1080x1920 et la durée attendue
  • L'image à mi-trame semble cohérente avec le préréglage
  • Volume sonore ~ -14 LUFS et crête réelle <= -1 dBTP en présence d'audio
  • Moyenne de la grille de révision >= 2,3
  • Aucun résidu de marque personnelle ou tierce dans le projet

Skills associés