Display comprehensive worktree status including active worktrees, stale references, and uncommitted changes. Invoke with "/worktrees:status" or when user mentions "worktree status", "list worktrees", "check worktrees", "worktree health", or "audit worktrees".
From worktreesnpx claudepluginhub aaronbassett/agent-foundry --plugin worktreesThis skill uses the workspace's default tool permissions.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Executes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
Display comprehensive status of all worktrees.
Run these commands to gather worktree status:
echo "=== Active Worktrees ===" && git worktree list
echo "=== Stale References ===" && git worktree prune --dry-run 2>&1 || echo "None found"
echo "=== Uncommitted Changes ===" && for wt in $(git worktree list --porcelain | grep "^worktree " | cut -d ' ' -f 2); do
changes=$(cd "$wt" && git status --porcelain 2>/dev/null | head -5)
if [ -n "$changes" ]; then
echo ""
echo "๐ $wt:"
echo "$changes"
count=$(cd "$wt" && git status --porcelain 2>/dev/null | wc -l | tr -d ' ')
if [ "$count" -gt 5 ]; then
echo " ... and $((count - 5)) more files"
fi
fi
done
echo ""
echo "Worktrees with no changes not shown."
echo "=== Locked Worktrees ===" && for wt in $(git worktree list --porcelain | grep "^worktree " | cut -d ' ' -f 2); do
if [ -f "$wt/../.git/worktrees/$(basename $wt)/locked" ] 2>/dev/null || git worktree list --porcelain | grep -A5 "^worktree $wt$" | grep -q "^locked"; then
echo "๐ $wt"
fi
done || echo "None"
/path/to/project abc1234 [main]
/path/to/project/.worktrees/feature def5678 [feature/auth]
If git worktree prune --dry-run shows output, you have stale entries:
Removing worktrees/old-feature: gitdir file points to non-existent location
Fix: Run git worktree prune to clean up.
Shows files with uncommitted changes in each worktree:
๐ /path/to/project/.worktrees/feature:
M src/auth/service.ts
?? src/auth/new-file.ts
Status codes:
M - ModifiedA - Added (staged)D - Deleted?? - UntrackedUU - Merge conflictRun all checks in one command:
echo "=== WORKTREE STATUS ===" && \
echo "" && \
echo "๐ Active Worktrees:" && \
git worktree list && \
echo "" && \
echo "๐งน Stale References:" && \
(git worktree prune --dry-run 2>&1 | grep -v "^$" || echo " None") && \
echo "" && \
echo "๐ Uncommitted Changes:" && \
for wt in $(git worktree list --porcelain | grep "^worktree " | cut -d ' ' -f 2); do
changes=$(cd "$wt" && git status --porcelain 2>/dev/null)
if [ -n "$changes" ]; then
echo " $wt: $(echo "$changes" | wc -l | tr -d ' ') files"
fi
done && \
echo "" && \
echo "Done."
Based on status output:
| Finding | Action |
|---|---|
| Stale references | Run git worktree prune |
| Uncommitted changes | Commit, stash, or discard |
| Old worktrees | Use /worktrees:finish to clean up |
| Locked worktrees | Unlock with git worktree unlock <path> if no longer needed |
/worktrees:new - Create a new worktree/worktrees:finish - Clean up completed worktree/worktrees:concepts - Reference documentation