--- name: switch-worktree description: Switch VS Code to an existing PAISY git worktree. Lists worktrees, replaces the current window (code -r), announces BigMind focus, and restores session context. Use when asked to switch worktree, open another ticket, change to a different branch/ticket, or activate a worktree. --- # Switch Worktree ## When to use - User wants to switch to a different PAISY ticket worktree - User says "switch to ESIDEPAISY-XXXXX", "open worktree for ...", "go to ticket ..." - User wants to see available worktrees and pick one ## When NOT to use - User wants to **create** a new worktree → use `create-worktree` skill instead - User wants to delete/remove a worktree - User just wants to see git history (no switch needed) ## Inputs | Input | Required | Source | Example | |-------|----------|--------|---------| | `TICKET_KEY` | Optional | User or interactive selection | `ESIDEPAISY-12081` | If no ticket key is provided, list all worktrees and let the user pick. ## Workflow ### 1. List available worktrees ```bash git -C /Users/pplate/git/paisy worktree list ``` Parse output to show available worktrees with their branches. ### 2. Match or select target If `TICKET_KEY` provided: - Look for a worktree path containing the ticket key: `/Users/pplate/git/paisy-` - If not found, report error and show available worktrees If no `TICKET_KEY`: - Present the list and ask the user to pick ### 3. Show worktree status before switching ```bash cd git branch --show-current git status --short git log --oneline -3 ``` Report: branch name, uncommitted changes (if any), last 3 commits. ### 4. Switch VS Code window ```bash code -r ``` This replaces the current VS Code window with the target worktree. **Important:** After this command, the current Roo session ends because the workspace changes. The next Roo session will start in the new worktree. ### 5. Update BigMind focus Before executing `code -r`, announce the switch: ```python memory_store_fact( category="codebase", fact=f"Switched worktree to {TICKET_KEY} at {target_path}, branch {branch_name}" ) memory_announce_focus( session_id=SESSION_ID, description=f"Switching to {TICKET_KEY} worktree", files=[target_path], ide_hint="Roo" ) ``` ### 6. Context recovery hint After switching, the next session should: 1. Run `memory_search_facts("")` to find prior work 2. Run `memory_search_chunks("")` for detailed context 3. Check `docs///` for existing documentation This happens automatically via the BigMind session ritual. ## Error Handling | Error | Resolution | |-------|------------| | No worktrees found | Only the main repo exists — suggest `create-worktree` | | Ticket worktree not found | Show available worktrees, ask user to pick or create | | Uncommitted changes in current worktree | Warn user before switching — suggest commit or stash | | `code` CLI not available | Run `Shell Command: Install 'code' command in PATH` from VS Code | ## Notes - `code -r` replaces the current window — the Roo session will end after this - The new window starts fresh — BigMind provides continuity across the switch - If the user has uncommitted changes, always warn before switching