Clean worktrees
Production Claude Code setup for ~/.claude/: rules, hooks, agents, skills, and governance docs.
npx -y skills add stuartshields/claude-setup --skill clean-worktreesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Remove stale agent worktree directories and their orphaned branches. Run after parallel agent work or when .claude/worktrees/ accumulates cruft.
SKILL.md
2.2 KB, as published. Nobody here has run it
Clean Stale Agent Worktrees
Remove worktree directories and orphaned worktree-agent-* branches left behind by agent isolation mode.
Based on community patterns from claude-codex-settings and claude-code-ultimate-guide, adapted for Claude Code's agent worktree pattern.
Related upstream issue: anthropics/claude-code#26725
Process
1. Inventory
Run these commands and report counts:
# Count worktree directories
WORKTREE_DIRS=$(find .claude/worktrees -maxdepth 1 -type d -name 'agent-*' 2>/dev/null | wc -l | tr -d ' ')
# Count git worktree registrations (excluding main)
GIT_WORKTREES=$(git worktree list 2>/dev/null | grep 'worktree-agent-' | wc -l | tr -d ' ')
# Count orphaned branches
ORPHANED_BRANCHES=$(git branch --list 'worktree-agent-*' 2>/dev/null | wc -l | tr -d ' ')
Report:
## Worktree Inventory
- Worktree directories: {WORKTREE_DIRS}
- Git worktree registrations: {GIT_WORKTREES}
- Orphaned branches: {ORPHANED_BRANCHES}
If all counts are 0: report "No stale worktrees found." and stop.
2. Dry Run Check
If $ARGUMENTS contains --dry-run: report the inventory and stop. Do not delete anything.
3. Clean Up
Run in this order:
# Prune stale git worktree references
git worktree prune
# Remove registered worktrees that match agent pattern
git worktree list | grep 'worktree-agent-' | awk '{print $1}' | while read wt; do
git worktree remove --force "$wt"
done
# Delete orphaned branches (allowed by block-git-commit.sh for worktree-agent-* only)
git branch --list 'worktree-agent-*' | xargs git branch -D
4. Report
## Cleanup Complete
- Removed {N} worktree directories
- Deleted {N} orphaned branches
- Pruned git worktree references