How do I stop agents stepping on each other in one repo?
Isolate the filesystem rather than relying on prompt instructions. Give each agent its own git worktree and branch before you start them, which removes the whole class of collision because there is no shared file left to race on. If they must share a checkout, split ownership by directory and let only one agent touch shared-by-nature files: lockfiles, migrations, generated schemas, route manifests.
Sequence the merges too. Parallel work that all lands at once produces conflicts nobody has context for, so integrate one branch at a time and let the next agent rebase onto the result. See two agents, one repo; in crystl, isolated shards create the worktree and branch for you and handle the merge back.