Git WorktreeCAUTION
The most comprehensive Claude Code guide: agentic workflows, hooks, skills, MCP servers, quizzes, and production-ready templates. 430K+ lines.
Overview
The most comprehensive Claude Code guide: agentic workflows, hooks, skills, MCP servers, quizzes, and production-ready templates. 430K+ lines.
d90170da4369OBSERVED · 2026-10-07What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: git-worktree description: Create isolated git worktrees for feature development without switching branches argument-hint: "<branch_name> [--from <base>]" effort: medium when_to_use: "Use when starting feature work that needs isolation from main workspace." disable-model-invocation: true --- # Git worktree setup Create isolated git worktrees for feature development without switching branches. **Core principle:** Smart directory selection + symlink optimization + background verification = fast, reliable isolation. **Requires:** Git 2.5.0+ (July 2015) **Companion commands:** [`/git-worktree-status`](../../commands/git-worktree-status.md) | [`/git-worktree-remove`](../../commands/git-worktree-remove.md) | [`/git-worktree-clean`](../../commands/git-worktree-clean.md) ## Process 1. **Validate Branch Name**: Check naming convention and conflicts 2. **Check Existing Directories**: `.worktrees/` or `worktrees/` 3. **Verify .gitignore**: Ensure worktree dir is ignored 4. **Create Worktree**: `git worktree add` 5. **Symlink Dependencies**: Reuse `node_modules/` from main worktree 6. **Detect Database Provider**: Check for DB branching capability 7. **Install Dependencies**: Auto-detect package manager (if not symlinking) 8. **Run Background Verification**: Type check + tests in background 9. **Report Location**: Confirm ready with status ## Flags | Flag | Effect | |------|--------| | `--fast` | Skip dependency install and baseline tests | | `--isolated` | Fresh `node_modules` install (no symlink) | | `--skip-install` | Skip dependency install, keep baseline tests | ## Branch name validation ```bash # Auto-prefix based on naming convention # "auth" → "feat/auth" (default prefix) # "fix/login-bug" → kept as-is # "refactor/db-layer" → kept as-is # Accepted prefixes: feat/, fix/, refactor/, chore/, docs/, test/, perf/ # If no prefix → default to feat/ # Reject invalid characters echo "$BRANCH_NAME" | grep -qE '^[a-zA-Z0-9/_-]+$' || exit 1 # Check branch doesn't already exist git show-ref --verify --quiet "refs/heads/$BRANCH_NAME" && echo "Branch already exists" && exit 1 ``` ## Directory selection ### Priority order ```bash # 1. Check existing directories ls -d .worktrees 2>/dev/null # Preferred (hidden) ls -d worktrees 2>/dev/null # Alternative # 2. Check CLAUDE.md for preference grep -i "worktree.*director" CLAUDE.md 2>/dev/null # 3. Ask user if neither exists ``` **If both exist:** `.worktrees/` wins. ## Safety verification **For project-local directories:** ```bash # Check if directory in .gitignore grep -q "^\.worktrees/$" .gitignore || grep -q "^worktrees/$" .gitignore ``` **If NOT in .gitignore:** 1. Add line to .gitignore 2. Commit the change 3. Proceed with worktree creation **Why critical:** Prevents accidentally committing worktree contents. ## Creation steps ```bash # 1. Detect project name project=$(basename "$(git rev-parse --show-toplevel)") # 2. Create worktree with new branch git worktree add .worktrees/$BRANCH_NAME -b $BRANCH_NAME # 3. Navigate cd .worktrees/$BRANCH_NAME ``` ## Dependency optimization (node.js) **Default behavior:** Symlink `node_modules` from main worktree to avoid duplicate installs (~30s saved). ```bash # Symlink node_modules (default, unless --isolated) if [ -d "../../node_modules" ] && [ ! "$ISOLATED" = true ]; then ln -s "$(cd ../.. && pwd)/node_modules" node_modules echo "Symlinked node_modules from main worktree" fi # With --isolated: fresh install if [ "$ISOLATED" = true ]; then pnpm install # or npm/yarn based on lockfile detection fi ``` **When to use `--isolated`:** - Schema changes requiring different package versions - Testing dependency upgrades - Debugging `node_modules` issues ## Auto-Detect setup (multi-stack) ```bash # Node.js (if not symlinked) if [ -f package.json ] && [ ! -L node_modules ]; then pnpm install # Detect from lockfile: pnpm-lock.yaml / yarn.lock / package-lock.json 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 ``` ## Background verification **Instead of blocking on full test suite, run verification in background:** ```bash # Create log directory mkdir -p .worktree-logs # Background type check (Node.js) if [ -f tsconfig.json ]; then npx tsc --noEmit > .worktree-logs/typecheck.log 2>&1 & echo "Type check running in background (check with /git-worktree-status)" fi # Background test run if [ -f package.json ]; then npx vitest run --reporter=json > .worktree-logs/tests.log 2>&1 & echo "Tests running in background (check with /git-worktree-status)" fi ``` **With `--fast`:** Skip all verification. ## Final report ``` Worktree ready at <full-path> Branch: feat/auth (created from main) Dependencies: symlinked from main worktree Background checks: type check + tests running Check status: /git-worktree-status Ready to implement <feature-name> ``` ## Database branch suggestion **After worktree creation, detect database provider and suggest isolation.** ### Quick command reference | Provider | Suggested Command | |----------|-------------------| | **Neon** | `neonctl branches create --name <branch> --parent main` | | **PlanetScale** | `pscale branch create <db> <branch>` | | **Local Postgres** | `psql -c "CREATE SCHEMA <schema>;"` | | **Other** | Manual setup or shared DB | **Example output:** ``` Worktree created at .worktrees/feat/auth DB Isolation: neonctl branches create --name feat-auth --parent main Then update .env with new DATABASE_URL Full guide: ../workflows/database-branch-setup.md ``` ### .worktreeinclude setup **Critical for environment variables:** ```bash # .worktreeinclude (at project root) .env .env.local .env.development **/.claude/settings.local.json ``` **Why:** Without this, `.env` files won't be copied to worktrees. ### When to create databas
Trust audit
CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | WARN |
| L1 | Static analysis of the code | NA |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (2)
whitepapers/recap-cards/en/_extensions
whitepapers/recap-cards/fr/_extensions
Gates applied: no_behavioural_pass.
d90170da4369full audit observations/trust-audit/skill/florianbruniaux__git-worktree.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-07 | d90170da4369 | CAUTION | B | 89 | first audit |
Questions
What does the Git Worktree skill do?
The most comprehensive Claude Code guide: agentic workflows, hooks, skills, MCP servers, quizzes, and production-ready templates. 430K+ lines.
Is Git Worktree safe to install?
With care. The audit graded it B (89/100) and found 2 things worth knowing before you trust this skill, listed below with the exact line each was found on.
What can Git Worktree access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
How current is this page?
The grade is for one exact copy of the source (d90170da4369), read on 2026-10-07. The repository is watched, and a new audit runs when it changes — this is the first audit.