mcpField
I
isolate

isolate

github.com/camachoDevelopment391 installs
Repository

About isolate

isolate is a development skill for creating or refreshing a Git worktree from the latest parent branch, helping agents keep task changes separate from the main checkout. It includes dependency setup and baseline test checks.

Key features

  1. 01Create worktrees from fetched remote branches
  2. 02Detect parent branch from reflog
  3. 03Refresh an existing linked worktree
  4. 04Install dependencies from project manifests
  5. 05Run baseline tests before work

Use cases

  1. 01Start task work on current parent-branch code
  2. 02Refresh a linked worktree before continuing
  3. 03Check project tests before implementation

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/camacho/ai-skills --skill isolate

After installing, type/isolatein Claude Code to confirm it loaded.

Details

From the project README

Isolate

Create a worktree branched from the latest origin/main so task work never starts on stale code.

Announce: "Setting up an isolated worktree for this task."

Inputs

  • Branch name: from /orient Step 1 (e.g., feat/auth, fix/login-crash). Ask if not provided.
  • Base ref: the current branch's parent (detected via reflog, default main). Override only when explicitly stacking on a different branch.

Detect parent branch

The parent branch (what this branch will eventually merge into) is determined from the reflog:

PARENT_BRANCH=$(
  git reflog show HEAD --pretty=format:'%gs' \
    | grep "^branch: Created from" \
    | head -1 \
    | sed 's/branch: Created from //' \
    | sed 's|^origin/||'
)
PARENT_BRANCH=${PARENT_BRANCH:-main}

Returns empty when the branch was created from a detached HEAD or in a web session with no reflog — falls back to main. Correct 99% of the time for normal local development.

Already in a Worktree?

If the session CWD is already inside a linked worktree (not the primary), freshen the branch instead of creating a new one:

WORKTREE="<absolute-path-to-current-worktree>"
git -C "$WORKTREE" fetch origin "$PARENT_BRANCH"
git -C "$WORKTREE" merge "origin/$PARENT_BRANCH"

If conflicts arise, stop and present them to the user. Do not auto-resolve.

After freshening, skip ahead to Baseline test.

Step 1: Select directory

PriorityCheckAction
1.worktrees/ existsUse it
2worktrees/ existsUse it
3Both exist.worktrees/ wins
4CLAUDE.md specifiesFollow preference
5None foundAsk user (.worktrees/ recommended)

Step 2: Verify gitignored

git check-ignore -q .worktrees

If NOT ignored, fix before proceeding:

echo ".worktrees" >> .gitignore
git add .gitignore
git commit -m "chore: gitignore worktree directory"

Step 3: Fetch and create

A worktree branched from a stale local parent means baked-in merge conflicts. Always fetch first, always branch from origin/$PARENT_BRANCH (not the local copy).

REPO_ROOT="$(git rev-parse --show-toplevel)"
WORKTREE_DIR="$REPO_ROOT/.worktrees/<name>"

git fetch origin "$PARENT_BRANCH"
git worktree add "$WORKTREE_DIR" -b <prefix>/<name> "origin/$PARENT_BRANCH"

Lock the worktree immediately so git worktree prune doesn't sweep it during long-running agent sessions. Run from the main repo context (not the worktree):

git -C "$REPO_ROOT" worktree lock --reason "Agent session in progress" "$WORKTREE_DIR"

/ship will unlock before removing the worktree at the end of the task.

Claude Code: optionally call EnterWorktree({path}) to move session CWD into the new worktree.

Step 4: Install dependencies

Auto-detect from manifest files:

FileCommand
pnpm-lock.yamlpnpm install
yarn.lockyarn install
package-lock.jsonnpm install
package.json (no lockfile)Ask before installing
Cargo.tomlcargo build
requirements.txtpip install -r requirements.txt
pyproject.tomlpoetry install
go.modgo mod download

Run from the worktree path: pnpm --dir "$WORKTREE_DIR" install

Step 5: Baseline test

Run the project's test suite. If tests fail, report failures and ask whether to proceed. Do not silently continue.

Report

Worktree ready at <absolute-path>
Branch: <prefix>/<name> (from origin/main @ <short-sha>)
Tests: <N> passing

Path Discipline

cd does not persist between Claude Code Bash calls. Use absolute paths for all file operations and git -C <abs-path> for git commands.

Integration

Called by: /task (Step 2), /brainstorming, /build Pairs with: /ship (cleans up worktree after work is done)

Comments

Markdown supported