Skip to content

chore: keep agent worktrees out of the repository - #358

Merged
LeadcodeDev merged 1 commit into
mainfrom
chore/ignore-agent-worktrees
Sep 27, 2026
Merged

LeadcodeDev merged 1 commit into
mainfrom
chore/ignore-agent-worktrees

Conversation

@LeadcodeDev

Copy link
Copy Markdown
Owner

A subagent launched with worktree isolation gets a full checkout under .claude/worktrees/agent-<id>/, and the directory survives the agent. Four appeared during one session's work and sat there as untracked content — each a complete copy of the tree, including its own target/. Committing one by accident would be spectacular.

.claude/ cannot be ignored wholesale: .claude/skills/ is tracked and is where this repo's own skills live. Only .claude/worktrees/ is excluded.

The related trap, for whoever hits it next

A worktree keeps its branch checked out until git worktree prune runs, and a locked one refuses removal until git worktree unlock. That is what produces:

fatal: 'feat/halo-ellipse' is already used by worktree at
       …/.claude/worktrees/agent-a4b29d63b6946c1fc

which is easy to mistake for a stale branch rather than a live checkout. The failed git checkout then leaves HEAD where it was, so the next edit lands on the previous branch — which happened once in this session and put a SKILL.md line on the wrong PR before it was caught.

Nothing else changed: one line in .gitignore.

A subagent launched with worktree isolation gets a full checkout under
`.claude/worktrees/agent-<id>/`, and the directory survives the agent. Four of
them appeared during one session's work and showed up as untracked content —
each one a complete copy of the tree, including its own `target/`, so committing
one by accident would be spectacular.

`.claude/` cannot be ignored wholesale: `.claude/skills/` is tracked and is where
this repo's own skills live. Only the worktree directory is excluded.

A removed worktree also leaves its branch checked out until `git worktree prune`
runs, which is what makes that branch impossible to check out from the main copy
with the unhelpful `fatal: '<branch>' is already used by worktree at …`.
@LeadcodeDev LeadcodeDev added the documentation Improvements or additions to documentation label Sep 27, 2026
@LeadcodeDev LeadcodeDev self-assigned this Sep 27, 2026
@LeadcodeDev
LeadcodeDev merged commit 97a5c95 into main Sep 27, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant