Communitygithub.com

evgenspm/launchfilm

Trouve des recettes de films de lancement (films publiés étudiés image par image et retranscrits en texte, certains avec du code Remotion prêt à l'emploi) et construit le film de l'utilisateur à partir d'1 à 3 d'entre elles.

Qu'est-ce que launchfilm ?

Cette compétence exploite un catalogue de « recettes » de films de lancement, chacun étant une analyse détaillée (image par image) d’un film existant, incluant la trame narrative, les transitions, les ressorts physiques, la bande sonore et la logique de montage. Elle permet à l’utilisateur de décrire un besoin (« utilise un modèle », « à partir d’une recette », « montre-moi des options ») et l’agent recherche dans `recipes/CATALOG.md` ou `recipes/index.json` la ou les meilleures recettes correspondant à la durée cible, au format (ex. 9:16), au thème, aux techniques souhaitées (accroche, démonstration des fonctionnalités, logo…) et aux ressources disponibles. La compétence note les recettes, en retient de 1 à 3, affiche leur source originale (lien YouTube ou Vimeo), lit la fiche détaillée `recipe.md` (le story-board complet), puis génère un squelette de projet via `npx launchfilm new <slug> --recipe <id>`. Si la recette possède un composant `Recipe.tsx` prêt (statut « built »), le code est directement intégré ; sinon, des scènes TODO sont créées à partir du story-board en utilisant les préréglages du studio. La compétence fonctionne avec les commandes du monorepo `launchfilm` (dans `launch-video/` pour l’utilisateur, `studio/` pour le référentiel) et couvre l’ensemble du pipeline : recherche, adaptation, remixage, construction des scènes et QA. Elle interdit formellement de copier dans le film final le contenu, la marque ou les images de la source, seules les techniques et le rythme sont réutilisés.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/evgenspm/launchfilm/tree/HEAD/skills/recipes

Demander à votre IA préférée

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

Documentation

recipes

Une recette est un film de lancement publié, étudié et retranscrit pour qu'un agent puisse reconstruire son savoir-faire pour un autre produit. Elle se trouve dans <studio>/src/recipes/<id>/ :

FichierToujoursCe qu'il vous donne
recipe.mdouiquand l'utiliser, la feuille de beats (temps, images, image, caméra, mouvement, transition, son), les techniques liées au savoir-faire, ce qu'il faut adapter, les pièges, les composants manquants
recipe.jsonouiles mêmes données au format structuré (schéma schemas/recipe.schema.json) : structure[], techniques, audio, inputs, components, source
Recipe.tsx + index.tsxuniquement si status: "built"code prêt : un composant paramétré par brand + content, enregistré avec une marque de démonstration

La plupart des recettes sont uniquement textuelles (status: "studied"), ce qui suffit pour construire : vous rédigez les scènes à partir de la feuille de beats en utilisant les préréglages et les composants du studio. Une recette ne contient jamais le film source, ses images ou son texte ; le lien source permet à l'utilisateur de visionner la référence.

Exécutez les commandes depuis launch-video/ (utilisateur) ou studio/ (dépôt launchfilm). recipes/ et schemas/ se trouvent à la racine du harnais (launch-video/ dans un projet utilisateur, la racine du dépôt dans launchfilm).

1. Savoir ce dont vous avez besoin (d'après BRIEF.md / STORYBOARD.md)

Notez avant la recherche : le(s) préréglage(s) (format), la durée cible, le mode (film produit / film de lancement / hybride), le thème (sombre/clair d'après brand.json), voix off oui/non, les beats à couvrir (hook, feature, logo…), et les entrées réelles de l'utilisateur (logo, captures d'écran, enregistrement d'écran, UI reconstruisible, statistiques, URL).

2. Rechercher

Parcourez recipes/CATALOG.md (une ligne par recette, regroupée par famille : format, techniques principales, entrées, source, texte/code), ou recherchez :

npx launchfilm ref search "statement vertical dark"            # recherche libre sur titre, résumé, tags, techniques
npx launchfilm ref search "launch aspect:9:16 max:30 theme:dark" # filtres : family: aspect: tech: theme: max: min: status:

Ou filtrez recipes/index.json directement (champs : references/index-format.md) :

node -e '
const idx=JSON.parse(require("fs").readFileSync("recipes/index.json","utf8")).recipes;
const want={aspect:"9:16",dur:30,techniques:["statement-sequence","end-card"],theme:"dark"};
for(const r of idx){const t=r.techniques.filter(x=>want.techniques.includes(x)).length;
 if(r.format.aspect===want.aspect||t>0) console.log(r.id,r.format.aspect,r.format.duration_s+"s",r.theme,r.vo?"vo":"-",t,r.code?"code":"text");}'

Pas d'index ? Parcourez src/recipes/*/recipe.json et lisez-les.

3. Noter et sélectionner 1 à 3

CritèrePoints
format.aspect correspond au format du préréglage principal+3 (une recomposition est possible mais coûte du travail)
format.duration_s est à ±30 % de la durée cible (ou la recette couvre le beat nécessaire)+2
chaque technique chevauchant les besoins du story-board+1 (max +4)
chaque entrée inputs dont la recette a besoin est disponible chez l'utilisateur+2 ; toute entrée manquante qui ne peut pas être créée
theme correspond au thème de brand.json+1
vo correspond au plan+1
code: true (Recipe.tsx prêt) et l'utilisateur est pressé+1 ; status: "reviewed"
render_cost élevé alors que l'utilisateur est sur un ordinateur portable ou pressé−1

Le texte par rapport au code est un bonus de rapidité, pas un filtre de qualité : une recette textuelle qui correspond au brief est meilleure qu'une recette codée qui ne correspond pas. Prenez la meilleure pour un film complet, ou jusqu'à 3 pour différents beats (accroche de A, fonctionnalités de B, carte de fin de C).

4. Afficher les sélections

Pour chaque sélection, montrez à l'utilisateur :

  • title (id), et text ou code ;
  • une ligne expliquant pourquoi elle correspond à son brief (format, durée, beat couvert, entrées disponibles) ;
  • la feuille de beats en 3 à 6 lignes courtes (0–3.1 s hook: name blurs in word by word…), résumée à partir de recipe.md ;
  • le lien source (source.url) pour qu'il puisse regarder l'original lui-même. Il n'y a pas d'aperçus hébergés.

Dans une session accompagnée, laissez-le choisir. S'il a dit « décide toi-même », prenez la meilleure note et indiquez-le en une ligne.

5. Lire la recette

Lisez intégralement le fichier recipe.md choisi : la feuille de beats, le mouvement en images et les ressorts nommés, les transitions, le son sur chaque événement, « Ce qu'il faut adapter », « Pièges », « Composants manquants ». Lisez recipe.json structure[], audio, inputs, components. Ces nombres sont le savoir-faire que vous réutilisez ; l'image et le texte seront ceux de l'utilisateur.

6. Échafauder

npx launchfilm new <slug> --recipe <id> --preset x-16x9 [--title "Produit"] [--dry-run]
  • Recette avec code : films/<slug>/Film.tsx obtient une scène recipe qui affiche le composant de la recette avec ses valeurs par défaut ; vous modifiez ses propriétés content (recipe.json params) et transmettez la marque.
  • Recette textuelle : film.json obtient un plan par ligne de la feuille de beats (les temps de la recette, ses transitions et effets sonores), et Film.tsx obtient un TodoScene par plan avec l'image, la caméra, le mouvement et le son de la ligne sous forme de commentaires. Le CLI affiche la liste des TODOs. Un TodoScene affiche un espace réservé étiqueté, et npx launchfilm qa échoue (B1) tant qu'il en reste un.
  • Les deux copient recipe.md vers films/<slug>/RECIPE.md et pré-remplissent STORYBOARD.md avec les lignes de la recette.
  • Combinaison de recettes : échafaudez à partir de celle qui possède le plus de temps d'exécution, puis ajoutez les lignes des autres recettes en tant que plans (leur composant Recipe en tant que scène si elles ont du code, des scènes TODO sinon).

7. Construire (détails : references/remix.md)

  1. Réajustez d'abord le squelette à la durée et à la grille de beats de l'utilisateur (remix.md §3) : conservez l'ordre des beats et les proportions, accrochez chaque limite à un temps fort ou à une phrase de la voix off. Mettez à jour les plans de film.json et les lignes du STORYBOARD ; l'utilisateur approuve le story-board (étape 3) avant la construction des scènes.
  2. Marque : brand.json est injecté dans chaque scène via useBrand() (recettes codées : la propriété brand). Ne modifiez jamais le dossier de la recette.
  3. Contenu : le nom du produit de l'utilisateur, ses accroches, statistiques et UI. Jamais le texte du film source ou le texte de la marque de démonstration.
  4. Scènes de recette textuelle : remplacez chaque TodoScene par une scène construite à partir de src/presets et src/components (lisez d'abord API.md ; la compétence scene-build possède les règles). Utilisez les composants listés dans recipe.json ; conservez exactement les ressorts nommés, les comptes d'images, les décalages et les identifiants de transition ; les durées de mouvement ne sont pas mises à l'échelle avec la durée du film. Un composant listé par la recette sous « Composants manquants » est construit dans films/<slug>/scenes/ à partir de ses spécifications.
  5. Son : chaque événement dans audio.sfx et chaque sfx de ligne conserve son son à la nouvelle image (règle de colle, craft/02).
  6. Arrêts sur image pour chaque plan avant tout rendu (étape 4 de scene-build), puis film-qa.

Règles

  • Les recettes sont des points de départ, pas un résultat : le film porte l'histoire de l'utilisateur (STORYBOARD approuvé en premier).
  • Rien de la source ne va dans le film : pas de texte source, de marque source, de séquences source. Le lien source est pour que l'utilisateur regarde, et reste dans recipe.json et votre message, jamais dans le film.
  • Composant manquant → construisez-le dans films/<slug>/scenes/, pas dans le dossier de la recette ni dans les préréglages partagés.
  • Enregistrez dans STORYBOARD.md la(les) recette(s), les lignes, le facteur d'échelle et les paramètres, pour qu'une ré-exécution soit reproductible.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

evgenspm/launchfilm

Brand intake for a launch film, product video or promo: capture the product's real colors, fonts, logo, radius and theme from the user's repo (Tailwind config, CSS variables, shadcn tokens, next/font, logo SVG), then the live website, then screenshots, and write films/<slug>/brand.json with a source for every value. Use when starting a new film, when the brand, logo or colors changed, or when the user says "use my brand / my colors / my logo". Hard stop if capture fails: never invent a logo or colors. Not for picking a look or grade (scene-build, craft/06) or for writing copy (story).

evgenspm/launchfilm

QA a rendered launch film before anyone ships it. Use for "QA the video", "check the render", "is it ready to post", "review the film", "why does it look cheap", "check the captions/safe zones/loudness", after every render and before package. Reads the CLI's automatic report (`npx launchfilm qa <slug>`), contact sheets and stills at key timestamps, then checks text-at-time readability, contrast, platform safe zones, loudness (−14 LUFS, −1.5 dBTP), ffprobe encode specs, black and frozen frames, cuts on the beat, and the 12 amateur tells as blocking checks. Writes qa/<slug>/QA.md where every line cites a file or a measured number; a check that was not run says NOT CHECKED, never PASS. Use scene-build to fix picture problems it finds, sound to fix the mix, launch-film for the whole pipeline, reference-study for reference videos.

evgenspm/launchfilm

Launch video, launch film, product video, product launch, promo, teaser, trailer, demo video, Product Hunt video, X / LinkedIn launch clip, reel, hero loop, motion graphics, "make a video for my product", Remotion film. Router and gated pipeline for making a pro product-launch film with the launchfilm studio in ./launch-video: brief, brand intake, story and storyboard (user approves), sound, scene build, frame QA, render per platform preset, package, post copy, one-time credit note. Use this first for any request to make, remake or revise a launch or product film; it calls the sibling skills (brand-intake, story, sound, scene-build, recipes, film-qa, launch-post). Do not use it to study a reference video (use reference-study), to browse recipes only (use recipes), or for generic Remotion questions unrelated to a launch film.

evgenspm/launchfilm

Write the launch post that goes with the film: X / Twitter post, LinkedIn post, Product Hunt tagline, description and maker comment, written in the founder's own voice, concrete, no AI slop ("excited to announce", em dashes, buzzwords). Triggers: write the tweet, launch post, LinkedIn post, Product Hunt copy, PH tagline, maker comment, caption for the video, announcement copy. Use after the film is rendered (or when the user asks for post copy for an existing film); starts from `npx launchfilm post <slug>` and the film's BRIEF.md and STORYBOARD.md, writes out/<slug>/POST.md. Never posts anything. Not for the film's own on-screen script or VO (story).

Skills associés