move-to-worktreelisted
Install: claude install-skill foyzulkarim/skills
# Move-to-Worktree
Companion to `/start-task` for parallel Phase 4 lanes. `/start-task` leaves the
primary checkout *on* the new feature branch; this skill moves that branch into
its own worktree and puts the primary back on the default branch — one
worktree + one branch + one agent session per in-flight issue.
## Run (1 bash call)
```bash
bash {base_directory}/move-to-worktree.sh
```
No arguments — it operates on the branch currently checked out. The script:
1. Hard-stops unless run in the **primary checkout**, on a **task branch**
(`{type}/{issue#}/{slug}`), with a **clean tree** and its upstream set to
**`origin/<branch>`** literally (not a fork-style `upstream` remote) — i.e.
exactly the state `/start-task` leaves behind. Also hard-stops unless
`.worktrees/` is **gitignored**: the worktree is nested inside the repo, so an
unignored one gets staged by any `git add -A` as an embedded gitlink, committing
this lane's HEAD onto another branch. Remedy is one line in `.gitignore`; the
script never edits it for you.
2. Fetches `origin/<branch>` so the behind-check reflects reality, then pushes any
local-only commits and checks out the default branch (this must happen *before*
the worktree is created — git refuses to check out a branch in two places).
3. `git worktree add .worktrees/<issue#> <branch>` — nested inside the repo root,
never a `../` sibling. The context file `specs/context/<issue#>.md`
travels with the branch (it's committed). If