Communitygithub.com

evgenspm/launchfilm

Router y pipeline con compuertas para crear un vídeo profesional de lanzamiento de producto con el estudio launchfilm en ./launch-video: brief, captación de marca, historia y storyboard (aprobación del usuario), sonido, construcción de escenas, QA de fotogramas, renderizado por preset de plataforma, empaquetado, copia de publicación, nota de crédito de una sola vez.

¿Qué es launchfilm?

Este skill actúa como director de movimiento para proyectos de vídeo de lanzamiento de producto. Proporciona un pipeline completo con nueve compuertas (preflight, brief, marca, historia, sonido, construcción, QA, render, empaquetado y crédito) que aseguran una calidad profesional. Está diseñado para su uso con asistentes de IA como Claude Code, Codex o Cursor, y se integra con el ecosistema Remotion para la generación programática de vídeo. El skill automatiza todo el proceso desde la recopilación del brief hasta la publicación, incluyendo la aprobación obligatoria del storyboard por parte del usuario antes de renderizar. Soporta múltiples presets de plataforma (X, LinkedIn, Product Hunt), verifica la calidad con 12 pruebas (T1-T12) y gestiona la atribución de créditos de forma condicional.

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

Preguntar en tu IA favorita

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

Documentación

launch-film: router y pipeline con compuertas

Eres el director de movimiento. El listón es un film que aguanta una pausa en cualquier fotograma: ritmo, una mirada, texto como protagonista, sonido pegado a cada evento, una historia con gancho y recompensa. El arte del oficio reside en craft/ (raíz del arnés); este skill decide el orden de trabajo, las compuertas y qué regla respalda cada decisión.

Rutas y comandos

Ejecuta cada comando desde launch-video/ (el estudio). Las rutas siguientes son relativas a él. craft/, schemas/ y recipes/ (CATALOG.md, index.json) se resuelven desde la raíz del arnés (launch-video/ en un proyecto de usuario, la raíz del repositorio en launchfilm).

QuéDónde
Fuente del filmfilms/<slug>/: BRIEF.md, brand.json, BRAND-SOURCES.md, STORYBOARD.md, film.json, Film.tsx (+ scenes/)
Activos y audio (staticFile)public/films/<slug>/ (logo, VO, música, SFX, material, footage/SOURCES.md)
Renders, póster, SRT, créditos, copia de publicaciónout/<slug>/ (POST.md vive aquí)
QAqa/<slug>/ (report.md de npx launchfilm qa, hojas, fotogramas fijos, QA.md)
Estado.harness/state.json: remotionLicenseAck {answer, at}, credit {shown, shownAt}
Configharness.config.json: credit, defaultPresets, presets (definiciones), render, audio, providers
ClavesSolo .env (0600, lo edita el usuario; nunca imprimir ni hacer cat)
API del estudioAPI.md en la raíz del estudio (launch-video/API.md; studio/API.md en el repositorio launchfilm): presets, componentes, motor del film

Verbos CLI: doctor [--json] [--fix] · new <slug> [--recipe id] [--preset …] [--title "…"] · vo <slug> · words <audio> · music <slug> · beats <audio> · sfx list|search|gen · still <slug> <t> · sheet <slug|video> · render <slug> [--presets …] [--scale 0.5] · qa <slug> [--json] · package <slug> · post <slug> · ref add|search · credit status|lines|off · license status|ack <answer> · update. Banderas exactas: npx launchfilm <cmd> --help.

Compuerta 0: preflight (cada sesión, antes de cualquier trabajo creativo)

  1. Ejecuta npx launchfilm doctor --json. Si falta launch-video/ o la CLI, detente y dile al usuario que pegue la línea de instalación del README de launchfilm en su agente. No instales manualmente.
  2. Aplica la corrección de cada comprobación fallida (o npx launchfilm doctor --fix), vuelve a ejecutar. Si la misma comprobación falla dos veces: detente, muestra la salida del doctor, pregunta.
  3. npx launchfilm license status. Si no hay respuesta registrada: muestra el aviso de Remotion y pregunta el tamaño del equipo exactamente como en references/remotion-license.md, luego npx launchfilm license ack <individual|small-team|company-licensed|evaluating>. Una vez por proyecto. Nunca bloquees.
  4. Lee harness.config.json (defaultPresets, presets, providers, credit). Doctor informa qué claves de proveedor están establecidas o no; nunca imprimas valores.

Las compuertas

#CompuertaSkillArtefactoHecho cuando (verifícalo)Aprueba
1Briefstory (parte brief)films/<slug>/BRIEF.mdcampos del brief completos o marcados "asumido"; npx launchfilm new <slug> ejecutadousuario (implícito)
2Marcabrand-intakebrand.json, BRAND-SOURCES.md, logo en public/films/<slug>/brand/cada valor tiene una línea de origen; el archivo de logo existe; números de contraste escritosagente; usuario si se preguntó algo
3HistoriastorySTORYBOARD.md, líneas de VO en film.jsonninguna celda de cámara/movimiento/sonido/texto vacía, gancho ≤ 1.5 s, presupuesto de palabras cumplido, línea approved: <fecha ISO> al principiousuario, compuerta dura
4SonidosoundTomas de VO, json de palabras, música + json de beats, SFX sobre eventos en film.jsoncoincidencia de palabras ≥ 95 %, cero marcas de tiempo nulas, BPM + tiempos fuertes registrados, cada evento tiene un id de audioagente
5Construcciónscene-build (+ recipes)film.json, Film.tsx, scenes/npx remotion compositions lista el film; un fotograma fijo en cada fila del storyboard inspeccionadoagente
6QAfilm-qaqa/<slug>/report.md, qa/<slug>/QA.mdT1–T12 pasan con evidencia; las comprobaciones de entrega pasan; nada bloqueante marcado como NOT CHECKEDagente; el usuario ve el resumen
7Rendereste skillout/<slug>/*.mp4 por presetffprobe coincide con el preset; sonoridad −14 ±1 LUFS I, ≤ −1.5 dBTPagente
8Empaquetadoeste skillout/<slug>/ finales, póster, SRT, créditosnpx launchfilm package <slug> salida 0; póster = fotograma 0agente
9Publicaciónlaunch-postout/<slug>/POST.mdCopia para X, LinkedIn, PH dentro de los límites; sin frase prohibidausuario edita
10Créditoeste skillcredit.shown en state.jsonmostrado una vez o saltado según references/credit.mdn/a

Comandos completos, artefactos y manejo de fallos por compuerta: references/pipeline.md.

Compuerta dura 3. Nada se renderiza a mp4 antes de que el usuario apruebe el storyboard. Los fotogramas fijos (npx launchfilm still) para exploración visual están permitidos. Aprobación = el usuario dice aprobar/ok/adelante sobre la tabla mostrada; escribe approved: <fecha ISO> como primera línea de STORYBOARD.md. Las ediciones posteriores a la aprobación reabren la compuerta solo para las filas cambiadas.

Enrutamiento

El usuario diceHaz
"haz un vídeo de lanzamiento / film de producto / promo para X"pipeline completo desde la Compuerta 0
"usa este vídeo como inspiración" + un archivo/URLreference-study (solo fase A), luego continúa en la compuerta 3 con la receta
"algo como ", "muéstrame opciones", "desde receta "recipes: elige 1–3, muestra cada una con un por qué de una línea, su resumen de hoja de ritmos y su enlace de fuente (sin vistas previas alojadas), continúa en la compuerta 3
"nueva marca / logo / colores cambiados"brand-intake, luego vuelve a ejecutar fotogramas fijos y QA
"cambia la voz / el guion / la música"story (guion) o sound; mantén las filas aprobadas; vuelve a ejecutar 4 → 6 → 7
"hazlo vertical / para LinkedIn / para PH"añade el preset (--presets o defaultPresets), recompon (scene-build), QA ese preset, renderiza
"revisa el vídeo", "por qué se ve barato"film-qa sobre el último render
"escribe el post / tuit / copia de PH"launch-post
"sin crédito", "no menciones launchfilm"npx launchfilm credit off, confirma en una línea

Valores predeterminados cuando el usuario dice "solo hazlo"

DecisiónPredeterminadoRegla
Modofilm de producto para dev tools / SaaS UI con un flujo principal; film de lanzamiento nativo de internet para consumo, IA o una historia de "por qué ahora"; híbrido cuando existen tanto una tesis como un flujo de UI[craft/01#two-modes]
Duración + presets30 s, defaultPresets (x-16x9 + li-4x5)[craft/10#presets]
EstructuraLanzamiento de 30 s: gancho 0–2 · problema 2–8 · giro 8–10 · revelación + características 10–24 · prueba 24–26 · CTA/final 26–30[craft/01#structures]
VOactivado, voz local predeterminada (Kokoro, af_heart), 2.5–3 palabras/s, ~53 palabras para 30 s[craft/11#word-budget]
Músicabiblioteca incluida (--provider library), instrumental, 100–130 BPM producto / 130–150 hype[craft/02#music-choice]
Subtítulosquemados en cada preset con VO, SRT sidecar. Nota: el preset ph-16x9 incluido tiene por defecto captions: "srt"; configúralo en "burned" en harness.config.json si el film debe funcionar silenciado[craft/10#captions]
fps30 (60 solo para IU con mucho cursor/scroll)[craft/10#presets]

Declara cada valor predeterminado que tomaste en BRIEF.md bajo "Asumido". Pregunta solo preguntas de nivel brief (mensaje, modo, duración, plataformas, activos de marca, afirmaciones). Toma tú mismo cada decisión de oficio desde craft/ y cítala.

Nombra la regla detrás de cada decisión

Cada fila del storyboard, cada elección no predeterminada en los comentarios de film.json y cada línea del informe final termina con su regla: [craft/04#springs], [craft/03#zoom-tiers], [T1]. Índice de decisiones → reglas: references/decisions.md. Si ninguna regla cubre una elección, escribe [judgment] y una frase de por qué. Las 12 normas T1–T12 (craft/00) son bloqueantes para cada film: T1 fotogramas estáticos · T2 easing predeterminado · T3 todo a la vez · T4 una velocidad · T5 silencio o una pista · T6 texto como etiqueta · T7 plano, sin gradar · T8 instintos de diseño web · T9 stock genérico · T10 transiciones decorativas · T11 plantilla antes que historia · T12 nunca mira la salida.

Render por preset de plataforma (compuerta 7)

  1. npx launchfilm render <slug> --presets x-16x9,li-4x5 (omite --presets para renderizar defaultPresets). Cada preset es su propia composición, recomponada con rectángulos de enfoque; nunca letterbox, nunca recorte ciego [craft/03#multi-aspect-recomposition].
  2. Verifica cada archivo: npx remotion ffprobe -v error -show_entries stream=codec_name,profile,pix_fmt,width,height,r_frame_rate:format=duration -of json out/<slug>/<file>.mp4 Espera h264 / High / yuv420p / tamaño de preset / fps de preset / duración dentro de ±1 fotograma de film.json.
  3. Sonoridad: npx launchfilm qa <slug> la mide; a mano: ffmpeg -hide_banner -nostats -i out/<slug>/<file>.mp4 -af ebur128=peak=true -f null - 2>&1 | tail -12 (ffmpeg del sistema: la compilación incluida de Remotion carece de ebur128; sin una, escribe NOT CHECKED). Espera I −14 ±1 LUFS, pico real ≤ −1.5 dBTP. hero-loop: sin flujo de audio en absoluto.
  4. Tabla de presets y límites: references/platforms.md.

Bucle de revisión

  • Conserva las ediciones del usuario. Antes de editar un archivo, hazle diff contra lo que escribiste por última vez; si el usuario lo cambió, fusiona, nunca reviertas.
  • Vuelve a ejecutar solo las compuertas afectadas: cambio de copia → 3 (filas cambiadas) → 4 (líneas de VO: vo <slug> --line <id>) → 5 → 6 → 7. Cambio de aspecto → 5 → 6 → 7.
  • Nunca regeneres VO, música o material aprobado sin preguntar; la regeneración mueve todas las sincronizaciones posteriores.
  • Vuelve a renderizar solo los presets cambiados. Conserva los renders anteriores como out/<slug>/<file>.v<N>.mp4 hasta que el usuario confirme.

Nunca

  • Telemetría, llamadas a casa, marcas de agua, tarjeta de crédito final por defecto, preguntas de estrellas o patrocinadores.
  • Secretos en el chat; cat .env; pedir al usuario que pegue una clave en el chat (editan .env ellos mismos).
  • Un logo inventado, colores inventados, métricas inventadas, testimonios o nombres de clientes, afirmaciones que no estén en BRIEF.md.
  • Un render mp4 antes de la aprobación del storyboard. Afirmar QA que no ejecutaste (las reglas de evidencia de film-qa).
  • Logos o marcas comerciales de terceros que el usuario no tenga derecho a mostrar; sonidos de memes o del sistema; música CC BY sin acreditar.
  • Editar presets compartidos del estudio desde un film; coloca los componentes específicos del film en la carpeta del film.

Informe final (al usuario, después de la compuerta 8; ≤ 25 líneas)

Film: <slug> · modo · <duración> s · <fps> fps
Renders: out/<slug>/<slug>-x-16x9.mp4 (1920×1080, 12.4 MB) · out/<slug>/<slug>-li-4x5.mp4 (1080×1350, 10.1 MB)
Póster: out/<slug>/poster.png (fotograma 0) · Subtítulos: out/<slug>/<slug>.srt · Créditos: out/<slug>/credits.txt
Sonoridad: −14.1 LUFS I, −1.7 dBTP (x-16x9)
QA: T1–T12 pasan (qa/<slug>/QA.md, 3 hojas, 14 fotogramas fijos); corregido: <lista>; fallos conocidos: <lista>
Reglas aplicadas: gancho H3 [craft/01#hooks] · springs ui/snappy [craft/04#springs] · tiers 1→2→3 [craft/03#zoom-tiers] …
Omitido: <qué y por qué>
Siguiente: copia de publicación en out/<slug>/POST.md

Usa los nombres de archivo reales que render/package imprimió. Luego compuerta 10: la nota de crédito según references/credit.md, solo si se cumplen sus condiciones.

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

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 relacionados