Communitygithub.com

brand-intake

Collecte de la marque pour un film de lancement, une vidéo produit ou une promo : capturez les vraies couleurs, polices, logo, rayon et thème depuis le dépôt de l'utilisateur (config Tailwind, variables CSS, tokens shadcn, next/font, logo SVG), puis le site en ligne, puis les captures d'écran, et écrivez films/<slug>/brand.json avec une source pour chaque valeur. À utiliser lors du démarrage d'un nouveau film, lorsque la marque, le logo ou les couleurs ont changé, ou lorsque l'utilisateur dit « utilise ma marque / mes couleurs / mon logo ». Arrêt strict si la capture échoue : n'inventez jamais un logo ou des couleurs. Pas pour choisir un look ou une gradation (scene-build, craft/06) ou pour écrire du texte (story).

Qu'est-ce que brand-intake ?

Cette compétence agit comme un extracteur de marque automatisé pour les films de lancement, garantissant que l'identité visuelle du produit est capturée de manière précise et reproductible, jamais basée sur des suppositions. Elle fonctionne en plusieurs étapes : d'abord, elle explore le dépôt de l'utilisateur pour récupérer les tokens de conception réels (couleurs depuis les configurations Tailwind et les variables CSS shadcn, polices depuis les imports next/font ou @fontsource, logo depuis les fichiers SVG ou PNG de grande taille, rayon de bordure et thème). Ensuite, si des valeurs manquent, elle consulte l'URL en production pour extraire les styles calculés, les balises meta et les icônes. En dernier recours, elle échantillonne les pixels des captures d'écran fournies par l'utilisateur et pose des questions spécifiques pour combler les lacunes – elle n'invente jamais une couleur ou un logo. Les artefacts de sortie incluent `brand.json`, `BRAND-SOURCES.md` et les fichiers logo copiés, avec une vérification de contraste et une validation de schéma automatiques. Destinée aux agents d'IA tels que Claude Code, Cursor ou Codex, elle permet de maintenir une cohérence de marque parfaite et évite les approximations subjectives dans la production vidéo.

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

Demander à votre IA préférée

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

Documentation

brand-intake : tokens réels dans, brand.json dehors

Le film doit ressembler au produit, donc les tokens proviennent du produit, jamais du goût. Ordre des sources, arrêtez-vous à la première qui donne une valeur pour un champ, et enregistrez d'où vient chaque valeur :

  1. Le dépôt de l'utilisateur (meilleur : tokens exacts, vrais noms de polices, le vrai fichier logo).
  2. L'URL en direct (styles calculés, balises meta, SVG d'en-tête).
  3. Les captures d'écran fournies par l'utilisateur (échantillonnage de pixels).
  4. Demandez à l'utilisateur tout ce qui manque encore. Ne devinez jamais.

Sortie (chemins relatifs à launch-video/) : films/<slug>/brand.json, films/<slug>/BRAND-SOURCES.md, et les fichiers logo copiés tels quels dans public/films/<slug>/brand/ (afin que les scènes les chargent avec staticFile()). Recettes d'extraction : references/sources.md. Mappage des champs, polices de remplacement, calcul de contraste : references/brand-json.md.

Étapes

  1. Trouver la racine du produit. Si launch-video/ se trouve dans un dépôt produit, la racine du dépôt est un niveau au-dessus. Sinon, demandez l'URL et les captures d'écran. Notez la pile : dépendances package.json (version tailwindcss, next, @fontsource/*, shadcn).
  2. Couleurs depuis le dépôt. Dans l'ordre : variables @theme de Tailwind v4 dans CSS, theme.extend.colors de Tailwind v3 tailwind.config.{js,ts,cjs,mjs}, tokens shadcn dans globals.css (--background, --foreground, --primary, --muted, --card, --accent), autres propriétés personnalisées :root. Convertissez HSL/OKLCH/RVB en hexadécimal à 6 chiffres. Utilisez le thème utilisé par le site marketing (sombre ou clair), pas les deux mélangés.
  3. Polices depuis le dépôt. Imports next/font/google ou next/font/local, dépendances @fontsource*, @font-face, font-family sur body/html/h1, fontFamily de Tailwind. Enregistrez les noms de familles et les poids réellement utilisés.
  4. Logo depuis le dépôt. Cherchez d'abord SVG : public/logo*.svg, public/*mark*.svg, app/icon.svg, public/favicon.svg, src/assets/*logo*, src/components/*Logo* (JSX SVG en ligne : extrayez le <svg>), puis PNG ≥ 512 px (apple-touch-icon.png fait 180 px : dernier recours pour une marque, jamais pour un logotype). Copiez dans public/films/<slug>/brand/ sans modification.
  5. Rayon et thème. --radius ou borderRadius de Tailwind ; thème = sombre si la luminance relative du fond < 0.2.
  6. Combler les lacunes depuis l'URL en direct (references/sources.md § URL en direct) : meta theme-color, og:image, link rel=icon, SVG en ligne d'en-tête, styles calculés de body, bouton primaire, h1.
  7. Combler les lacunes depuis les captures d'écran : échantillonnez les pixels à des points nommés (fond de page, texte de corps, bouton primaire, carte). Écrivez les coordonnées des pixels dans BRAND-SOURCES.md.
  8. Nom, slogan, URL : depuis package.json name/description, le <title> du site, le h1 héros, og:description, première ligne du README. Utilisez les propres mots de l'utilisateur ; n'écrivez jamais un nouveau slogan ici (le texte est fait dans story).
  9. Mapper les polices que vous ne pouvez pas livrer ou charger vers une police OFL livrée par rôle (brand-json.md § polices) et dites-le.
  10. Vérification de contraste (brand-json.md § contraste) : fg sur bg ≥ 4.5:1 requis (cible 7:1), accent sur bg ≥ 3:1. Écrivez les chiffres. Un accent échouant → conservez-le pour les formes, choisissez fg pour le texte dessus.
  11. Écrivez brand.json, puis validez si schemas/brand.schema.json existe : npx -y -p ajv-cli@5 -p ajv-formats ajv validate --spec=draft2020 -c ajv-formats -s schemas/brand.schema.json -d films/<slug>/brand.json
  12. Écrivez BRAND-SOURCES.md : une ligne par valeur → source (fichier:ligne, URL + sélecteur, ou capture d'écran + x,y).
  13. Montrez à l'utilisateur un résumé de 6 lignes (nom, thème, 6 échantillons en hex, polices, fichier logo, tout élément mappé ou demandé).

Arrêts stricts (ne continuez pas le pipeline)

SituationFaireJamais
Aucun fichier logo dans le dépôt, le site ou les captures d'écranDemandez : « Envoyez le logo en SVG (de préférence) ou un PNG ≥ 512 px avec transparence. »dessiner, tracer, générer ou approximer un logo
Logo uniquement comme un petit faviconDemandez un fichier plus grandupscaler un favicon de 32 px en une marque héroïque
Aucune couleur capturée (pas d'accès au dépôt, site bloqué, pas de captures d'écran)Demandez l'URL ou 2-3 captures d'écran, ou les codes hexchoisir des couleurs « sympas » ou une palette par défaut
Palettes conflictuelles (app vs marketing)Demandez laquelle le film doit utiliser ; par défaut, le site marketingles mélanger
L'utilisateur veut un logotype textuel parce qu'aucun logo n'existeAutorisé uniquement avec un « oui » explicite : nom du produit dans la police d'affichage, couleur fgle présenter comme leur logo

Règles

  • Copiez les fichiers logo octet par octet. Ne recolorisez, recadrez ou « nettoyez » pas un logo sauf si l'utilisateur le demande.
  • N'utilisez jamais le logo d'une autre entreprise ou les logos des clients de l'utilisateur sans confirmation de l'utilisateur qu'il en a le droit.
  • Ne récupérez jamais de polices depuis des sources dont la licence interdit la redistribution dans un dépôt (polices FFL Fontshare comme Satoshi ou General Sans, Apple SF Pro) : mappez-les (brand-json.md § polices).
  • brand.json ne contient aucun secret ni donnée personnelle au-delà du nom public du produit et de l'URL.
  • Réexécuter la collecte écrase uniquement les champs dont la source a changé ; conservez les champs que l'utilisateur a modifiés manuellement (diff d'abord).
  • Les compétences en aval lisent uniquement brand.json ; ne codez jamais en dur les valeurs hex de la marque dans les scènes [craft/06#grade-discipline].

Individual skills in this repo

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

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).

evgenspm/launchfilm

Find launchfilm recipes (published launch films studied frame by frame and written down as text, some with ready Remotion code) and build the user's film from 1 to 3 of them. Use for "use a template", "start from a recipe", "make a 30s launch film from recipe <id>", "something like this style", "show me options", "which recipe fits a 30 s vertical launch", "remix recipe X with our brand", or when a storyboard needs a proven hook, feature beat, logo reveal or end card. Searches recipes/CATALOG.md or recipes/index.json, scores and picks 1 to 3, shows each with its source link, reads the recipe.md beat sheet, then scaffolds with `npx launchfilm new <slug> --recipe <id>`: ready code when Recipe.tsx exists, else TODO scenes built from the beat sheet with studio presets, keeping the recipe's timings, springs and sounds re-timed to the user's length and beat grid. Use reference-study to make a new recipe, story for the storyboard, scene-build for scenes, launch-film for the whole pipeline.

Skills associés