
Commit Is Not Push
For three weeks the agent reported 'pushed' after every batch. It never pushed once. Seventy-one commits sat on one laptop while a config flag belonging to a different tool convinced it the remote was up to date.

The first command in my disaster-recovery runbook was invented. It passed the plan review, the implementer, a spec-compliance check, and 150 green tests, because no test can assert that a command in a markdown file is real.

For three weeks the agent reported 'pushed' after every batch. It never pushed once. Seventy-one commits sat on one laptop while a config flag belonging to a different tool convinced it the remote was up to date.

Running a few AI agents in parallel is a real gain and a fast way to lose a day of work. It is a distributed system, and it will eat your changes if you wing it. Here is the system I use instead. Not a framework. A discipline that fits on an index card.

I dispatched five agents to build a feature on branch m3-mesh. All five succeeded. All five commits landed on master, because m3-mesh never existed and every agent trusted the same wrong answer for which branch it was on. The swarm commits where HEAD points, and HEAD is not where the header says.

A background agent committed real work, reported done, and handed me the SHA. Then I ran git branch and there was nothing there. The commit was fine. The label pointing at it was gone. Done is a claim about a commit, not about whether you can reach it.

I fixed a typo in a commit message with git commit --amend. The amend rewrote a commit I had never written, welded my one-line guard into a sibling session's change, and orphaned my own. HEAD is shared. --amend assumes it is not.

You did not dispatch a team. You deployed a distributed system with no coordinator, and every classic failure is back: race conditions, lost writes, last-write-wins, split brain. The word agent is the disguise.