Communitygithub.com

ajewoleOlugbenga/video-skills

Créez une vidéo de démonstration produit soignée (MP4) d'une application web directement à partir de son dépôt de code. Analyse le dépôt, rédige le pitch, exécute l'application, capture des captures d'écran et des enregistrements des fonctionnalités clés, et génère une démo animée avec zooms, curseur, annotations, musique et un voice-over IA hors ligne gratuit optionnel avec sous-titres, en paysage ou portrait.

Qu'est-ce que video-skills ?

Cette compétence transforme un dépôt d'application web en une vidéo de démonstration professionnelle. Elle guide l'agent Claude à travers un processus en 8 étapes : analyse du dépôt, rédaction d'un pitch et questions au développeur, configuration et exécution de l'application, capture d'écrans et d'enregistrements, storyboard, rendu vidéo et livraison. La vidéo finale inclut des zooms, un curseur animé, des annotations, une musique de fond, des effets sonores, et optionnellement un voice-over IA hors ligne gratuit (voix Norman ou Cori) avec sous-titres. Le format s'adapte au canal de diffusion : 16:9 pour YouTube/sites web, 9:16 pour Reels/TikTok/Shorts. La compétence garantit de ne jamais modifier le dépôt du développeur, de ne jamais exposer de secrets, et de ne jamais utiliser de données personnelles réelles. Elle est conçue pour les applications web uniquement et utilise Playwright pour les captures, Remotion pour le rendu vidéo, et sherpa-onnx pour le voice-over.

Compatible avec✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/ajewoleOlugbenga/video-skills/tree/HEAD/plugins/app-demo-video/skills/app-demo-video

Demander à votre IA préférée

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

Documentation

Vidéo de Démo d'Application

Transforme un dépôt d'application web en une vidéo de démonstration finie. Vous (Claude) agissez en tant que spécialiste du marketing produit, monteur vidéo et concepteur de mouvements. Le développeur répond à une seule série de questions et approuve le storyboard.

Suivez toujours les étapes ci-dessous dans l'ordre, en commençant par l'analyse et le message de question unique (Étape 3). Ne passez jamais directement à la réalisation d'une vidéo, quel que soit l'outil ou l'approche que vous utiliseriez autrement.

v1 prend en charge les applications web (tout ce qui fonctionne dans un navigateur). Les applications natives mobiles, les CLI et les API sont hors du périmètre : dites-le et arrêtez-vous si le dépôt en fait partie.

Les éléments non-négociables

  1. Ne modifiez jamais le dépôt du développeur. Tout le travail s'effectue dans un dossier d'espace de travail séparé. Ne commitez pas, n'ajoutez pas de fichiers au dépôt, ne modifiez pas leur configuration.
  2. Ne lisez et n'imprimez jamais de valeurs secrètes. N'ouvrez pas les fichiers .env. Les noms de variables d'environnement (provenant de .env.example) sont acceptables. Si l'application a besoin de secrets, le développeur les place lui-même dans .env ; ne lui demandez jamais de coller des clés dans le chat.
  3. Ne filmez jamais de données personnelles réelles. Utilisez des comptes de test et des données de démonstration. Obscurcissez les e-mails, les clés API, les jetons et les noms réels avec des sélecteurs hide.
  4. N'agissez jamais sur des données de production. Les scripts d'initialisation et les soumissions de formulaires ne s'exécutent que sur des environnements locaux ou de préproduction. Sur une URL en ligne, naviguez et regardez uniquement, sauf si le développeur approuve explicitement une action spécifique.
  5. Le pitch est un brouillon. Tout ce que vous déduisez concernant le public, le problème et les avantages est étiqueté comme un brouillon que le développeur peut modifier. Ne revendiquez pas de chiffres d'utilisateurs, de témoignages, de propriétés de vitesse ou de sécurité que le code ne prouve pas.

Flux de travail

Étape 1 : Configuration de l'espace de travail

cp -r <skill-dir>/template ~/app-demos/<app-slug>      # une fois par application
cd ~/app-demos/<app-slug> && npm install
npx playwright install chromium                          # une fois par machine (ou définissez CHROME_PATH)

<skill-dir> est le dossier dans lequel se trouve ce SKILL.md (le répertoire de base de la compétence, affiché lors du chargement de la compétence). Il peut se trouver dans un cache de plugin ou ~/.claude/skills/ ; ne modifiez jamais les fichiers sur place, copiez toujours d'abord le modèle.

Tout ce qui suit s'exécute depuis cet espace de travail. Le chemin du dépôt est <repo> : le dossier du projet actuel, ou le dossier que le développeur a connecté.

Étape 2 : Analyser le dépôt (lecture seule)

node scripts/scan-repo.mjs <repo> --json scan.json

Ceci affiche le framework, les commandes d'installation et d'exécution, le port, les routes/pages, les noms de variables d'environnement, les bibliothèques d'authentification et de base de données, les scripts d'initialisation, les fichiers de logo et les couleurs de marque les plus utilisées. Lisez ensuite le README et les fichiers de pages/composants principaux pour les routes qui ressemblent à des fonctionnalités de base (tableaux de bord, éditeurs, flux de création/nouveauté, paramètres importants). Visez à comprendre ce qu'un utilisateur fait réellement dans l'application.

Étape 3 : Un message au développeur : brouillon du pitch + questions

Envoyez tout dans un seul message pour que le développeur puisse répondre une seule fois. Utilisez l'outil AskUserQuestion pour les éléments à choix multiples lorsqu'il est disponible.

A. Brouillon du pitch (dites clairement qu'il a été rédigé à partir du code ; demandez-lui de le corriger) :

  • Phrase d'accroche : ce que c'est, en ≤ 12 mots
  • À qui ça s'adresse
  • Le problème que cela résout
  • 3 choses qui le distinguent (à partir des fonctionnalités réelles que vous avez trouvées)

B. Fonctionnalités proposées : listez 5 à 7 fonctionnalités que vous avez trouvées, chacune avec la route sur laquelle elle se trouve. Demandez-lui d'en choisir 3 à 5 et de nommer celles que vous avez manquées.

C. Questions :

  1. Où la vidéo sera-t-elle publiée ? → décide du format. YouTube / site web / LinkedIn / Product Hunt → 16:9 paysage. Reels / TikTok / Shorts / X → 9:16 portrait. Posts de flux → 1:1 ou 4:5.
  2. Comment dois-je capturer l'application ? (a) Je l'exécute localement, (b) vous me donnez une URL (préproduction de préférence), (c) vous envoyez des captures d'écran/enregistrements.
  3. Identifiant de test, si l'application a une authentification : un compte de test, ou la permission d'en créer un localement. Jamais leur compte réel.
  4. Appel à l'action + lien (inscription, GitHub, réserver une démo, liste d'attente).
  5. Marque : confirmez le logo et les couleurs détectés, ou fournissez-les.
  6. Tout ce qui ne doit pas apparaître à l'écran.
  7. Audio : proposez ces trois options, avec votre recommandation en premier (voir « Choix de l'audio » ci-dessous) :
    • Musique + effets sonores uniquement (par défaut)
    • Voice-over IA + sous-titres : gratuit, généré hors ligne sur leur machine, sans compte. Voix : Norman (homme US) ou Cori (femme UK). Proposez d'envoyer de courts échantillons des deux avant qu'ils ne choisissent.
    • Leur propre voix enregistrée

Arrêtez-vous ici et attendez les réponses. N'installez, n'exécutez, ne capturez ni ne rendez rien avant que le développeur ne réponde, même si la demande ressemblait à « faites-le simplement ». Les questions sont le produit : une vidéo construite sur des suppositions leur fait perdre du temps. La seule exception est une exécution sans personne pour répondre (une tâche planifiée ou en arrière-plan) : utilisez alors votre brouillon de pitch, les 4 fonctionnalités les plus visuelles, 16:9 et musique uniquement, et dites au début ce que vous avez supposé.

Étape 4 : Faire fonctionner l'application

Suivez references/running-the-app.md. En résumé :

  • Chemin (a) : installez avec la commande détectée, démarrez le serveur de développement en arrière-plan, attendez le port. Si des variables d'environnement sont nécessaires et que .env est manquant, listez les noms et demandez au développeur de le créer. Démarrez les bases de données avec docker compose si présent. Initialisez les données de démonstration avec le script d'initialisation du dépôt (base de données locale uniquement). Faites en sorte que l'application ait l'air utilisée : une application vide fait une mauvaise démo.
  • Donnez deux tentatives honnêtes au chemin (a). S'il ne démarre toujours pas, expliquez le blocage en une ou deux phrases et passez au chemin (b) ou (c). N'y passez pas trop de temps.
  • Chemin (c) : les fichiers du développeur vont dans public/assets/shots/ ; les formats .png, .jpg, .mp4 et .webm fonctionnent tous.

Étape 5 : Capture

Écrivez une liste de plans shots/<app-slug>.json (format : references/capture-guide.md, exemple : shots/example.json) :

  • device : desktop pour 16:9/1:1/4:5. Pour 9:16, utilisez mobile si l'application est responsive (vérifiez d'abord une capture d'écran mobile), sinon desktop et comptez sur le zoom.
  • Un plan par fonctionnalité choisie. Donnez à chacun un sélecteur focus : un élément petit (une carte, un bouton, un graphique), pas une section entière de page, pour que la caméra ait quelque chose sur quoi zoomer.
  • Utilisez record: true pour 1 à 2 flux qui sont mieux vus en mouvement (saisie, création, glisser-déposer). Gardez chacun sous ~8 s d'actions.
  • setup contient les étapes de connexion avec le compte de test ; hide contient les sélecteurs pour le texte sensible.
node scripts/capture.mjs shots/<app-slug>.json

Ouvrez chaque PNG et regardez-le. Recapturez (--only <shot>) si vous voyez : des états vides, des spinners de chargement, des toasts d'erreur, des superpositions de mode développeur (par exemple, le badge d'erreur Next.js), des bannières de cookies, du « lorem ipsum », ou quoi que ce soit de personnel qui n'est pas flouté. Le manifeste (public/assets/shots/manifest.json) donne pour chaque plan son image, sa vidéo, sa taille, sa durée de clip et sa boîte de focus pour le brief.

Étape 6 : Storyboard → approbation

Lisez references/pitch-and-story.md. Structure par défaut :

accroche → (problème) → intro « Découvrez » → 3 à 5 scènes de fonctionnalités → pourquoi elle se démarque (avantages) → (montage) → CTA

Durée : 30–60 s en paysage, 20–40 s en portrait. Montrez le storyboard sous forme de liste numérotée courte (scène, texte à l'écran, quel plan, et la ligne parlée s'ils ont choisi un voice-over) et obtenez un oui avant de rendre, sauf si le développeur a dit d'y aller.

Étape 7 : Brief, prévisualisation, rendu

Écrivez briefs/<app-slug>.json (référence : references/brief-schema.md). Copiez media, video, width, height, focus et clipSeconds depuis le manifeste. Utilisez speed: 1.3–1.8 sur les clips qui semblent lents. En paysage, alternez "flip": true sur une fonctionnalité sur deux pour que l'écran change de côté.

S'ils ont choisi le voice-over IA, ajoutez une ligne "say" à chaque scène qui doit être parlée (règles dans references/voiceover.md), définissez "audio": {"voice": {"name": "norman"}} (ou "cori"), puis générez-le. Chaque scène s'étire automatiquement pour s'adapter à sa ligne, la musique baisse sous la voix, et les sous-titres sont ajoutés :

python3 -m venv .venv && .venv/bin/pip install sherpa-onnx numpy    # une fois (Windows : .venv\Scripts\pip)
.venv/bin/python scripts/voiceover.py briefs/<app-slug>.json        # relancez après avoir modifié une ligne "say"

Prévisualisez ensuite :

scripts/render.sh briefs/<app-slug>.json stills    # une image par scène, ~1 min

Ouvrez chaque image fixe. Vérifiez : le texte ne chevauche pas le badge de marque, les sous-titres ou les autres textes, rien n'est coupé, l'écran est lisible, le zoom atterrit sur le bon élément, le texte d'annotation est correct. Corrigez, relancez les images fixes, puis :

scripts/render.sh briefs/<app-slug>.json           # MP4 complet, quelques minutes

Étape 8 : Livrer et nettoyer

  • Donnez au développeur le MP4 avec une ligne sur ce qu'il contient. Proposez une prochaine étape : l'autre orientation (recapturez avec l'autre device, même brief avec un nouveau format), un teaser de 15 s (accroche + 2 fonctionnalités + CTA), ou l'ajout/retrait du voice-over (s'ils avaient de la musique uniquement, mentionnez qu'un voice-over gratuit est à une commande).
  • Arrêtez le serveur de développement et tous les conteneurs que vous avez démarrés. Dites au développeur quelles données de test ou comptes de test vous avez créés, et demandez avant de supprimer quoi que ce soit.

Audio

Les effets sonores sont joués lors des changements de scène, des clics et des pops ; désactivez-les avec "audio": {"sfx": false}. Un rythme libre de droits est joué par défaut ; utilisez le propre morceau du développeur avec "music": "assets/track.mp3" ou false pour aucun. N'utilisez jamais de musique sous copyright que le développeur ne possède pas ou ne licence pas.

Choisir l'audio (quoi recommander)

SituationRecommandation
Reel / court 9:16, moins de 30 sMusique + effets sonores. La plupart des gens regardent en muet ; le texte à l'écran porte le message.
Démo 16:9, 30–60 s+ (YouTube, page d'accueil, Product Hunt)Voice-over IA. La narration explique mieux les fonctionnalités que le texte seul.
Marque fondée par un fondateur, public personnelLeur propre voix enregistrée (sonne le plus authentique).
Développeur indécisEnvoyez les deux échantillons vocaux et une version musique uniquement est toujours la solution de repli.

Soyez franc : les voix gratuites sont claires mais légèrement synthétiques. Elles ne sont pas aussi naturelles que les services vocaux payants ou une vraie personne. Obtenez des échantillons avec .venv/bin/python scripts/voiceover.py --samples (écrit out/voice-sample-norman.wav et out/voice-sample-cori.wav) et envoyez-les pour que le développeur puisse juger.

Licence

Remotion (le moteur vidéo) est gratuit pour les particuliers, les entreprises de jusqu'à 3 employés et les organisations à but non lucratif. Les entreprises à but lucratif plus grandes ont besoin d'une licence d'entreprise Remotion (remotion.dev/license). Mentionnez-le une fois si le développeur semble être dans une grande entreprise. Les polices incluses sont sous licence SIL OFL. Les deux voix (Norman, Cori) ont été entraînées à partir de zéro sur des enregistrements audio LibriVox du domaine public et sont sous licence MIT, donc elles conviennent aux vidéos commerciales. Ne remplacez pas par d'autres voix Piper : plusieurs (Lessac, Ryan, Amy et les voix affinées à partir de Lessac) sont non commerciales ou juridiquement floues. Le moteur vocal, sherpa-onnx, est sous licence Apache 2.0.

En cas de problème

Consultez references/troubleshooting.md.

Individual skills in this repo

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

Skills associés