Johnny Butler

July 10, 2026

Green Was Never the Reason You Hit Merge

"All checks have passed. This branch has no conflicts with the base branch."
That green box is now the trigger some teams use to let AI agents merge their own pull requests. No human in the loop. Green means go. The reaction tends to split the room, half excitement, half horror.

I understand the excitement. If the agent can write the code, pass the tests, and merge without waiting in a queue, that is a genuinely faster delivery loop. And the PR queue is exactly where the speed teams gained from agents is being handed back.

But green was never the reason you hit merge.

Green worked as a merge signal because of everything that happened before the checks ran. A human understood the intent. A human decided what the tests should protect. A human knew which parts of the system were risky and which were routine. CI confirmed that judgement. It never replaced it.

Point the same green box at agent-written code and the questions change. Were the acceptance criteria defined before the work started, or reverse-engineered from the output? Do the tests protect the behaviour that matters, or the behaviour the agent happened to produce? What did the agent assume about the existing system, and who checked? A test suite passes just as green when it is testing the wrong thing.

I think auto-merge will earn its place for low-risk, well-bounded changes with clear criteria and a track record behind them. But that trust has to be built, not toggled. The work has to arrive with its evidence: the intent, what was verified, what was assumed, and where a human call is still needed attached to the PR, not reconstructed after the incident.

Autonomy is not a setting. It is a track record, built one evidenced change at a time.