Git-AI-Flow
AI オーケストレーション時代に向けたブランチ運用の提案です。Git-Flow と同じ形を踏襲しつつ、各ブランチの担い手を入れ替えます。
新しい flow が必要な理由
Git-Flow も GitHub-Flow も、人間の開発者が無理なく回せる速度を前提に設計されていました。コードを書くのも、PR をレビューするのも人間が中心で、システム全体の速度は人間の処理能力で律速されます。ところが AI オーケストレーション時代になると、その「人間の処理能力」が律速要因ではなくなります。自律エージェントは、人間が昼食を取っている間に 10 件の PR を開くことができます。
Git-AI-Flow は、AI の作業速度と人間の監督の間に緩衝地帯 (バッファ) を置きます。エージェントは長寿命の ai-develop ブランチで継続的に作業し、人間は自分の都合の良いタイミングで、選んだ状態を main に昇格させます。
形
長寿命ブランチを 2 つ持ちます。main は人間が承認済みで、本番にデプロイ可能な状態です。ai-develop はエージェントが管理し、継続的に更新されます。短命の feature/* ブランチは ai-develop から派生させます。人間は任意のタイミングで ai-develop をレビューし、選んだ状態を main に昇格させます。
main ●─────────●──────────●─────────● (human-promoted)
▲ ▲
│ promote │ promote
ai-develop ●─●─●─●─●●─●─●─●─●─●●─●─●─● (agent-driven)
▲ ▲ ▲ ▲
agent agent agent agentai-develop の上を流れるのはプロンプトの羅列ではなく、意図ツリーからコンパイルされた GitHub Issue です。各 Issue は関連する意図のスライス(アーキテクチャ・契約・UI パターン)を受け継ぐので、AI 支援開発で最もレバレッジの効くスキル「分かりやすい Issue を書く」ことが実際に効いてきます。エージェントは文脈が揃った状態で実装を進められ、main への昇格時の人間レビューは PR を個人の好みではなく意図のスライスと比較する、というかたちで安定します。
main への昇格 ── ai-develop からの経路
大規模なコードベースや、すでにリリース済みのプロジェクトでは、経路は次のようになります。エージェントは ai-develop で実装を進めます。任意のタイミングで AI レビュアーが実装・Issue・Intent ツリーを横断して読み、変更が意図を守っているかを判定します。そのレビューを通過し、人間が最終承認を出した時点で、ai-develop の選んだ地点を main にマージします。main は構造上つねに「人間が承認済みで本番デプロイ可能」な状態に保たれ、エージェント速度の振れは ai-develop が引き受けます。
バグ報告は Intent-Bug Issue として起票される
リリース後、現実の側からは欠陥・エッジケース・想定外の振る舞いといった信号が戻ってきます。これらはひとつずつ Intent-Bug という Issue として起票され、同じループに戻されます。トリアージで問うのは、Intent Tree ページにも書いた 2 択です ── これは実装バグ(意図は正しい、コードが守れていない)か、それとも意図の漏れ(意図が何も言っていない、実装者が独自判断、結果が望むものではなかった)か。実装バグは ai-develop 上でエージェントが修正し、変わらない意図スライスとの照合でレビューを通り、main へ昇格します。意図の漏れの場合は、まずツリーを昇格させ(clarification → canonical)、その鋭くなった意図が修正を駆動します。どちらの場合も、Intent-Bug は同じエージェント主体の修正ループを通り、同じ人間承認の昇格経路で main に出ていきます。
bug report (from production)
│
▼
Intent-Bug issue 実装リポジトリで起票
│
▼
Intent ツリーに照らしてトリアージ
│ ┌─────────────────────────────┐
├─────▶ 実装バグ ── ai-develop で修正
│ │
└─────▶ 意図の漏れ ── まずツリーを昇格、その後で修正
│
▼
ai-develop (エージェント修正ループ)
│
▼
AI レビュー ── 実装・Issue・Intent ツリーを横断
│
▼
人間の最終承認 → main に昇格既存 flow との比較
| 観点 | Git-Flow | GitHub-Flow | Git-AI-Flow |
|---|---|---|---|
| 長寿命ブランチ | main + develop | main | main + ai-develop |
| develop の作業者 | 人間 | n/a | エージェント |
| リリース頻度 | スケジュールされたリリース | 連続デプロイ | 人間が昇格を承認 |
| レビュアー | 各 PR で人間 | 各 PR で人間 | ai-develop はエージェント、昇格時に人間 |
| ボトルネック | リリース調整 | レビュアーの稼働 | 昇格頻度 |
Git-AI-Flow が適さないケース
- AI を autocomplete (Copilot 型) としてのみ使い、すべての PR を人間が書いている場合。
- すでに trunk-based development で満足できているチーム。
- 1 人の開発者が自分の PR を自分でレビューしている場合。
表記
タイトルや本文では Git-AI-Flow (大文字始まり、3 単語ハイフン区切り) で統一します。コードやコマンドの文脈では小文字 git-ai-flow も許容します。推奨するブランチ名は ai-develop ですが、組織内の慣習に合わせて変更しても構いません。重要なのは役割分離であって、名前自体ではありません。