M1 Field Notes · 9 min read
Parallel agents need isolated workspaces
A practical explanation of Git worktrees, concurrency boundaries, and the conflicts isolation cannot solve.
A checkout is shared mutable state
Branch selection, the index, untracked files, generated output, and dependency state all belong to a working tree. Two automated runs in one checkout can invalidate each other even when each task is individually correct.
One task, one working directory
A temporary task directory can prepare a separate Git worktree backed by a cached repository. Each run receives its own branch and filesystem view, so concurrent tasks do not switch branches or stage files underneath one another.
Isolation is not automatic integration
Two clean branches can still implement incompatible assumptions or touch the same product behavior. Human review and normal merge conflict resolution remain necessary. Worktrees protect execution mechanics; they do not replace engineering judgment.