parallel-delivery
Parallel delivery — one ticket, one worker, no side channel
A single session can ask its own next question. Several sessions working the same board cannot — there is no shared memory between a worker and the session that wrote the ticket, and no channel back except the tracker itself. This skill is what makes that safe: a locking convention so two workers never pick up the same ticket, an isolation convention so their work never collides on disk, and a report-back contract so "done" means something without anyone standing in a room to say so.
Claim protocol — the assignee field is the lock
A ticket is claimed by assigning it to yourself and moving it to In Progress in the tracker, before any work starts — not after you're sure you can finish it. Tracker-agnostic wording: the ticket backend's assignee field is the lock. Whatever the project uses — a Jira assignee, a Backlog.md owner column, a GitHub issue assignee — that field is authoritative for "is anyone already doing this?"
- If a ticket is already assigned, it is taken. Pick a different one. Don't message the other worker and don't assume they stalled; a ticket sitting assigned-but-idle past what the project considers stale is a board-integrity finding (
/smCheck 5), not something a worker resolves by quietly taking over. - Un-claim symmetrically. If you stop — blocked, wrong ticket, or the ticket under-specifies what it needs (below) — unassign and move the ticket back off In Progress in the same action. A claimed ticket nobody is working is worse than an unclaimed one: it looks taken.
Isolation — one workspace per worker
Each worker gets a fresh clone or a git worktree, never a shared checkout's default branch. Two workers editing the same working directory will silently interleave each other's uncommitted changes; a worktree or clone per ticket makes that structurally impossible instead of a discipline someone has to remember.
- Create the branch named in the ticket (its
Branchfield), not one you invent. Two workers inventing branch names independently is how two PRs collide on the same name or, worse, quietly target each other's commits. - The workspace is disposable. Once the PR is open, nothing about the ticket's state should live only in that checkout — see the report-back contract below.