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
- 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.
- 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. - 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. - 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.
- 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 :
- 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.
- 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.
- 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.
- Appel à l'action + lien (inscription, GitHub, réserver une démo, liste d'attente).
- Marque : confirmez le logo et les couleurs détectés, ou fournissez-les.
- Tout ce qui ne doit pas apparaître à l'écran.
- 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
.envest 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:desktoppour 16:9/1:1/4:5. Pour 9:16, utilisezmobilesi l'application est responsive (vérifiez d'abord une capture d'écran mobile), sinondesktopet 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: truepour 1 à 2 flux qui sont mieux vus en mouvement (saisie, création, glisser-déposer). Gardez chacun sous ~8 s d'actions. setupcontient les étapes de connexion avec le compte de test ;hidecontient 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 nouveauformat), 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)
| Situation | Recommandation |
|---|---|
| Reel / court 9:16, moins de 30 s | Musique + 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 personnel | Leur propre voix enregistrée (sonne le plus authentique). |
| Développeur indécis | Envoyez 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.