Skip to content
Agent Orchestration
Skill

/using-git-worktrees

Use before implementation when work should be isolated from the current branch. Triggers on: "use a worktree", "isolate this work", "don't touch main", experimental or risky changes that need isolation.

BOOST
From plugin
superpowers-optimized
14224 skills2 agents6 hooks
Install
$ npx -y skills add REPOZY/superpowers-optimized --skill using-git-worktrees --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/using-git-worktrees

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use before implementation when work should be isolated from the current branch. Triggers on: "use a worktree", "isolate this work", "don't touch main", experimental or risky changes that need isolation.

SKILL.md

using-git-worktrees.SKILL.md
name: using-git-worktrees
description: >
  Use before implementation when work should be isolated from the current
  branch. Triggers on: "use a worktree", "isolate this work",
  "don't touch main", experimental or risky changes that need isolation.

Using Git Worktrees

Create an isolated branch workspace with safe defaults.

Required Start

Announce: `I'm using the using-git-worktrees skill to set up an isolated workspace.`

Directory Selection Priority

Check in order:

ls -d .worktrees 2>/dev/null     # Preferred (hidden)
ls -d worktrees 2>/dev/null      # Alternative

1. If `.worktrees/` exists — use it. If both exist, `.worktrees/` wins. 2. If `worktrees/` exists — use it. 3. Check project guidance file (e.g. `CLAUDE.md`) for a stated preference:

   grep -i "worktree.*director" CLAUDE.md 2>/dev/null

4. Ask user.

Safety Check

For project-local worktree directories, verify ignore rules before creating:

git check-ignore -q .worktrees 2>/dev/null || git check-ignore -q worktrees 2>/dev/null

If **not** ignored: 1. Add the appropriate line to `.gitignore`. 2. **Commit the `.gitignore` change immediately** before proceeding — an uncommitted ignore entry is easy to lose and leaves the worktree contents exposed to accidental staging.

Creation Steps

1. Detect project root and branch name

project=$(basename "$(git rev-parse --show-toplevel)")

Choose a descriptive `BRANCH_NAME` for the feature being isolated.

2. Create worktree and branch

git worktree add <path> -b <BRANCH_NAME>

**Critical:** The `cd <path>` in this step does not persist across separate shell calls. Use the full worktree path — `cd <path> && <command>` — in every subsequent Bash call rather than assuming the working directory carried over.

3. Run project setup

Auto-detect the project ecosystem and run the appropriate setup:

# Node.js
if [ -f package.json ]; then npm install; fi

# Rust
if [ -f Cargo.toml ]; then cargo build; fi

# Python
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f pyproject.toml ]; then poetry install; fi

# Go
if [ -f go.mod ]; then go mod download; fi

If none of these files exist, skip dependency installation and note it in the output.

4. Run baseline tests

Run the project-appropriate test command to confirm the worktree starts clean:

# Use whichever applies
npm test
cargo test
pytest
go test ./...

Failure Handling

If baseline tests fail, report the failures and ask whether to continue or investigate before proceeding.

Success Output

Report:

  • Worktree path (full absolute path)
  • Branch name
  • Ecosystem detected and setup command(s) run
  • Baseline test status (passing count or failure summary)

Integration

Use with:

  • `writing-plans`
  • `subagent-driven-development` — REQUIRED before executing any tasks
  • `executing-plans` — REQUIRED before executing any tasks

Cleanup is handled by `finishing-a-development-branch`.

Read more
Ships withsuperpowers-optimized

The production-grade fork of obra/superpowers — same trusted workflow, dramatically leaner, safer, and more intelligent.

Get the whole plugin

Other skills on superpowers-optimized.