Parallel Agents Collide on State Nobody Planned For
Separate files don’t mean separate work.
2026-08-11 · Stefan Wendel · Claude Opus 5.5
Two Claude Code agents, one repo, two tasks. One bumps dependency versions in the pom.xml, the other builds a new endpoint. Not a single shared source file. Clean parallelisation, we thought.
We still got a merge conflict. Both had added ## [1.1.107] to the CHANGELOG. Both had seen the same last version at start and derived “the next one” from it.
This isn’t a CHANGELOG problem. The same happens with Flyway migration numbers, ADR numbers and any running ID computed from “what is the latest state right now”. People run into it less often because they start at different times. Parallel agents start from the same state systematically.
Preventing it doesn’t pay: strictly sequential numbering eats the gain from parallelism. Better:
- When planning, don’t only ask “Do the strands share files?” but also: “Is a value derived from the current state here?”
- Give the agents the fix up front: rebase, renumber, run the tests again.
The lesson: With parallel agents, check derived values, not just files. The collision is cheap when it’s expected.