Proposal

Git-AI-Flow

A branching model for the AI orchestration era. Same shape as Git-Flow. Different roles.

Why a new flow is needed

Both Git-Flow and GitHub-Flow were designed around a pace that human developers can sustain — humans write the code, humans review every PR, and the system as a whole moves only as fast as humans can keep up. In the AI orchestration era, that pace is no longer the binding constraint. An autonomous agent can open ten PRs while a human is at lunch.

Git-AI-Flow introduces a buffer between AI velocity and human oversight: the agents work on a long-lived ai-develop branch, and humans promote selected states into main on their own schedule.

The shape

Two persistent branches: main (human-approved, production-ready) and ai-develop (agent-managed, continuously updated). Short-lived feature/* branches are forked from ai-develop. Humans review ai-develop on a cadence and promote a chosen state into main.

main          ●─────────●──────────●─────────●  (human-promoted)
                       ▲          ▲
                       │ promote  │ promote
ai-develop    ●─●─●─●─●●─●─●─●─●─●●─●─●─●  (agent-driven)
                  ▲       ▲       ▲       ▲
                  agent   agent   agent   agent

What flows on ai-develop is not raw prompts — it is GitHub issues compiled from the intent tree. Each issue inherits the relevant slice (architecture, contracts, UI patterns), so writing a clear issue (the highest-leverage skill in modern AI-assisted coding) actually pays off: implementation by an agent is straightforward because the context is already there, and the human review at promotion time compares the PR to the intent slice rather than to personal taste.

Promotion path: from ai-develop to main

On a large or already-released codebase the path looks like this. The agent works on ai-develop. At any chosen point, an AI reviewer reads across the implementation, the issue, and the intent tree at the same time and judges whether the change honors the intent. Once that review passes and a human gives the final approval, the chosen state of ai-develop is merged into main. main stays human-approved and production-ready by construction; ai-develop carries the agent-paced churn.

Bug reports become Intent-Bug issues

Reality returns signals after release: defects, edge cases, surprising behaviors. Each one is filed as an Intent-Bug issue and routed back into the same loop. The triage step asks the question the Intent Tree page already names — is this an implementation bug (intent was right, code did not honor it) or an intent gap (intent said nothing; the implementer made a local choice; the result was not what the team wanted)? Implementation bugs are fixed by an agent on ai-develop, reviewed against the unchanged intent slice, and promoted. Intent gaps first promote the tree (clarification → canonical), and the corrected intent then drives the fix. Either way, the bug enters the same agent-led fix loop and exits via the same human-approved promotion to main.

bug report (from production)
   │
   ▼
Intent-Bug issue                filed in the implementation repo
   │
   ▼
triage on the intent tree
   │     ┌─────────────────────────────┐
   ├─────▶ implementation bug — fix on ai-develop
   │     │
   └─────▶ intent gap — promote the tree first, then fix
              │
              ▼
        ai-develop (agent fix loop)
              │
              ▼
        AI review across impl + issue + intent tree
              │
              ▼
        human final approval → promote to main

Comparison with prior flows

AspectGit-FlowGitHub-FlowGit-AI-Flow
Long-lived branchesmain + developmainmain + ai-develop
Who works on develophumansn/aagents
Release cadencescheduled releasescontinuous deploymenthuman-gated promotion
Reviewerhumans on each PRhumans on each PRagents on ai-develop; humans on promotion
Bottleneckrelease coordinationreviewer availabilitypromotion frequency

When NOT to use Git-AI-Flow

  • AI is used only as autocomplete (Copilot-style); humans author every PR.
  • The team is already happy with trunk-based development.
  • Single developer reviewing their own PRs as they write them.

Notation

Standardize on Git-AI-Flow (capitalized, three words, hyphenated) in titles and prose. In code or commands, lowercase git-ai-flow is acceptable. The recommended branch name is ai-develop, but free to use what your organization prefers — what matters is the role separation, not the name.

Try Intent-System