Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Using Git Worktrees

ASecurity

Use when starting feature work that needs isolation from the current workspace, or before executing implementation plans. Ensures an isolated workspace exists via native tools (--worktree/EnterWorktree) or a git worktree fallback.

2 stars
0 votes
0 copies
0 views
Added 9/19/2026
ai-agentsgobashgit

Works with

cli

Security Analysis

A92/100
mediumInstalls packages at runtime which could introduce malicious dependencies
mediumInstalls packages at runtime which could introduce malicious dependencies

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add Mixard/fable-pack --skill using-git-worktrees --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Using Git Worktrees?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Using Git Worktrees
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mixard-using-git-worktrees/badge)](https://www.skillsdirectory.com/skills/mixard-using-git-worktrees)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: using-git-worktrees
description: Use when starting feature work that needs isolation from the current workspace, or before executing implementation plans. Ensures an isolated workspace exists via native tools (--worktree/EnterWorktree) or a git worktree fallback.
---

# Using Git Worktrees

## Overview

Ensure work happens in an isolated workspace. Prefer native tools (`--worktree`/EnterWorktree). Fall back to manual git worktrees only when no native tool is available.

**Core principle:** Detect existing isolation first. Then use native tools. Then fall back to git. Never fight the harness.

## Step 0: Detect Existing Isolation

Check before creating anything — including whether the session itself started with `--worktree`/EnterWorktree, which already puts you in one:

```bash
GIT_DIR=$(cd "$(git rev-parse --git-dir)" 2>/dev/null && pwd -P)
GIT_COMMON=$(cd "$(git rev-parse --git-common-dir)" 2>/dev/null && pwd -P)
git rev-parse --show-superproject-working-tree 2>/dev/null  # non-empty = submodule, not a worktree
```

**`GIT_DIR != GIT_COMMON` (and not a submodule), or session started with `--worktree`/EnterWorktree:** already isolated — skip to Step 2, do not create another worktree.

**`GIT_DIR == GIT_COMMON` (or a submodule):** normal checkout. Ask consent unless the user already stated a preference: "Would you like me to set up an isolated worktree? It protects your current branch from changes." Declined -> work in place, skip to Step 2.

## Step 1a: Native Tools (preferred)

`claude --worktree <name>` (alias `-w`) or `EnterWorktree(name: <name>)` creates `.claude/worktrees/<name>/` on branch `worktree-<name>`; reusing a name reopens that worktree. Base ref follows `worktree.baseRef`: `"fresh"` = remote default branch (local HEAD if no remote), `"head"` = current HEAD. `.worktreeinclude` (gitignore syntax, repo root) copies gitignored files like `.env` into new worktrees. `EnterWorktree(path: <path>)` enters a worktree already listed by `git worktree list` under `.claude/worktrees/`. While isolated, Edit/Write/NotebookEdit into the main checkout and Bash whose cwd or git target is the main checkout are blocked — enforced, not a convention.

Have a native tool? Use it, skip to Step 2. Only fall through to 1b with none available.

## Step 1b: Git Worktree Fallback

Default to `.claude/worktrees/` (harness-recognised) and verify it's ignored first:

```bash
git check-ignore -q .claude/worktrees || { echo ".claude/worktrees" >> .gitignore; git add .gitignore; git commit -m "chore: ignore worktree directory"; }
git worktree add .claude/worktrees/<branch> -b <branch>
cd .claude/worktrees/<branch>
```

**Sandbox fallback:** `git worktree add` denied by sandbox -> tell the user, work in the current directory instead.

## Step 2: Project Setup

```bash
if [ -f package.json ]; then npm install; fi
if [ -f Cargo.toml ]; then cargo build; fi
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f pyproject.toml ]; then poetry install; fi
if [ -f go.mod ]; then go mod download; fi
```

## Step 3: Verify Clean Baseline

```bash
npm test / cargo test / pytest / go test ./...
```

Fail -> report failures, ask whether to proceed or investigate. Pass -> report ready: path, test count, feature name.

## Quick Reference

| Situation | Action |
|-----------|--------|
| Already isolated, or in a submodule | Step 0 handles it — skip creation, or treat as normal repo |
| Native tool available | Use it (Step 1a) |
| No native tool | Git fallback (Step 1b) |
| Permission error on `git worktree add` | Sandbox fallback, work in place |

## Red Flags

**Never:**
- Use `git worktree add` when `--worktree`/EnterWorktree is available — the #1 mistake
- Remove a worktree from inside it (see finishing-a-development-branch)
- Proceed with failing tests without asking

**Always:** run Step 0 detection first, prefer native tools over the git fallback, verify the fallback directory is ignored, verify a clean test baseline.

Attribution

MixardMixard
View sourceMore from Mixard →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.

1023331 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

686011 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3331 votes

catchup

Recovers prior coding-agent session context by running `catchup <agent> --since-compact`, which extracts a clean summary of a previous Codex, Claude Code, Antigravity, OpenCode, or Pi Agent session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", or asks to recover/summarize a previous session before continuing. Do NOT use for the current conversation, git history, or any non-agent log.

611 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →