Communitygithub.com

sohamthebuilder/finance-story

Cria um vídeo de histórias animadas de 60 segundos em formato 9:16 que explica ideias de finanças, bancos ou mercado (Sensex, Nifty, FPIs, taxa Selic, inflação, EMI, IPO…) através de um mundo de analogias em desenho animado, com narrador em inglês (sotaque indiano) ElevenLabs, música e efeitos sonoros suaves, cada quadro desenhado em código com Remotion usando o pipeline story-animator. Sem apresentador. Use sempre que o usuário pedir um vídeo de finanças, um explicador de notícias de mercado, um 'o que é X' sobre dinheiro, ou 'faz o próximo vídeo'.

O que é finance-story?

Este skill, **Finance Story**, é uma extensão especializada do pipeline story-animator para a criação automática de vídeos de histórias animadas com duração de 60 segundos no formato 9:16 (vertical) sobre temas de finanças, bancos e mercado, como Sensex, Nifty, FPIs, inflação, taxas de juros, IPO e outros. Ele funciona dentro do ecossistema de agentes de IA (Claude Code, Cursor, Codex) e, a partir das preferências do usuário, gera um vídeo completo: roteiro, storyboard, narração em inglês com sotaque indiano (voz Rameez da ElevenLabs), trilha sonora, efeitos sonoros e animações desenhadas em código com React e Remotion, utilizando o template do pipeline story-animator. O skill segue um fluxo de trabalho rigoroso de duas etapas (proposta sem custos e produção após aprovação), garantindo que todos os dados de mercado sejam verificados com múltiplas fontes, que o design siga o guia de marca (incluindo regras de segurança da SEBI) e que cada vídeo tenha uma capa personalizada e legendas prontas para Instagram e YouTube. Ao receber um tópico, o agente pesquisa, propõe um script com narração de ~150 palavras, storyboard e capa, espera a aprovação do usuário, e então gera o vídeo final com contato sheet, mixagem de áudio e renderização.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

História de Finanças

Uma ideia de finanças contada como uma história animada curta. Um mundo de analogia fofo (por exemplo, uma sala de aula cujo placar é o Sensex) carrega toda a explicação. Um narrador conta, e cada batida cai na palavra falada. Este é o pipeline story-animator, então leia ~/.claude/skills/story-animator/SKILL.md e seus references/ primeiro e siga-os. Este skill apenas adiciona as preferências do usuário para vídeos de finanças sobre ele.

Guia de marca primeiro. Leia /Users/sohambhattacharya/Documents/Personal/projects/story-animator/brand/BRAND.md antes de escrever qualquer coisa. Ele define a voz (simples, humana, sem travessões, sem ponto e vírgula, sem frases formais), a fórmula de história de 8 batidas, paleta, fontes, zonas seguras, formatos de legenda e as regras de segurança da SEBI (seção 7). Onde houver discordância com este arquivo, o guia vence. Os modelos de vídeo (capa, cartão de gancho, linha de texto, número grande, termo real e cartão final) estão em brand/studio/src/templates/reel.tsx. Copie ou importe-os para essas batidas e renderize a capa do vídeo com o skill finance-social.

O filme de referência aprovado (2026-11-04, "isso estava bom") é examples/sensex-classroom/ (Film.tsx, story.ts, audio_cues.json). Leia-o antes de construir um novo. Ele mostra o mundo de analogia, o placar, os personagens feijão, o token, a câmera em 9:16 e o cartão de encerramento.

As preferências do usuário (de feedback)

  1. Sem apresentador. Nunca desenhe um host ou personagem falando na parte inferior. O usuário abandonou o estilo antigo de apresentador "finance-reel" e todas as suas regras (voz Zara, Hinglish, o visual minimalista de um número por tela). Não os traga de volta a menos que solicitado.

  2. Visual story-animator. Um mundo de desenho animado suave e plano, como um livro infantil, com personagens fofos (corpos redondos de feijão, olhos grandes via Face), uma fonte de luz quente, movimentos suaves de câmera, legendas em Patrick Hand. A cor conta a história: quente para tempos bons, cinza-azulado para "sombrio", quente novamente na virada.

  3. Um mundo de analogia para todo o filme. Mapeie cada conceito para algo naquele mundo:

    • o índice é o placar ou quadro-negro na parede, mostrando o número real;
    • as empresas são os alunos, e empresas maiores são alunos maiores;
    • dinheiro estrangeiro (FPIs) são aviões de papel voando para fora e de volta pela janela;
    • petróleo são barris nas mesas que encolhem quando o petróleo fica mais barato. Mantenha a forma da história: configuração → problema (algo sombrio) → virada ("Então... duas coisas mudaram") → recompensa (o número pula) → um resumo de uma linha. Escolha um objeto token que sai e volta (o avião de papel).
  4. Idioma e voz: Narração em inglês, voz Rameez | Documentary Narrator (RG0hCuGFvl2jxhd4LmtU, sotaque indiano-inglês), modelo eleven_v4, 2 takes. Soletre siglas com pontos (F.P.I.s) e escreva números por extenso ("doze cem e vinte e cinco"). Use tags leves apenas: [excited], [curious], [warm, storytelling], [softly], [building], [brightly], [delighted], [warmly]. Transcreva ambos os takes com --model medium e mantenha aquele que diz todas as palavras. No vídeo #1, o take B disse "industries" em vez de "investors".

  5. Formato e duração: 9:16, 60 s (durationFrames: 1800). Rameez fala cerca de 2,7 palavras/s: 132 palavras renderam 49,5 s. Então escreva cerca de 150–155 palavras para preencher 60 s com voz. Caso contrário, os últimos ~10 s são uma comemoração + cartão final sobre música, o que o usuário aceitou.

  6. Números honestos. Verifique cada dado com uma pesquisa na web (modo estendido para dados de mercado, duas ou mais fontes). Mostre os números reais (fechamento do índice, os pontos movidos) no placar, e não mostre um número sobre o qual as fontes discordam (no vídeo #1, o preço do Brent). Liste as fontes para o usuário com links. Dados de mercado (Sensex, Nifty, preços de ações) podem ser recentes ou antigos, mas devem ser verificados com duas ou mais fontes e trazer sua data exata (regra alterada pelo usuário, 2026-11-05). Números econômicos (Selic, IPCA, PIB) usam o número oficial mais recente com sua data. Salve cada número em sources.md na pasta do vídeo (BRAND.md 7.3).

  7. Cartão final (os últimos ~7 s): o conceito em uma linha ("Sensex: a média da classe das 30 maiores empresas da Índia"), uma linha relacionada, então "Apenas para educação. Não é um conselho de investimento." e uma linha de figuras/fonte com a data. Sem logotipos de empresas reais.

  8. Som: música mais 3 efeitos sutis (um suave swish de avião de papel, uma cascata de moedas leve, um toque brilhante e suave), cada um colocado logo após sua palavra-chave. Música: eleven_music_v2_5, 1 take, pizzicato e marimba divertidos, com um arco que segue a história (um mergulho para a parte sombria, um crescendo na virada, um levantar alegre na recompensa). Misture com música gain_db cerca de −3,5 e sfx_bus_db −13. Isso deu ao fundo 16,8 dB abaixo de Rameez; a −9 estava muito baixo (22 dB).

  9. Final de salvar e compartilhar (todo vídeo). A última linha do narrador pede aos espectadores para salvar e compartilhar o vídeo se acharam útil, e menciona finance.unboring. Adapte ao tópico, por exemplo, "Achou útil? Salve para a próxima vez que alguém disser 'o Sensex subiu', e compartilhe com um amigo que ainda não entendeu. Siga finance ponto unboring para mais." Escreva o handle como "finance ponto unboring" na narração para que seja falado corretamente, e como @finance.unboring no cartão final, abaixo da linha do conceito e acima do aviso legal. Conte esta linha no orçamento de ~150 palavras.

  10. Capa personalizada (todo vídeo, regra de 2026-11-07). Nunca ofereça um quadro do vídeo como capa. Os quadros pareciam pouco atraentes no feed e não davam motivo para abrir. Cada vídeo é enviado com sua própria capa 1080×1920 que (a) declara o tópico, (b) deixa o espectador curioso com uma pergunta ou lacuna que o vídeo realmente responde, e (c) mostra Mini reagindo, mais gráficos desenhados para este tópico. Uma palavra de ouro, título máximo de 5 palavras, tudo dentro da área central 3:4 (BRAND.md 5.1).

Fluxo de trabalho: duas portas, nada gasto antes da aprovação

O usuário fornece as entradas: conceito para ensinar, ideia de gancho, ângulo da história (e opcionalmente uma notícia).

Porta 1: proposta (uma mensagem, sem créditos gastos)

  1. Verifique cada dado (WebSearch estendido, duas ou mais fontes).
  2. Envie UMA mensagem com quatro partes para o usuário confirmar:
    • Roteiro: a espinha em três frases, o token e a narração completa (cerca de 150 palavras). A narração TERMINA com a linha de salvar e compartilhar (regra 9 abaixo).
    • Voz: a voz proposta (padrão Rameez, RG0hCuGFvl2jxhd4LmtU) com seu preview_url gratuito de creative_list_voices, mais 1–2 alternativas com links de pré-visualização se o tópico sugerir uma sensação diferente.
    • Storyboard: a tabela de batidas (# / linha de narração / o que vemos / câmera), incluindo o cartão final.
    • Capa: tag do tópico, título de curiosidade (palavra de ouro marcada) e o que Mini e a arte estão fazendo. Liste também as fontes e o custo (narração cerca de 1.800 créditos para 2 takes, música 900, efeitos cerca de 17 cada, cerca de 2.750 no total).
  3. Pare e aguarde. Não gaste créditos e não renderize nada até que o usuário confirme todas as quatro. Se eles mudarem algo, envie a parte revisada e aguarde novamente.

Porta 2: produção (após o usuário confirmar)

  1. Projeto: cp -R ~/.claude/skills/story-animator/template ./<slug> ao lado dos outros projetos, npm install, e reutilize um venv existente do faster-whisper (ln -s ../sensex-class-average/.venv .venv) ou crie um. Defina SHAPES["9:16"].
  2. Voz → tempo → story.ts (SUBS, CUES, CAM), como nos Passos 4–5 do story-animator.
  3. Desenhe: comece de examples/sensex-classroom/Film.tsx quando a analogia se encaixar, e reutilize suas peças (Room, WindowPane, SunShaft, Board, Bean, Desk, Plane + arcAt, Confetti, Card). Caso contrário, construa um novo mundo no mesmo estilo.
  4. Folha de contato em cada batida, e corrija:
    • Em 9:16, mantenha os sujeitos acima das legendas. O cy da câmera na visão geral era cerca de 560 para linhas no mundo y 478–790. Em cy 520 as legendas ficavam na linha da frente.
    • Nunca deixe metade do quadro vazia. Em um close-up no quadro, mantenha os personagens visíveis abaixo dele (eles estão sempre na tela e fazem um pulo de "olá" em sua deixa, em vez de aparecerem do nada).
    • O mundo visível em 9:16 é cerca de 607/z × 1080/z. Para um momento de "50 deles", recue para z ≈ 0,58.
  5. Capa: desenhe-a no próprio mundo e personagens do projeto do vídeo, ou estenda ReelCover em brand/studio/src/templates/reel.tsx com nova arte. Renderize-a em out/cover.png. Verifique o corte 3:4 e um tamanho pequeno de feed de celular (cerca de 360 px de largura): o tópico e o título ainda devem ser legíveis.
  6. Som → mixagem → renderização → ffprobe (1080×1920, h264 + aac, 60 s). Envie o vídeo e a capa. Relate a voz, os créditos gastos, o que foi medido e as fontes. Peça ao usuário para assistir e ouvir uma vez.

Após a saída: descrições (sempre, na mesma mensagem de entrega)

Os vídeos são publicados a partir de @finance.unboring no Instagram (Reels) e YouTube (Shorts). Com cada vídeo finalizado, forneça texto pronto para colar em blocos de código:

  • Legenda do Instagram: uma linha de gancho; 3–5 linhas curtas da explicação; uma linha de salvar e compartilhar + seguir @finance.unboring; "Dados: <fonte, data>. Apenas para educação. Não é um conselho de investimento."; 3–5 hashtags incluindo #financeunboring (Instagram limita posts a 5). Siga os modelos exatos na seção 6 do BRAND.md.
  • Título do YouTube Shorts: menos de 70 caracteres, terminando em #Shorts.
  • Descrição do YouTube: 2–3 linhas da explicação, siga @finance.unboring, as fontes, o aviso legal e 4–6 hashtags.

Habilidades Relacionadas