Communitygithub.com

evgenspm/launchfilm

Encuentra recetas de launchfilm (vídeos de lanzamiento publicados, estudiados fotograma a fotograma y escritos como texto, algunos con código Remotion listo) y construye el vídeo del usuario a partir de 1 a 3 de ellas.

¿Qué es launchfilm?

Esta skill permite a un agente de IA trabajar con el ecosistema launchfilm para crear vídeos de lanzamiento basados en recetas probadas. Una receta es un vídeo de lanzamiento real que ha sido estudiado en detalle y documentado como texto, incluyendo notas de ritmo, técnicas y, en algunos casos, código Remotion directamente reutilizable. El agente busca en el catálogo de recetas (CATALOG.md o index.json), puntúa las coincidencias según criterios como relación de aspecto, duración, técnicas y entradas disponibles, y selecciona entre 1 y 3 recetas. Luego, muestra cada opción con su enlace, lee la hoja de ritmos completa (recipe.md) y genera la estructura del proyecto con `npx launchfilm new <slug> --recipe <id>`: si la receta tiene código (`status: "built"`), se crea un componente listo; si es solo texto, se generan escenas TODO a partir de la hoja de ritmos, preservando tiempos, muelles y efectos de sonido, re-ajustándolos a la duración y cuadrícula rítmica del usuario. La skill es ideal para arrancar desde una plantilla, mezclar recetas, o cuando un guion gráfico necesita un gancho probado, un latido de característica, una revelación de logotipo o una tarjeta final.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

recipes

Una receta es un vídeo de lanzamiento publicado, estudiado y escrito para que un agente pueda reconstruir su artesanía para otro producto. Vive en <studio>/src/recipes/<id>/:

Archivo¿Siempre?Qué te da
recipe.mdsícuándo usarlo, la hoja de ritmos (tiempos, fotogramas, imagen, cámara, movimiento, transición, sonido), técnicas enlazadas a la artesanía, qué adaptar, errores comunes, componentes faltantes
recipe.jsonsílos mismos datos (esquema schemas/recipe.schema.json): structure[], techniques, audio, inputs, components, source
Recipe.tsx + index.tsxsolo si status: "built"código listo: un componente parametrizado por brand + content, registrado con una marca demo

La mayoría de las recetas son solo texto (status: "studied"), y eso es suficiente para construir: escribes las escenas a partir de la hoja de ritmos con los preajustes y componentes del estudio. Una receta nunca contiene el vídeo original, sus fotogramas ni su texto; el enlace de origen es cómo el usuario ve la referencia.

Ejecuta comandos desde launch-video/ (usuario) o studio/ (repositorio launchfilm). recipes/ y schemas/ están en la raíz del entorno (launch-video/ en un proyecto de usuario, la raíz del repositorio en launchfilm).

1. Saber lo que necesitas (de BRIEF.md / STORYBOARD.md)

Escribe antes de buscar: preajuste(s) (aspecto), duración objetivo, modo (vídeo de producto / vídeo de lanzamiento / híbrido), tema (oscuro/claro de brand.json), VO sí/no, los ritmos que necesitas cubrir (hook, feature, logo…), las entradas que el usuario tiene realmente (logotipo, capturas de pantalla, una grabación de pantalla, una IU reconstruible, estadísticas, una URL).

2. Buscar

Ojea recipes/CATALOG.md (una línea por receta, agrupadas por familia: formato, técnicas principales, entradas, fuente, texto/código), o busca:

npx launchfilm ref search "statement vertical dark"            # texto libre sobre título, resumen, etiquetas, técnicas
npx launchfilm ref search "launch aspect:9:16 max:30 theme:dark" # filtros: family: aspect: tech: theme: max: min: status:

O filtra recipes/index.json directamente (campos: 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");}'

¿No hay índice? Busca globalmente src/recipes/*/recipe.json y léelos.

3. Puntuar y elegir 1–3

CriterioPuntos
format.aspect coincide con el aspecto del preajuste principal+3 (recomponer es posible pero cuesta trabajo)
format.duration_s dentro del ±30 % del objetivo (o la receta cubre el ritmo que necesitas)+2
cada técnica que solapa las necesidades del guion gráfico+1 (máximo +4)
cada inputs que necesita es algo que el usuario tiene+2; cualquier entrada faltante que no pueda crearse
theme coincide con brand.json theme+1
vo coincide con el plan+1
code: true (Recipe.tsx lista) cuando el usuario tiene prisa+1; status: "reviewed"
render_cost pesado mientras el usuario está en un portátil o tiene prisa−1

Texto vs código es un bonus de velocidad, no un filtro de calidad: una receta de texto que encaja con el resumen supera a una de código que no encaja. Toma la mejor para un vídeo completo, o hasta 3 para diferentes ritmos (gancho de A, características de B, tarjeta final de C).

4. Mostrar las selecciones

Para cada selección, muestra al usuario:

  • título (id), y text o code;
  • una línea sobre por qué encaja con su resumen (aspecto, duración, el ritmo que cubre, las entradas que tiene);
  • la hoja de ritmos en 3–6 filas cortas (0–3.1 s hook: nombre se desenfoca palabra por palabra…), resumida desde recipe.md;
  • el enlace de origen (source.url) para que pueda ver el original. No hay previsualizaciones alojadas.

En una sesión con atención, deja que elija. Si dijo "decide tú", toma la mejor puntuación y menciónalo en una línea.

5. Leer la receta

Lee la recipe.md elegida por completo: la hoja de ritmos, movimiento en fotogramas y muelles nombrados, transiciones, sonido en cada evento, "Qué adaptar", "Errores comunes", "Componentes faltantes". Lee recipe.json structure[], audio, inputs, components. Estos números son la artesanía que estás reutilizando; la imagen y el texto serán del usuario.

6. Generar la estructura

npx launchfilm new <slug> --recipe <id> --preset x-16x9 [--title "Product"] [--dry-run]
  • Receta con código: films/<slug>/Film.tsx obtiene una escena recipe que renderiza el componente de la receta con sus valores predeterminados; cambias sus props content (recipe.json params) y pasas la marca.
  • Receta de texto: film.json obtiene un plano por fila de la hoja de ritmos (los tiempos de la receta, sus transiciones y SFX), y Film.tsx obtiene un TodoScene por plano con la imagen, cámara, movimiento y sonido de la fila como comentarios. El CLI imprime la lista de TODOs. Un TodoScene renderiza un marcador de posición etiquetado, y npx launchfilm qa falla (B1) mientras quede uno.
  • Ambos copian recipe.md a films/<slug>/RECIPE.md y prellenan STORYBOARD.md con las filas de la receta.
  • Combinar recetas: genera la estructura desde la que tiene más tiempo de ejecución, luego añade las filas de las otras recetas como planos (su componente Recipe como escena cuando tienen código, escenas TODO en caso contrario).

7. Construir (detalles: references/remix.md)

  1. Reajusta primero el esqueleto a la duración y cuadrícula rítmica del usuario (remix.md §3): mantén el orden y las proporciones de los ritmos, ajusta cada límite a un tiempo fuerte o una frase de VO. Actualiza los planos de film.json y las filas de STORYBOARD; el usuario aprueba el guion gráfico (puerta 3) antes de construir las escenas.
  2. Marca: brand.json en cada escena a través de useBrand() (recetas de código: la prop brand). Nunca edites la carpeta de la receta.
  3. Contenido: el nombre del producto del usuario, líneas, estadísticas e IU. Nunca el texto del vídeo original ni el de la marca demo.
  4. Escenas de recetas de texto: reemplaza cada TodoScene con una escena construida desde src/presets y src/components (lee API.md primero; la skill scene-build es dueña de las reglas). Usa los componentes que lista recipe.json; mantén exactamente los muelles nombrados, conteos de fotogramas, escalonamientos e IDs de transición de la fila; las duraciones de movimiento no escalan con la longitud del vídeo. Un componente que la receta lista bajo "Componentes faltantes" se construye en films/<slug>/scenes/ desde su especificación.
  5. Sonido: cada evento en audio.sfx y cada sfx de fila mantiene su sonido en el nuevo fotograma (regla de pegamento, craft/02).
  6. Fotogramas fijos en cada plano antes de cualquier render (paso 4 de scene-build), luego film-qa.

Reglas

  • Las recetas son puntos de partida, no el resultado: el vídeo lleva la historia del usuario (STORYBOARD aprobado primero).
  • Nada del original va al vídeo: ni texto original, ni marca original, ni metraje original. El enlace de origen es para que el usuario lo vea, y permanece en recipe.json y tu mensaje, nunca en el vídeo.
  • Componente faltante → constrúyelo dentro de films/<slug>/scenes/, no en la carpeta de la receta ni en los preajustes compartidos.
  • Registra en STORYBOARD.md qué receta(s), qué filas, el factor de escala y los parámetros, para que una repetición sea reproducible.

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 relacionados