Implement a batch of tickets through per-ticket subagents #82
Reference in New Issue
Block a user
Delete Branch "feat/implement-tickets-orchestrator"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What this adds
Two files that turn the one-ticket-at-a-time
/implementloop into an orchestrated batch..claude/skills/implement-tickets/SKILL.md— user-invoked (disable-model-invocation: true, so it costs no context until typed). The agent that runs it is an orchestrator, not an implementer:tea, reading eachBlocked byline.git worktree add ../ticket-<n>, copy the gitignored.env, claim the issue, write a brief to.scratch/, then dispatch the whole wave as onetaskbatch.--no-ff, comment the report, close, remove the worktree. Textual conflicts are the orchestrator's; a semantic clash goes back to whichever ticket owns the contract..omp/agents/ticket-implementer.md— the worker. Brief-driven, worktree-bound, and gated on review before it reports: it runs thecode-reviewskill over its own diff withcr-specandcr-standardson the two axes, fixes Critical and Important findings in at most two rounds, and returns a short status contract (DONE/DONE_WITH_CONCERNS/BLOCKED/NEEDS_CONTEXT/REVIEW_BLOCKED).The brief template makes the subagent read
tea issue <n> --commentsfor its ticket and for the issue that ticket refers to — the comments carry decisions the body never got updated with — and names thetddskill at each seam where a test comes first. Briefs are written in the ubiquitous language ofCONTEXT.md; a brief that says "scrape" where the domain says Poll hands the subagent the wrong model of the system.Verification
Dispatched a real
ticket-implementeras a probe. The agent resolved from.omp/agents, and it spawnedcr-spec, which replied. That was the one thing that could have silently killed the design:task.maxRecursionDepthdefaults to 2, and the chain is session to orchestrator to implementer to reviewer. It clears. If that ever changes, the implementer returnsREVIEW_BLOCKEDand the orchestrator runs the review itself.Confirmed against the omp binary that
autoloadSkills: code-review, tddis split byparseArrayOrCSV, not swallowed as one unknown name.Notes
.omp/agents, never.claude/agents— the latter is deliberately skipped by omp because its frontmatter is a different contract..gitignoregains.scratch/, where briefs and reports live.