Pickup
Pick up a ticket and set up an isolated workspace for it.
Input
Either a ticket reference (e.g., DOD-152) or a description to search for.
Process
Ensure we're on the main branch and up to date:
# Determine the main branch (master or main) git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@' # Switch to it git checkout <main-branch> # Pull latest git pull origin <main-branch>If there are uncommitted changes on the current branch, warn the user and stop.
Clean up stale worktrees and branches: Prune remote tracking refs and remove any local branches whose remote branch has been deleted (e.g., from a previous squash-merge with
--delete-branch).git fetch --prune git branch -v | grep '\[gone\]' | sed 's/^[+* ]//' | awk '{print $1}' | while read branch; do worktree=$(git worktree list | grep "\\[$branch\\]" | awk '{print $1}') if [ ! -z "$worktree" ] && [ "$worktree" != "$(git rev-parse --show-toplevel)" ]; then git worktree remove --force "$worktree" fi git branch -D "$branch" doneIf nothing to clean, proceed silently.
Look up the ticket — use available tracker tools to read the full ticket (title, description, acceptance criteria, linked issues)
Create worktree:
git worktree add ../<repo-name>-<ticket-id> -b <ticket-id>Read context — if the ticket references a spec, read it. Check for related docs.
Report ready state:
Picked up: <ticket-id> — <title> To start working: cd ../<repo-name>-<ticket-id> && claude When finished: git worktree remove ../<repo-name>-<ticket-id>
Notes
- Hotfix pickup: a
hotfix-labeled ticket (declared at filing time — seefile-ticket§ Hotfix) is a manual hotfix pickup — it runs here on the single-ticket path, outside the epic machinery (the resident driver never selects it). 0.16.0 ships the declaration slot and this route-around; the full minimal-gate hotfix path (verify + one review + human deploy word + mandatory debt ticket) is a follow-up standalone release. - Base new worktrees on the main branch (usually
masterormain) - If the branch already exists, offer to use it or suggest a different name
- The ticket ID is the branch name for traceability
- After pickup, the next step is typically
dodi-dev:write-plan