git2video — 実際のGit履歴からリリース動画を生成
リポジトリの実際のGit履歴を読み取り、正確で洗練されたリリース動画を生成します:収集 → ストーリーボード作成 → 検証 → レンダリング → QA → 納品。100%ローカルで動作(Node ≥ 22、ffmpeg、Playwright Chromium — 最初にdoctorで確認)。レンダリング時にネットワーク不要で、シークレットは差分ハンクから除去され、メールアドレスが出力に表示されることはありません。
skills/git2video/scripts/doctor.mjs # 環境を確認し、MISSING行を修正
scripts/collect.mjs # git -> story.json(グループ化されたコミット、破壊的変更、統計、サニタイズされたハンク)
scripts/validate.mjs # 音声なしのストーリーボードをレンダリング前に検証
scripts/render.mjs # ストーリーボード -> video.mp4(+ webm/gif)、layout-audit.json
scripts/qa.mjs # スクリプト化されたゲート:out/qa/ に report.json + report.md
references/storyboard-guide.md # シーンタイプ、データ構造、作成ルール — 作成前に必ず読む
references/faq.md # トラブルシューティング
ワークフロー
1. 履歴を収集
node skills/git2video/scripts/collect.mjs --repo <repo-dir> --out /tmp/g2v/story.json \
[--from <tag|sha|YYYY-MM-DD>] [--to HEAD] [--max-commits 400] [--include-contributors] [--gh]
デフォルト:最新のタグ → HEAD。タグがない場合:過去30日間。収集後、/tmp/g2v/story.json を確認します。
2. storyboard.json を作成(あなた、エージェントが作成 — 最初に references/storyboard-guide.md を読んでください)。30〜45秒のリリース動画の目安:
タイトル (3-4秒) → ハイライト (5-8秒) → 差分 (5-8秒) → 統計 (4-5秒) →
タイムライン (オプション 4-6秒) → 破壊的変更 (3-5秒、存在する場合のみ) →
コントリビューター (3-5秒、--include-contributors 使用時のみ) → アウトロ (3-4秒)
すべてのシーンに含めるもの:id、type、duration (0.8-15秒)、narration(最大2文;スロット内で0.35語/秒で読める長さ)、source(主張の根拠となるコミットSHA)、data(タイプ固有 — ガイドで形状を確認)。主張は story.json にトレースできる必要があります — 何も創作しないでください。
3. 検証
node skills/git2video/scripts/validate.mjs --storyboard /tmp/g2v/storyboard.json \
--story /tmp/g2v/story.json
レンダリング前にすべてのエラーを修正します。デモンストレーション用に合計時間枠を広げる場合は、--min/--max をユーザーが短いテストクリップを求めた場合にのみ使用します。
4. レンダリング
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]
プリセット:16:9@1920、9:16@1080、1:1@1080。テーマ:dark(デフォルト)、light、neon。レンダリングはマシン上で決定論的;40秒30fpsの動画で約2〜4分。v0.1は無音:ナレーションは自動的にキャプションとして焼き付けられます。
5. QA(スクリプト化、雰囲気ではありません)
node skills/git2video/scripts/qa.mjs --storyboard /tmp/g2v/storyboard.json --out /tmp/g2v
out/qa/report.md を読んでください。PASS → 納品。FAIL → report.json の詳細を確認し、ストーリーボードを修正し、再レンダリングし、QAを再実行します。最大3回の修正ループ。 その後も失敗する場合は、何がまだ失敗しているのか、その理由を正直に報告します。
6. 納品。 ユーザーに伝える内容:video.mp4(+ webm/gif)の絶対パス、QA判定を1行で、3回目のループで残った問題、そしてオプションとして:他のプリセット(縦長)、テーマバリエーション(light/neon)、またはREADME埋め込み用のGIF(--formats gif)。
厳格なルール
- コミット、統計、差分を決して創作しない:各シーンの
sourceは story.json の実際のSHAを指定します。履歴がシーンタイプをサポートしていない場合は、そのシーンをスキップします。 - コントリビューターのメールアドレスを出力に入れない。--include-contributors を使用する場合のみ名前を使用します。
- レンダリング中に skills/git2video/templates/ や scripts/ のファイルを編集しない。決定論的エンジンとQAがそれらを前提としています。シーン/テーマ/アセットのスタイル変更は、個別に宣言された作業としてのみ行います。
- 埋め草よりも、少なく正確なシーンを優先。ナレーションは最大2文に抑えます。