name: infofilm description: Crea una película explicativa narrada con infografías (normalmente de 5 a 15 minutos) sobre un tema real — cómo funciona un sistema, qué pasó, qué sucederá después — al estilo de un noticiero de tarjetas instructivas de los años 50 con una mascota de pantomima, un narrador entusiasta, cortes comerciales cantados e infografías dibujadas con código que aparecen al ritmo de la palabra hablada. Pipeline: investigación → guion verificado → narrador ElevenLabs con marcas de tiempo por carácter → tema, fondos y jingles de Suno → ilustraciones de Gemini → escenas de Remotion sincronizadas con las palabras → master −14 LUFS + SRT. Úsalo cuando el usuario pida una película explicativa, un video infográfico, "un video que explique…", "gör en film om…", un video estilo noticiero sobre un tema, u otra película "como la del video electoral".
infofilm: películas explicativas con infografías
Una película creada con este skill es una baraja de tarjetas instructivas colocadas sobre una mesa azul marino. Cada tarjeta tiene una banda de título, una ventana de imagen y una banda de pie de foto. Una ilustración generada por IA aparece en la ventana, y infografías dibujadas con código llegan sobre ella en la palabra exacta que las nombra. Un narrador de noticiero transmite el significado, y una mascota lo representa en pantomima sin hablar nunca. Los cortes comerciales cantados y una balada de cierre le dan ritmo a la película.
Cada número, título y etiqueta se dibuja mediante código a partir de una base de hechos. Las imágenes nunca contienen texto.
La plantilla en template/ es una película completa y funcional: una demostración de un minuto sobre los años bisiestos. Puedes usarla como base y luego reemplazar la demostración con tu película pieza por pieza. La película se renderiza en cada paso: las escenas sin un componente muestran su tarjeta, y las escenas sin narración obtienen una duración estimada. De esa manera siempre puedes ver el conjunto antes de gastar dinero.
Reglas permanentes (prevalecen sobre la conveniencia)
- Dinero: preguntar primero. ElevenLabs, la generación de imágenes y las descargas de Suno cuestan dinero real o consumen cuota. Antes de cada lote de pago, indica qué es, cuántos elementos y el costo estimado;
--dry-runlo imprime. Espera una respuesta afirmativa. Un "sí" cubre solo ese lote, a menos que el usuario haya dado una aprobación permanente ("tienes luz verde para imágenes, voz y música"). Registra cada aprobación y costo ennotes/log.md. - Nunca adivinar un hecho.
- Cada afirmación y número proviene de
notes/research.md, que cita fuentes primarias. Cada número en pantalla proviene devideo/src/data.ts, que cita la sección de investigación. - Los eventos actuales deben verificarse con fuentes primarias. Si algo no se puede verificar, no aparece en la película, o la escena espera; consulta "Escenas que esperan" en references/script.md.
- Cada afirmación y número proviene de
- El texto y los números se dibujan mediante código, nunca con el modelo de imagen. Las indicaciones de imagen prohíben el texto, y cada imagen se inspecciona de todos modos.
- El usuario escucha, Whisper no. Nunca transcribas el habla generada para verificarla; Whisper oye más errores de los que hay. En su lugar, dale al usuario una página para escuchar.
- Sátira imparcial. La ironía apunta al sistema, la máquina y el espectáculo, nunca a un partido, grupo o persona. Trata a los bandos de manera idéntica en tamaño, lógica de color y animación. Sin personas reales ni logotipos en las imágenes.
- Diacríticos correctos en todas partes (å ä ö é ü …), incluso en las indicaciones a los subagentes. Indícalo explícitamente a cada subagente.
- Lee las palabras del usuario literalmente. "Distópico", "retro" o "tipo Fallout" son estados de ánimo, no listas de accesorios. Cuando una palabra de estilo pueda significar varias cosas, muestra propuestas y confirma antes de construir sobre ella (consulta references/style.md).
El pipeline
Trabaja a través de estas fases en orden. Los pasos ⛔ son puntos de control: detente y obtén la decisión del usuario antes de continuar.
0 · Inicio
- Confirma el tema, la audiencia, el idioma, la duración (por defecto unos 12 minutos) y el propósito. Verifica
ELEVENLABS_API_KEYyOPENROUTER_API_KEYen el entorno, Chrome con la extensión claude-in-chrome y un inicio de sesión en Suno, ynode,pnpm/npm,ffmpegypython3connumpyyelevenlabs. - Crear la base:
Esto copia la plantilla, instala Remotion, sintetiza los efectos de sonido, construye una primera línea de tiempo y verifica tipos.<skill>/scripts/new_film.sh <dir> --slug my-film --title "My Film" --lang sv --locale sv-SE - Mantén las decisiones en
notes/log.md, con fechas y quién decidió. - Los renderizados necesitan espacio. Verifica
df -h, y apuntaOUTDIRa un disco grande cuando el disco del sistema tenga menos de unos 20 GB libres.
1 · Investigación → notes/research.md
- Escribe secciones numeradas (
## 2.3 · El umbral), un hecho o grupo por sección, cada una con su fuente primaria: legislación, estadísticas oficiales, las páginas de la autoridad. - Marca cualquier cosa incierta. Para un evento reciente, registra la fecha para la cual los hechos son válidos.
- Consulta references/script.md.
2 · Aspecto y reparto ⛔
- Reutiliza el estilo de la casa (crema, azul marino y tinta dorada; retrofuturismo de 1957; Bowlby One SC + Jost + Lobster) o propón alternativas. Renderiza la misma infografía pequeña en 3 a 7 estilos para que el usuario compare elementos similares.
- Elige la mascota: un hombre común silencioso con un gesto característico (la mascota de la casa se quita el sombrero). Evita gestos que pertenezcan a mascotas famosas, como un guiño con el pulgar hacia arriba.
- Genera primero el retrato de referencia (
kind: "ref"), luego una hoja de modelo, y haz que sean aprobados antes de crear cualquier imagen de escena. - ⛔ El usuario elige el estilo, la mascota, el gesto y las fuentes. Detalles: references/style.md y references/images.md.
3 · Guion → script/script.md ⛔
- Estructura: un tema de apertura, 2 a 4 partes, un corte comercial entre partes y una balada de cierre. Cada escena es una tarjeta de 15 a 40 segundos.
- El presupuesto de palabras es minutos × aproximadamente 127 palabras por minuto para un narrador de noticiero.
- Escribe los números con letra en la narración; las tarjetas muestran los dígitos exactos.
- Evita palabras ligadas a fechas como "el lunes". La película sobrevive a la semana.
- Revisión antes de que alguien pague. Haz que un subagente independiente verifique el guion y la investigación con fuentes primarias, clasificando sus hallazgos en DEBE, DEBERÍA y PODRÍA. Corrige todo lo calificado como DEBE. Las revisiones han detectado errores en la propia investigación.
- ⛔ El usuario aprueba el guion. Formato y artesanía: references/script.md.
4 · Narrador ⛔
- Diseña 3 tomas con
voice/design_voice.py preview <tag>(pregunta primero), y deja que el usuario elija una. Guárdala concreate. - Haz una lectura de prueba de 2 escenas representativas y deja que el usuario apruebe el ritmo y la pronunciación.
- Lee todo:
python3 voice/narrate.py --dry-run, luego pregunta, luego ejecútalo.
Edita una escena más tarde y solo se facturará esa escena nuevamente. Detalles y dificultades: references/voice.md.
5 · Música (Suno, interfaz web oficial, a través de Chrome)
Necesitas estas pistas:
- un tema de apertura de unos 20 segundos, que funcione brillantemente en modo Speech como una voz de armonía cercana e inexpresiva
- un fondo instrumental por parte, en bucle y atenuado bajo la voz
- un jingle cantado para cada corte comercial
- una balada de cierre, típicamente una versión del tema.
Indica modismos estadounidenses de los años 50; palabras de género como "schlager" llevan la música a otro lugar. Al usuario le gustan las tomas de Suno, a menos que te haya dado la opción. Descarga WAV a través del menú de Suno, obtén las letras alineadas para los puntos de corte y escribe music/cuts.json y video/src/lyrics.ts. Detalles: references/music.md.
6 · Ilustraciones
- Una imagen 21:9 2K por escena,
film-Sxxenart/shots.json, dibujada a partir de la referencia de la mascota. Costo:python3 art/gen.py --dry-run, luego pregunta. - Revisa cada imagen en busca de texto, accesorios duplicados, extremidades adicionales y la vestimenta incorrecta, y regenera las malas.
- Ejecuta
python3 tools/sync_art.pyy luegopython3 tools/build_timeline.py. Detalles: references/images.md.
7 · Escenas (Remotion)
- Construye dos escenas doradas tú mismo: las escenas que contienen las infografías centrales de la película. Haz que cumplan con el estándar y regístralas en
golden.ts, reemplazandoTheYear/TheRulede la demostración. - Luego distribuye el trabajo a 2 o 3 subagentes constructores paralelos con
video/CONTRACT.md(completa sus líneas{{…}}). Cada constructor tiene su propio registro de grupo y verifica con hojas de contacto. - Los constructores pueden comenzar antes de que exista la narración, porque las señales siguen las palabras estimadas y luego se mueven a las reales por sí mismas. Si el guion cambia mientras trabajan (llega una revisión), envía a cada constructor los cambios exactos para sus escenas con SendMessage.
- Revisa tú mismo la hoja de cada escena.
- Detalles: references/scenes.md.
8 · Renderizado y entrega
- Ejecuta
tools/render.sh. Reconstruye la línea de tiempo, verifica las señales de entrada, verifica tipos, renderiza, aplica loudnorm de dos pasos a −14 LUFS / −1 dBTP y escribe el SRT. - Verifica la sonoridad por segmento y revisa fotogramas del mp4, luego abre la película para el usuario.
- Detalles: references/render.md.
9 · Revisiones
- Texto cambiado: vuelve a narrar solo esa escena, luego reconstruye la línea de tiempo. Las señales siguen las palabras automáticamente.
- Imagen cambiada: regenera la imagen, sincroniza, reconstruye.
- Música cambiada: edita
cuts.json.
Las correcciones visuales no cuestan nada más que un nuevo renderizado; solo la narración, las imágenes o las descargas nuevas cuestan dinero.
Mapa de la plantilla
| Ruta | Qué es |
|---|---|
film.json | título, slug, idioma, configuración regional, kickers de partes y fondos, música de intro/after de escena, modelo TTS, outDir |
script/script.md | el manuscrito: ## Sxx · nombre, <!-- title: -->, <!-- facts: -->, > visual:, narración |
notes/research.md, notes/log.md | la base de hechos; decisiones y costos |
voice/ | design.json + design_voice.py (diseño de voz), narrate.py (narración + marcas de tiempo), listen.py (página de escucha), voice.json |
music/ | suno/*.wav, cuts.json, tools/beats.py (tempo), tools/suno_lines.py (letras alineadas → líneas) |
art/ | style.json (el aspecto, la lista de lo que nunca se hace), shots.json, gen.py, img/ |
tools/ | build_timeline.py, cues.py, lint_cues.py, make_srt.py, sync_art.py, art_sheet.py, unframe.py, make_sfx.py, render.sh |
video/src/ | theme.ts, fonts.ts, timing.tsx (useScene, cue), data.ts, lyrics.ts, Music.tsx, primitives/ (Card, Bits, Film, Jingle, Hemicycle), scenes/ |
video/tools/ | stills.mjs (hoja de contacto de fotogramas seleccionados), review.mjs (N fotogramas por escena, muchas escenas) |
Trampas conocidas, con sus soluciones: references/pitfalls.md.