Communitygithub.com

sohamthebuilder/finance-story

Genera un video animado de 60 segundos en formato 9:16 que explica un concepto financiero (Sensex, Nifty, FPIs, tasa repo, inflación, EMI, IPO...) a través de un mundo de analogías animadas, con narrador en inglés (acento indio) de ElevenLabs, música y efectos sutiles, cada fotograma dibujado en código con Remotion usando el pipeline story-animator. Sin presentador. Úsalo cuando el usuario pida un reel financiero, un explicador de noticias del mercado, un vídeo 'qué es X' sobre dinero, o 'haz el siguiente reel'.

¿Qué es finance-story?

Este skill de agente de IA genera automáticamente reels animados cortos (60 segundos, 9:16) que explican conceptos financieros complejos (como Sensex, Nifty, FPIs, inflación, etc.) utilizando un mundo de analogías animadas. Se basa en el pipeline 'story-animator' para la generación de video con Remotion y ElevenLabs para la narración. El skill sigue un flujo de trabajo de dos puertas: primero propone un guion, storyboard y portada sin gastar créditos, y solo después de la aprobación del usuario procede a la producción completa (voz, música, efectos, renderizado). Está diseñado específicamente para la cuenta de Instagram/YouTube @finance.unboring, con reglas estrictas sobre el tono, la verificación de datos (con dos fuentes como mínimo), y el formato de salida (subtítulos, portada diseñada, sonido mezclado). No incluye presentador humano y utiliza un estilo visual de libro ilustrado suave y plano con personajes redondos tipo frijol. Cada reel termina con un llamado a guardar y compartir, y un descargo de responsabilidad educativo.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/sohamthebuilder/insta-studio/tree/HEAD/examples/finance-unboring

Preguntar en tu IA favorita

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

Documentación

Finance Story

Una idea financiera contada como una breve historia animada. Un mundo de analogía simpático (por ejemplo, un aula cuyo marcador es el Sensex) sostiene toda la explicación. Un narrador la cuenta, y cada golpe cae sobre la palabra hablada. Este es el pipeline story-animator, así que lee ~/.claude/skills/story-animator/SKILL.md y sus references/ primero y síguelos. Este skill solo añade las preferencias del usuario para reels financieros sobre eso.

Guía de marca primero. Lee /Users/sohambhattacharya/Documents/Personal/projects/story-animator/brand/BRAND.md antes de escribir nada. Establece la voz (simple, humana, sin guiones largos, sin punto y coma, sin frases formales), la fórmula de 8 tiempos, la paleta, las fuentes, las zonas seguras, los formatos de subtítulos y las reglas de seguridad SEBI (sección 7). Donde discrepe con este archivo, gana la guía. Las plantillas de reel (portada, tarjeta de gancho, tarjeta de texto, número grande, término real y tarjeta final) están en brand/studio/src/templates/reel.tsx. Cópialas o impórtalas para esos tiempos, y renderiza la portada del reel con el skill finance-social.

La película de referencia aprobada (2026-11-04, "esto estuvo bien") es examples/sensex-classroom/ (Film.tsx, story.ts, audio_cues.json). Léela antes de construir una nueva. Muestra el mundo de analogía, el marcador, los personajes frijol, el token, la cámara en 9:16 y la tarjeta de cierre.

Las preferencias del usuario (de los comentarios)

  1. Sin presentador. Nunca dibujes un presentador o personaje parlante en la parte inferior. El usuario descartó el antiguo estilo de presentador "finance-reel" y todas sus reglas (voz Zara, hinglish, el aspecto mínimo de un número por pantalla). No los recuperes a menos que se te pida.

  2. Aspecto story-animator. Un mundo animado de libro ilustrado suave y plano con personajes simpáticos (cuerpos redondos de frijol, ojos grandes mediante Face), una fuente de luz cálida, movimientos de cámara suaves, subtítulos Patrick Hand. El color cuenta la historia: cálido para los buenos momentos, gris azulado para "sombrío", cálido de nuevo en el giro.

  3. Un mundo de analogía para toda la película. Asigna cada concepto a algo en ese mundo:

    • el índice es el marcador o pizarrón en la pared, que muestra el número real;
    • las empresas son los estudiantes, y las empresas más grandes son estudiantes más grandes;
    • el dinero extranjero (FPIs) son aviones de papel que vuelan hacia afuera y regresan por la ventana;
    • el petróleo son barriles en los escritorios que se encogen cuando el petróleo se abarata. Mantén la forma de la historia: configuración → problema (algo sombrío) → giro ("Entonces… dos cosas cambiaron") → recompensa (el número sube) → una conclusión de una línea. Elige un objeto token que se vaya y regrese (el avión de papel).
  4. Idioma y voz: Narración en inglés, voz Rameez | Documentary Narrator (RG0hCuGFvl2jxhd4LmtU, acento indo-inglés), modelo eleven_v4, 2 tomas. Deletrea los acrónimos con puntos ("F.P.I.s") y escribe los números como palabras ("docecientos veinticinco"). Usa solo etiquetas ligeras: [excited], [curious], [warm, storytelling], [softly], [building], [brightly], [delighted], [warmly]. Transcribe ambas tomas con --model medium y conserva la que dice cada palabra. En el reel #1, la toma B dijo "industries" en lugar de "investors".

  5. Forma y duración: 9:16, 60 s (durationFrames: 1800). Rameez habla a aproximadamente 2.7 palabras/s: 132 palabras dieron 49.5 s. Así que escribe alrededor de 150–155 palabras para llenar 60 s con voz. De lo contrario, los últimos ~10 s son un aplauso + tarjeta de cierre sobre música, lo cual el usuario aceptó.

  6. Números honestos. Verifica cada cifra con una búsqueda web (modo extendido para datos de mercado, dos o más fuentes). Muestra las cifras reales (cierre del índice, los puntos movidos) en el marcador, y no muestres una cifra en la que las fuentes no coincidan (en el reel #1, el precio del Brent). Enumera las fuentes para el usuario con enlaces. Los datos de mercado (Sensex, Nifty, precios de acciones) pueden ser recientes o antiguos, pero deben verificarse con dos o más fuentes y llevar su fecha exacta (regla cambiada por el usuario, 2026-11-05). Las cifras económicas (repo, IPC, PIB) usan la última cifra oficial con su fecha. Guarda cada número en sources.md en la carpeta del reel (BRAND.md 7.3).

  7. Tarjeta de cierre (los últimos ~7 s): el concepto en una línea ("Sensex: el promedio de la clase de las 30 empresas más grandes de la India"), una línea relacionada, luego "Solo con fines educativos. No es asesoramiento de inversión." y una línea de cifras/fuente con la fecha. Sin logotipos de empresas reales.

  8. Sonido: música más 3 efectos sutiles (un suave silbido de avión de papel, una cascada de monedas ligera, un campanilleo suave y brillante), cada uno colocado justo después de su palabra clave. Música: eleven_music_v2_5, 1 toma, pizzicato y marimba juguetones, con un arco que sigue la historia (un descenso para la parte sombría, un aumento en el giro, un levantamiento alegre en la recompensa). Mezcla con gain_db de música alrededor de −3.5 y sfx_bus_db −13. Eso dio al fondo 16.8 dB por debajo de Rameez; a −9 estaba demasiado bajo (22 dB).

  9. Final de guardar y compartir (cada reel). La última línea del narrador pide a los espectadores que guarden y compartan el reel si les resultó útil, y menciona finance.unboring. Adáptalo al tema, p. ej. "¿Te resultó útil? Guárdalo para la próxima vez que alguien diga 'el Sensex está arriba', y compártelo con un amigo que todavía no lo entiende. Sigue a finance punto unboring para más." Escribe el identificador como "finance punto unboring" en la narración para que se pronuncie correctamente, y como @finance.unboring en la tarjeta de cierre, debajo de la línea del concepto y encima del descargo de responsabilidad. Cuenta esta línea en el presupuesto de ~150 palabras.

  10. Portada diseñada (cada reel, regla del 2026-11-07). Nunca ofrezcas un fotograma del reel como portada. Los fotogramas se veían poco atractivos en el feed y no daban razón para abrirlo. Cada reel se envía con su propia portada de 1080×1920 que (a) indica el tema, (b) hace que el espectador sienta curiosidad con una pregunta o brecha que el reel realmente responde, y (c) muestra a Mini reaccionando, más gráficos dibujados para este tema. Una palabra dorada, título de máximo 5 palabras, todo dentro del área media 3:4 (BRAND.md 5.1).

Flujo de trabajo: dos puertas, nada gastado antes de la aprobación

El usuario proporciona las entradas: concepto a enseñar, idea de gancho, ángulo de la historia (y opcionalmente una noticia).

Puerta 1: propuesta (un mensaje, sin créditos gastados)

  1. Verifica cada cifra (WebSearch extendido, dos o más fuentes).
  2. Envía UN mensaje con cuatro partes para que el usuario confirme:
    • Guion: la columna vertebral en tres oraciones, el token y la narración completa (aproximadamente 150 palabras). La narración TERMINA con la línea de guardar y compartir (regla 9 siguiente).
    • Voz: la voz propuesta (por defecto Rameez, RG0hCuGFvl2jxhd4LmtU) con su preview_url gratuita de creative_list_voices, más 1–2 alternativas con enlaces de vista previa si el tema sugiere una sensación diferente.
    • Storyboard: la tabla de tiempos (# / línea de narración / qué vemos / cámara), incluyendo la tarjeta de cierre.
    • Portada: etiqueta del tema, título de curiosidad (palabra dorada marcada), y qué están haciendo Mini y el arte. También enumera las fuentes y el costo (narración aproximadamente 1800 créditos por 2 tomas, música 900, efectos alrededor de 17 cada uno, aproximadamente 2750 en total).
  3. Detente y espera. No gastes créditos ni renderices nada hasta que el usuario confirme las cuatro partes. Si cambian algo, envía la parte revisada y espera de nuevo.

Puerta 2: producción (después de que el usuario confirme)

  1. Proyecto: cp -R ~/.claude/skills/story-animator/template ./<slug> junto a los otros proyectos, npm install, y reutiliza un venv existente de faster-whisper (ln -s ../sensex-class-average/.venv .venv) o crea uno. Establece SHAPES["9:16"].
  2. Voz → temporización → story.ts (SUBS, CUES, CAM), como en los Pasos 4–5 de story-animator.
  3. Dibujo: comienza desde examples/sensex-classroom/Film.tsx cuando la analogía encaje, y reutiliza sus piezas (Room, WindowPane, SunShaft, Board, Bean, Desk, Plane + arcAt, Confetti, Card). De lo contrario, construye un mundo nuevo en el mismo estilo.
  4. Hoja de contacto en cada tiempo, y corrige:
    • En 9:16 mantén los sujetos por encima de los subtítulos. El cy de la cámara del plano general era aproximadamente 560 para filas en el mundo y 478–790. En cy 520 los subtítulos estaban sobre la primera fila.
    • Nunca dejes la mitad del encuadre vacía. En un primer plano del pizarrón, mantén los personajes visibles debajo de él (siempre están en pantalla y hacen un saludo de "hola" en su cola en lugar de aparecer de la nada).
    • El mundo visible en 9:16 es aproximadamente 607/z × 1080/z. Para un momento de "50 de ellos", retrocede a z ≈ 0.58.
  5. Portada: dibújala en el propio mundo y personajes del proyecto del reel, o extiende ReelCover en brand/studio/src/templates/reel.tsx con nuevo arte. Renderízala en out/cover.png. Verifica el recorte 3:4 y un tamaño pequeño de feed de teléfono (aproximadamente 360 px de ancho): el tema y el título deben seguir siendo legibles.
  6. Sonido → mezcla → renderizado → ffprobe (1080×1920, h264 + aac, 60 s). Envía el reel y la portada. Informa la voz, los créditos gastados, lo que se midió y las fuentes. Pide al usuario que lo vea y escuche una vez.

Después de la salida: descripciones (siempre, en el mismo mensaje de entrega)

Los reels se publican desde @finance.unboring en Instagram (Reels) y YouTube (Shorts). Con cada reel terminado, proporciona texto listo para pegar en bloques de código:

  • Leyenda de Instagram: una línea de gancho; 3–5 líneas cortas de la explicación; una línea de guardar y compartir + sigue a @finance.unboring; "Datos: <fuente, fecha>. Solo con fines educativos. No es asesoramiento de inversión."; 3–5 hashtags incluyendo #financeunboring (Instagram limita las publicaciones a 5). Sigue las plantillas exactas en la sección 6 de BRAND.md.
  • Título de YouTube Shorts: menos de 70 caracteres, terminando en #Shorts.
  • Descripción de YouTube: 2–3 líneas de la explicación, sigue a @finance.unboring, las fuentes, el descargo de responsabilidad y 4–6 hashtags.

Skills relacionados