---
name: recollect-worktree
description: Manages Git worktrees for Recollect development. Creates worktrees in .worktrees/, copies .env.local, and runs pnpm install. Use when reviewing PRs in isolation or working on features in parallel.
---
Manage Git worktrees for isolated parallel development in the Recollect repository.
**What it does:**
- Creates worktrees from main branch with clear branch names
- Copies `.env.local` automatically (Supabase/Cloudflare keys)
- Runs `pnpm install` to make worktrees dev-ready
- Lists, switches between, and cleans up worktrees
**When to use:**
- Code review (`/review`): Isolated environment for reviewing PRs
- Feature work (`/work`): Parallel work on multiple features
- Testing: Test a feature branch without switching
```bash
# Create a new worktree (copies .env.local, runs pnpm install)
bash .claude/skills/recollect-worktree/scripts/worktree-manager.sh create feature-name
# List all worktrees
bash .claude/skills/recollect-worktree/scripts/worktree-manager.sh list
# Switch to a worktree
bash .claude/skills/recollect-worktree/scripts/worktree-manager.sh switch feature-name
# Clean up inactive worktrees
bash .claude/skills/recollect-worktree/scripts/worktree-manager.sh cleanup
```
**`create [from-branch]`**
Creates new worktree with dependencies installed.
```bash
bash .claude/skills/recollect-worktree/scripts/worktree-manager.sh create feature-login
```
What happens:
1. Checks if worktree already exists
2. Updates base branch from remote
3. Creates new worktree and branch
4. Copies `.env.local`
5. Runs `pnpm install`
6. Shows path for cd-ing to worktree
**`list` or `ls`**
Lists all worktrees with their branches and status.
**`switch ` or `go `**
Switches to an existing worktree.
**`cleanup` or `clean`**
Removes inactive worktrees with confirmation.
**PR Review:**
```bash
# Create worktree for PR review
bash .claude/skills/recollect-worktree/scripts/worktree-manager.sh create pr-664-lightbox
# Move to worktree and start dev
cd .worktrees/pr-664-lightbox
pnpm run dev
# After review, return and cleanup
cd ../..
bash .claude/skills/recollect-worktree/scripts/worktree-manager.sh cleanup
```
**Parallel Development:**
```bash
# Start first feature
bash .claude/skills/recollect-worktree/scripts/worktree-manager.sh create feature-a
# Start second feature
bash .claude/skills/recollect-worktree/scripts/worktree-manager.sh create feature-b
# Switch between them
bash .claude/skills/recollect-worktree/scripts/worktree-manager.sh switch feature-a
```
**`/review` command:**
1. Check current branch
2. If already on PR branch → stay there
3. If different branch → offer worktree:
"Use worktree for isolated review? (y/n)"
- yes → call recollect-worktree skill
- no → proceed with PR diff on current branch
**`/work` command:**
1. Ask: "How do you want to work?"
- New branch on current worktree (live work)
- Worktree (parallel work)
2. If worktree → call recollect-worktree skill
**KISS:** One manager script, simple commands, sensible defaults
**Opinionated Defaults:**
- Worktrees from `main` (unless specified)
- Stored in `.worktrees/` directory
- Branch name becomes worktree name
- `.env.local` copied automatically
- `pnpm install` runs automatically
**Safety First:**
- Confirms before creating/removing
- Won't remove current worktree
- Clear error messages
**Directory structure:**
```
.worktrees/
├── feature-login/
│ ├── .git
│ ├── .env.local # Copied from main
│ ├── node_modules/ # Installed via pnpm
│ └── ...
└── pr-664-lightbox/
└── ...
```
**How it works:**
- Uses `git worktree add` for isolated environments
- Each worktree has its own branch
- Share git history with main repo
- Lightweight (filesystem links, no duplication)
Worktree is ready when:
- [ ] `.worktrees//` directory exists
- [ ] `.env.local` is present in worktree
- [ ] `node_modules/` exists (pnpm install completed)
- [ ] `pnpm run dev` starts successfully