git-worktree-workflow
Manage git worktrees for branch isolation. Use when creating feature branches, working on isolated tasks, creating PRs, and cleaning up after merge.
What this skill does
# Git Worktree Workflow
## Overview
Manage git worktrees for branch isolation within a single Claude session. Worktrees allow working on a feature branch in a separate directory while keeping the main repo untouched.
## Directory Structure
```
MainProjectDir/
├── ProjectDirApp/ # Main repo (claude runs here)
│ └── .claude/ # Claude settings & rules
└── ProjectWorkTree/ # Worktree (isolated branch work)
└── .claude -> ../ProjectDirApp/.claude # Symlinked
```
## Commands Reference
### Create Worktree
```bash
# From main repo directory
git worktree add ../WorktreeName -b branch-name
# Symlink Claude settings
ln -s ../CurrentRepoDir/.claude ../WorktreeName/.claude
```
### List Worktrees
```bash
git worktree list
```
### Remove Worktree
```bash
git worktree remove ../WorktreeName
git branch -d branch-name # Delete local branch
```
## Workflows
### Phase 1: Create Worktree
```
Step 1: Create worktree with new branch
git worktree add ../WorktreeName -b feature/my-feature
Step 2: Symlink Claude settings
ln -s "$(basename $(pwd))"/.claude ../WorktreeName/.claude
Step 3: Verify setup
git worktree list
```
### Phase 2: Work in Worktree
```
Step 1: Work on files in ../WorktreeName/
Use full paths: ../WorktreeName/src/file.ts
Step 2: Commit changes
cd ../WorktreeName && git add . && git commit -m "message"
Step 3: Push branch
cd ../WorktreeName && git push -u origin feature/my-feature
```
### Phase 3: Create PR
```
Step 1: Create pull request
cd ../WorktreeName && gh pr create --base main --head feature/my-feature
Step 2: Return PR URL to user
Wait for approval
```
### Phase 4: After Merge - Cleanup
```
Step 1: Return to main repo
cd back to original repo
Step 2: Pull latest main
git pull origin main
Step 3: Remove worktree
git worktree remove ../WorktreeName
Step 4: Delete local branch
git branch -d feature/my-feature
Step 5: Verify cleanup
git worktree list
```
## Guidelines
### Do
- Symlink `.claude/` directory - never copy
- Use relative paths for symlinks (`../RepoName/.claude`)
- Cleanup after PR merge (remove worktree + delete branch)
- Work in worktree using full paths from main repo
- Return to main repo before cleanup operations
### Don't
- Copy `.claude/` directory (breaks updates)
- Use absolute paths for symlinks
- Leave worktrees after merge (clutters disk)
- Delete worktree before pushing changes
## Examples
### Example: Feature Development
```bash
# Create
git worktree add ../myapp-auth -b feature/oauth2
ln -s ../myapp/.claude ../myapp-auth/.claude
# Work (edit files in ../myapp-auth/)
cd ../myapp-auth
git add . && git commit -m "feat: add OAuth2 support"
git push -u origin feature/oauth2
# PR
gh pr create --base main --head feature/oauth2 --title "Add OAuth2" --body "..."
# After merge - Cleanup
cd ../myapp
git pull origin main
git worktree remove ../myapp-auth
git branch -d feature/oauth2
```
### Example: Bugfix
```bash
# Create
git worktree add ../myapp-fix -b bugfix/login-issue
ln -s ../myapp/.claude ../myapp-fix/.claude
# Work & PR
cd ../myapp-fix
# ... fix bug, commit, push, create PR ...
# Cleanup after merge
cd ../myapp
git worktree remove ../myapp-fix
git branch -d bugfix/login-issue
```
## Error Handling
### Worktree already exists
```bash
# Check existing worktrees
git worktree list
# Remove if stale
git worktree remove ../WorktreeName --force
```
### Branch already exists
```bash
# Use existing branch instead of -b
git worktree add ../WorktreeName existing-branch
```
### Unmerged changes in worktree
```bash
# Force remove (loses uncommitted changes)
git worktree remove ../WorktreeName --force
```
## Installation
Symlink the helper script (do not copy):
```bash
ln -s /path/to/skills/development/git-worktree-workflow/scripts/worktree.sh .claude/scripts/worktree.sh
```
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.