Communitygithub.com

iqam20/git2video

Transforme o histórico real de um repositório Git (tags, commits, diffs) em um vídeo de lançamento polido — MP4/WebM/GIF, totalmente offline, gratuito, com um loop de QA scriptado.

O que é git2video?

Esta skill permite que um agente de IA (como Claude Code, Cursor ou Codex) converta o histórico real de commits, tags e diffs de um repositório Git em um vídeo profissional de lançamento (MP4, WebM ou GIF). O processo segue um pipeline completo e local: coleta dos dados do Git em um arquivo JSON, criação de um storyboard textual com narração e cenas, validação rigorosa das informações, renderização offline e uma etapa de garantia de qualidade (QA) que gera um relatório detalhado. A skill é útil para gerar automaticamente vídeos de changelog, anúncios de release ou clipes de atualização, garantindo que todos os dados mostrados (como commits, estatísticas e contribuidores) sejam precisos e rastreáveis. Ela opera 100% localmente, sem enviar dados para a rede durante a renderização, e limpa automaticamente informações sensíveis (como e-mails) dos diffs. O fluxo é determinístico e inclui um rigoroso ciclo de QA com no máximo três iterações de correção, garantindo um resultado confiável.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/iqam20/git2video/tree/HEAD/skills/git2video

Perguntar na sua IA favorita

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

Documentação

git2video — vídeo de lançamento a partir do histórico real do Git

Lê o histórico real de commits de um repositório Git e produz um vídeo de lançamento preciso e polido: coletar → storyboard → validar → renderizar → qa → entregar. Funciona 100% localmente (Node ≥ 22, ffmpeg, Playwright Chromium — verifique com doctor primeiro). Sem uso de rede durante a renderização; segredos são removidos de diffs; e-mails nunca aparecem na saída.

skills/git2video/scripts/doctor.mjs     # verifica o ambiente, corrige linhas com MISSING
scripts/collect.mjs                     # git -> story.json (commits agrupados, breaking changes, estatísticas, hunks sanitizados)
scripts/validate.mjs                    # storyboard sem áudio deve passar antes da renderização
scripts/render.mjs                      # storyboard -> video.mp4 (+ webm/gif), layout-audit.json
scripts/qa.mjs                          # gate scriptado: report.json + report.md em out/qa/
references/storyboard-guide.md          # tipos de cena, formatos de dados, regras de escrita — leia antes de criar
references/faq.md                       # solução de problemas

Fluxo de trabalho

1. Coletar o histórico.

node skills/git2video/scripts/collect.mjs --repo <dir-do-repo> --out /tmp/g2v/story.json \
  [--from <tag|sha|YYYY-MM-DD>] [--to HEAD] [--max-commits 400] [--include-contributors] [--gh]

Padrão: última tag → HEAD; sem tag: últimos 30 dias. Leia /tmp/g2v/story.json após.

2. Criar storyboard.json (você, o agente — leia references/storyboard-guide.md primeiro). Regra geral para um vídeo de lançamento de 30–45s:

título (3–4s) → destaques (5–8s) → diff (5–8s) → estatísticas (4–5s) →
cronologia (opcional 4–6s) → breaking changes (3–5s, apenas se houver) →
contribuidores (3–5s, apenas com --include-contributors) → encerramento (3–4s)

Cada cena possui: id, type, duration (0.8–15s), narration (≤ 2 frases; legível no tempo a 0.35s/palavra), source (SHAs dos commits que comprovam as afirmações), data (específico do tipo — formatos no guia). As afirmações devem ser rastreáveis até story.json — não invente nada.

3. Validar.

node skills/git2video/scripts/validate.mjs --storyboard /tmp/g2v/storyboard.json \
  --story /tmp/g2v/story.json

Corrija todos os erros antes de renderizar. Aumente a janela de duração total para uma demonstração com --min/--max apenas quando o usuário solicitar um clipe curto de teste.

4. Renderizar.

node skills/git2video/scripts/render.mjs --storyboard /tmp/g2v/storyboard.json \
  --out /tmp/g2v --preset 16:9 --fps 30 --theme dark [--formats mp4,webm,gif]

Presets: 16:9@1920, 9:16@1080, 1:1@1080. Temas: dark (padrão), light, neon. Renderizações são determinísticas em uma máquina; ~2–4 min para um vídeo de 40s a 30fps. v0.1 é silencioso: a narração é queimada como legendas automaticamente.

5. QA (scriptado, não por intuição).

node skills/git2video/scripts/qa.mjs --storyboard /tmp/g2v/storyboard.json --out /tmp/g2v

Leia out/qa/report.md. PASS → entregue. FAIL → veja os detalhes em report.json, corrija o storyboard, re-renderize, execute o qa novamente. Máximo de 3 loops de correção. Depois disso, relate honestamente o que ainda falha e por quê.

6. Entregar. Informe ao usuário: o caminho absoluto de video.mp4 (+webm/gif), o veredito do QA em uma linha, quaisquer resquícios do 3º loop e ofereça: outro preset (vertical), variantes de tema (light/neon) ou um GIF para incorporação no README (--formats gif).

Regras rígidas

  • Nunca invente commits, estatísticas ou diffs: o source de cada cena nomeia SHAs reais do story.json. Se o histórico não suportar um tipo de cena, pule a cena.
  • Nunca coloque e-mails de contribuidores na saída; apenas nomes com --include-contributors.
  • Não edite arquivos em skills/git2video/templates/ ou scripts/ durante a renderização; o mecanismo determinístico + QA os pressupõem. Alterações de cenas/temas/estilos de assets apenas como trabalho separado e declarado.
  • Prefira menos cenas precisas a preenchimento; mantenha a narração ≤ 2 frases.

Habilidades Relacionadas