Communitygithub.com

iqam20/git2video

Gitリポジトリの実際の履歴(タグ、コミット、差分)を、洗練されたリリース動画(MP4/WebM/GIF)に変換します。完全オフライン、無料、スクリプト化されたQAループ付き。ユーザーがリリース動画、変更履歴動画、告知クリップ、またはリポジトリの「このリリースの動画」を求めたときに使用します。

git2video とは?

git2videoは、実際のGit履歴から正確で洗練されたリリース動画を生成するエージェントスキルです。Node.js、ffmpeg、Playwright Chromiumを使用して完全にローカルで動作し、ネットワーク不要でシークレットやメールアドレスが出力に漏れることはありません。ワークフローは「収集→ストーリーボード作成→検証→レンダリング→QA→納品」の6ステップで構成され、各ステップが専用スクリプトで自動化されています。最大3回の修正ループでQAをパスし、最終的にMP4/WebM/GIF形式で動画を納品します。このスキルは、リリースノートの視覚化、変更履歴の共有、オープンソースプロジェクトの告知などに最適で、開発者やAIエージェントが一貫性のある高品質な動画コンテンツを迅速に生成できます。

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

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

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文に抑えます。

関連スキル