Skip to content

chore: ignore agent worktrees so the repo is not permanently dirty - #56

Merged
ExtraToast merged 1 commit into
mainfrom
chore/ignore-agent-worktrees
Aug 27, 2026
Merged

chore: ignore agent worktrees so the repo is not permanently dirty#56
ExtraToast merged 1 commit into
mainfrom
chore/ignore-agent-worktrees

Conversation

@ExtraToast

Copy link
Copy Markdown
Contributor

.claude/worktrees/<name>/ is a full git worktree checked out beside the sources. It is machine-local agent scratch, several MB of it, and because it was untracked rather than ignored this repo showed as dirty permanently in scripts/status.sh.

That matters less for the megabytes than for the signal: a workspace that is always dirty in the same places stops being a signal at all. It also produces phantom grep matches — a search across the workspace hits .claude/worktrees/*/.github/workflows/*.yml, which looks exactly like a real consumer.

Why .claude/worktrees/ and not .claude/

Scoped deliberately. agent-kit and personal-stack both track .claude/ content (Spec Kit commands, agent definitions — 32 and 22 files respectively). A blanket .claude/ ignore would mean anything added there in future is silently dropped. Only the worktree subtree is machine-local.

Refs JorisJonkers-dev/workspace#60

`.claude/worktrees/<name>/` is a full git worktree checked out beside the sources. It is machine-local agent scratch, several MB of it, and because it was untracked rather than ignored this repo showed as **dirty permanently** in `scripts/status.sh`.

That matters less for the megabytes than for the signal: a workspace that is always dirty in the same places stops being a signal at all. It also produces phantom grep matches — a search across the workspace hits `.claude/worktrees/*/.github/workflows/*.yml`, which looks exactly like a real consumer.

## Why `.claude/worktrees/` and not `.claude/`

Scoped deliberately. `agent-kit` and `personal-stack` both **track** `.claude/` content (Spec Kit commands, agent definitions — 32 and 22 files respectively). A blanket `.claude/` ignore would mean anything added there in future is silently dropped. Only the worktree subtree is machine-local.

Refs JorisJonkers-dev/workspace#60

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPnwbKr1Ex9iXAtv6TThAU
@ExtraToast ExtraToast added the type: chore Maintenance work without intended behavior change. label Aug 27, 2026
@ExtraToast
ExtraToast merged commit 9d71f3f into main Aug 27, 2026
9 checks passed
@ExtraToast
ExtraToast deleted the chore/ignore-agent-worktrees branch August 27, 2026 10:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: chore Maintenance work without intended behavior change.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant