Claude-skill-registry dev-worktree
This skill should be used when the user asks to "create an isolated worktree", "set up worktree for feature", "create a feature branch worktree", or needs workspace isolation with automatic dependency setup and test verification.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/dev-worktree" ~/.claude/skills/majiayu000-claude-skill-registry-dev-worktree && rm -rf "$T"
skills/data/dev-worktree/SKILL.mdCreate Development Worktree
Create an isolated git worktree for feature work, ensuring workspace isolation and clean baseline.
The Process
Step 1: Ensure .worktrees/ is Gitignored
CRITICAL: Verify worktree directory is gitignored to prevent accidental commits.
Run:
if ! git check-ignore -q .worktrees 2>/dev/null; then echo "Adding .worktrees/ to .gitignore" echo ".worktrees/" >> .gitignore git add .gitignore git commit -m "chore: add .worktrees/ to gitignore Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>" fi
Description: dev-worktree: check if .worktrees is gitignored and add if missing
Step 2: Determine Branch Name
Extract from
.claude/PLAN.md first line or infer from feature name:
Run:
# Extract from PLAN.md if exists feature_name=$(grep -m1 '^# ' .claude/PLAN.md 2>/dev/null | sed 's/^# //' | tr '[:upper:] ' '[:lower:]-' | sed 's/[^a-z0-9-]//g') # Or ask user if needed
Description: dev-worktree: extract or prompt for feature name
Branch name format:
feature/${feature_name}
Step 3: Create Worktree
Run:
# Create worktree with new branch git worktree add .worktrees/${feature_name} -b feature/${feature_name} # Change to worktree directory cd .worktrees/${feature_name}
Description: dev-worktree: create isolated git worktree with feature branch
Step 4: Run Project Setup
Auto-detect and run setup based on project files:
Run:
# Node.js if [ -f package.json ]; then npm install fi # Python if [ -f requirements.txt ]; then pip install -r requirements.txt fi if [ -f pyproject.toml ]; then poetry install || pip install -e . fi if [ -f pixi.toml ]; then pixi install fi # Rust if [ -f Cargo.toml ]; then cargo build fi # Go if [ -f go.mod ]; then go mod download fi
Description: dev-worktree: auto-detect project type and install dependencies
Step 5: Verify Clean Baseline (Optional)
Run tests to verify baseline if project has test suite:
Run:
# Examples - auto-detect test command if [ -f package.json ] && grep -q '"test"' package.json; then npm test elif [ -f Cargo.toml ]; then cargo test elif [ -f pytest.ini ] || [ -f pyproject.toml ]; then pytest elif [ -f go.mod ]; then go test ./... fi
Description: dev-worktree: auto-detect and run project test suite
If tests fail: Report failures and note that baseline has issues. If tests pass: Report clean baseline.
Step 6: Report Ready
Report completion status:
✓ Worktree created: .worktrees/${feature_name} ✓ Branch: feature/${feature_name} ✓ Dependencies installed ✓ Tests passing (or note if failed) Ready for implementation.
Safety Checks
Execute before creating worktree:
- Verify .worktrees/ is gitignored
- Add to .gitignore if missing
- Commit gitignore change
Execute after creating worktree:
- Run project setup (npm install, etc.)
- Verify clean baseline with tests
- Report status
Red Flags
Critical - Never deviate from these rules:
- Do not create worktree without verifying gitignore
- Do not skip project setup commands
- Do not proceed without reporting test status
Critical - Always follow these rules:
- Verify .worktrees/ is ignored before creating
- Auto-detect project type and run appropriate setup
- Report test baseline status
Common Patterns
Node.js Project
# .worktrees/ gitignored → create worktree → npm install → npm test
Python Project
# .worktrees/ gitignored → create worktree → pixi install → pytest
Rust Project
# .worktrees/ gitignored → create worktree → cargo build → cargo test
Workflow Transition
After worktree creation, the workspace is ready. Proceed to dev-implement to start implementing tasks.
Current working directory:
.worktrees/${feature_name}
All implementation work happens here, keeping main workspace clean.