git2video — vídeo de lanzamiento a partir del historial real de Git
Lee el historial real de un repositorio Git y produce un vídeo de lanzamiento preciso y profesional:
recopilar → storyboard → validar → renderizar → QA → entregar. Se ejecuta 100 % en local (Node ≥ 22, ffmpeg, Playwright Chromium — compruébalo primero con doctor). No requiere red durante el renderizado; los secretos se eliminan de los fragmentos de diferencias; los correos electrónicos nunca aparecen en la salida.
skills/git2video/scripts/doctor.mjs # comprobar el entorno, corregir filas FALTANTES
scripts/collect.mjs # git -> story.json (commits agrupados, cambios importantes, estadísticas, fragmentos saneados)
scripts/validate.mjs # storyboard sin audio debe pasar antes del renderizado
scripts/render.mjs # storyboard -> video.mp4 (+ webm/gif), layout-audit.json
scripts/qa.mjs # puerta automatizada: report.json + report.md en out/qa/
references/storyboard-guide.md # tipos de escena, formas de datos, reglas de escritura — leer antes de crear
references/faq.md # solución de problemas
Flujo de trabajo
1. Recopilar el historial.
node skills/git2video/scripts/collect.mjs --repo <directorio-repo> --out /tmp/g2v/story.json \
[--from <etiqueta|sha|AAAA-MM-DD>] [--to HEAD] [--max-commits 400] [--include-contributors] [--gh]
Valores predeterminados: última etiqueta → HEAD; sin etiqueta: últimos 30 días. Lee /tmp/g2v/story.json después.
2. Crear storyboard.json (tú, el agente — lee primero references/storyboard-guide.md). Regla general para un vídeo de lanzamiento de 30–45 s:
título (3–4 s) → destacados (5–8 s) → diferencias (5–8 s) → estadísticas (4–5 s) →
cronología (opcional 4–6 s) → cambios importantes (3–5 s, solo si los hay) →
contribuyentes (3–5 s, solo con --include-contributors) → final (3–4 s)
Cada escena incluye: id, type, duration (0.8–15 s), narration
(≤ 2 frases; legible en el espacio a 0.35 s/palabra), source (SHA de commits que respaldan las afirmaciones), data (según el tipo — formas en la guía). Las afirmaciones deben remitirse a story.json — no inventes nada.
3. Validar.
node skills/git2video/scripts/validate.mjs --storyboard /tmp/g2v/storyboard.json \
--story /tmp/g2v/story.json
Corrige todos los errores antes de renderizar. Amplía la ventana de duración total para una demo con
--min/--max solo cuando el usuario haya pedido un clip de prueba corto.
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]
Preajustes: 16:9@1920, 9:16@1080, 1:1@1080. Temas: dark (predeterminado), light, neon. Los renderizados son deterministas en una máquina; ~2–4 min para un vídeo de 40 s a 30 fps. v0.1 es silencioso: la narración se quema como subtítulos automáticamente.
5. QA (automatizado, no por sensaciones).
node skills/git2video/scripts/qa.mjs --storyboard /tmp/g2v/storyboard.json --out /tmp/g2v
Lee out/qa/report.md. PASS → entrega. FAIL → consulta los detalles en report.json, corrige el storyboard, vuelve a renderizar, vuelve a ejecutar QA. Máximo 3 iteraciones de corrección. Después, informa honestamente qué sigue fallando y por qué.
6. Entregar. Informa al usuario: la ruta absoluta de video.mp4 (+webm/gif), el veredicto de QA en una línea, cualquier resto de la tercera iteración, y ofrece: otro preajuste (vertical), variantes de tema (light/neon), o un GIF para incrustar en el README (--formats gif).
Reglas estrictas
- Nunca inventes commits, estadísticas o diferencias: el
sourcede cada escena nombra SHA reales de story.json. Si el historial no respalda un tipo de escena, omite la escena. - Nunca pongas correos electrónicos de contribuyentes en la salida; solo nombres con --include-contributors.
- No edites archivos bajo skills/git2video/templates/ o scripts/ durante el renderizado; el motor determinista + QA los presuponen. Los cambios de estilo de escenas/temas/activos solo como trabajo separado y declarado.
- Prefiere menos escenas precisas en lugar de relleno; mantén la narración en ≤ 2 frases.