worktree-cleanup

A manual command for removing development worktrees, which are separate working directories linked to Git branches. Automatic cleanup normally handles this after development tracks are merged.

In plain words
What is it for?
It is for cleaning up all worktrees, one selected track, or worktrees and their branches after parallel development is complete.
Why use it?
It provides a recovery option when automatic cleanup fails, while checking for uncommitted work and other conditions before removal.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/michael-harris/devteam/worktree-cleanup
Any agent
npx skills add michael-harris/devteam --skill worktree-cleanup
Clone the repo
git clone --depth 1 https://github.com/michael-harris/devteam

Made for: Claude Code, Codex.

Per session 29 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,367 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00029 $0.01367
Opus 5 $0.00015 $0.00683
Sonnet 5 $0.00006 $0.00273
Haiku 4.5 $0.00003 $0.00137

Measured 2d ago against content hash 006cd483c804, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

worktree-cleanup scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/worktree-cleanup/SKILL.md · 214 lines

How it starts

The opening of the file, as written. The whole thing — 214 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Worktree Cleanup Command

Debug/Expert Command - Manually clean up development track worktrees.

Note: This command is rarely needed. Worktrees are cleaned up automatically after /devteam:implement merges all tracks. Use this only if automatic cleanup failed or you need manual control.

Command Usage

/devteam:worktree cleanup            # Clean up all worktrees
/devteam:worktree cleanup 01         # Clean up specific track
/devteam:worktree cleanup --all      # Clean up worktrees AND delete branches

Warning

This command is destructive. Use with caution.

Your Process

Step 1: Load State and Validate

  1. Load state from SQLite database (.devteam/devteam.db) via source "${CLAUDE_PLUGIN_ROOT}/scripts/state.sh"
  2. Verify worktree mode enabled
  3. If specific track, verify track exists
  4. Check if tracks are complete (warning if not)

Step 2: Safety Checks

For each worktree to be removed:

cd "$worktree_path"

# Check for uncommitted changes
if [ -n "$(git status --porcelain)" ]; then
    echo "ERROR: Uncommitted changes in $worktree_path"
    echo "  Please commit or stash changes first"
    exit 1
fi

# Check if pushed to remote
if git status | grep "Your branch is ahead"; then
    echo "WARNING: Unpushed commits in $worktree_path"
    echo "  Recommend pushing before cleanup"
    read -p "Continue anyway? (y/N): " confirm
    if [ "$confirm" != "y" ]; then
        exit 1
    fi
fi

Step 3: Remove Worktrees

For each worktree:

cd "$MAIN_REPO"

echo "Removing worktree: $worktree_path"
git worktree remove "$worktree_path"

if [ $? -eq 0 ]; then
    echo "Removed: $worktree_path"
else
    echo "Failed to remove: $worktree_path"
    echo "  Try: git worktree remove --force $worktree_path"
fi

Step 4: Remove Empty Directory

if [ -d ".multi-agent" ] && [ -z "$(ls -A .multi-agent)" ]; then
    rmdir .multi-agent
    echo "Removed empty .multi-agent/ directory"
fi

Step 5: Optionally Delete Branches

Read the full file on GitHub · 214 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 214 lines · 0 tokens per session scan A 006cd483c804

Subscribe to this mod's changes

worktree-cleanup is a skill published in the GitHub repository michael-harris/devteam (18 stars, last pushed 6mo ago), licensed MIT. It adds 29 tokens to every session and 1,367 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

hydra

Multi-agent orchestration framework for Claude Code. Automatically delegates tasks to cheaper, faster sub-agents (Haiku, Sonnet) while maintaining Opus-level quality through verification. Use when working on any coding task — Hydra activates automatically to route file exploration, test running, documentation, code…

AR6420/Hail_Hydra · 83 tokens

quality-stack

Scan a project to detect configured quality and testing tools across JVM (Gradle/Maven), Android (AGP/Compose/KMP), Node.js/TypeScript, and Python ecosystems. Cross-reference against research-backed recommendations and assist with setup. Auto-detects project type(s) including monorepos with mixed ecosystems. Use when…

joaquimscosta/arkhe-claude-plugins · 148 tokens

lyra

Transform vague inputs into precision-optimized AI prompts for Claude, ChatGPT, Gemini, or other LLMs. Use when user mentions "optimize prompt", "improve prompt", "lyra", "prompt engineering", or needs help crafting effective AI prompts.

joaquimscosta/arkhe-claude-plugins · 56 tokens

prototype

Rapid UI prototyping — generates 3 visually distinct HTML/CSS components from a text prompt and serves them in a live browser gallery. Use when user runs /prototype, asks to "prototype a UI", "mock up a component", "generate HTML mockups", "create UI variations", "design exploration", "quick UI concept", or wants to…

joaquimscosta/arkhe-claude-plugins · 118 tokens

sops-add-key

Add a new machine's age public key to .sops.yaml and re-encrypt all files. Use for multi-machine setups. Use when user mentions "add key", "add machine", "sops add key", "new machine", "authorize machine", "share key", "add public key", "multi machine sops".

joaquimscosta/arkhe-claude-plugins · 72 tokens

taskfile-setup

Install Taskfile (task) and scaffold or audit Taskfile.yml configurations with ecosystem-aware templates. Auto-detects Node.js/pnpm, JVM/Gradle, Python/uv, Docker, and recommends single-file or multi-file (includes) patterns based on project complexity. Use when user runs /devtools:taskfile-setup, mentions "taskfile…

joaquimscosta/arkhe-claude-plugins · 110 tokens