Skip to content

feat(agents): add dispatch-implement wrapper skill for Claude Code (#210) - #214

Merged
jinyeow merged 4 commits into
mainfrom
feat/dispatch-implement-claude
Aug 25, 2026
Merged

feat(agents): add dispatch-implement wrapper skill for Claude Code (#210)#214
jinyeow merged 4 commits into
mainfrom
feat/dispatch-implement-claude

Conversation

@jinyeow

@jinyeow jinyeow commented Aug 25, 2026

Copy link
Copy Markdown
Owner

What

Adds ai-agents/skills/dispatch-implement/SKILL.md, a thin wrapper skill that dispatches
one subagent per ticket to run /implement unmodified, for Claude Code.

  • Parses one or more #ticket references from the invocation.
  • Judges file/scope overlap pairwise; dispatches in parallel only when every pair is
    confirmed non-overlapping, otherwise sequential (conservative by default).
  • Picks a model per ticket under the existing implement-stage pin (Opus or Sonnet, never
    Fable/Haiku), honoring an explicit override where one is given.
  • Dispatches via the Agent tool (subagent_type: general-purpose, so /implement's own
    /tdd//code-review//spec-review//codex-review calls still work), with
    isolation: "worktree" on parallel children to avoid a shared .git/index race.
  • Integrates parallel children by cherry-picking each child's commits onto the invoking
    branch in ticket order, running fast checks once over the result, then cleaning up child
    worktrees and branches. Stops on a cherry-pick conflict rather than resolving it silently.
  • Registers the new skill in ai-agents/SKILL-OWNERSHIP.md, Claude Code only for now;
    Codex CLI (feat(agents): dispatch-implement — Codex CLI dispatch #211) and Pi (feat(agents): dispatch-implement — Pi dispatch #212) dispatch are tracked separately and stop-and-report until
    wired.
  • Parallel dispatch is gated off: every ticket runs sequentially regardless of the
    overlap judgment, until chore(agents): confirm dispatch-implement parallel dispatch after trial week #213 confirms the base flow against real usage and lifts the
    gate.

implement/SKILL.md itself is untouched (verified via diff), per
docs/adr/implement-stays-minimal-dispatch-in-wrapper-skill.md.

Why

Per #207 / .agents/specs/dispatch-implement.md: the user regularly hands off tickets by
typing "dispatch subagent(s) to /implement #123" by hand. This automates that habit
without folding dispatch logic into /implement itself, which the linked ADR rejects as
breaking its minimal upstream shape.

Verification

  • git --no-pager diff main...HEAD -- ai-agents/skills/implement/SKILL.md returns empty,
    confirming /implement is byte-unchanged.
  • Reviewed by a Fable subagent and Codex (cross-model second opinion); findings applied in
    a follow-up commit (cherry-pick range/abort mechanics, concrete overlap rules, parsing
    edge-case guards, explicit fast-checks-only tradeoff, child-branch cleanup).
  • Not yet exercised against a real dispatch run. chore(agents): confirm dispatch-implement parallel dispatch after trial week #213 tracks the trial and lifting the
    sequential-only gate.

Closes #210.

)

Dispatches one subagent per ticket to run /implement unmodified: parses
#ticket refs, judges file/scope overlap pairwise (parallel only when every
pair is confirmed non-overlapping, sequential otherwise), and picks a model
per ticket subject to the implement-stage pin.

Parallel children get isolation: "worktree" so two /implement runs never
race one shared .git/index while committing. Codex CLI (#211) and Pi (#212)
dispatch are not wired yet; the skill stops and reports there.

implement/SKILL.md is unchanged.
Parallel children commit to their own isolated worktree branches, so add an
explicit integrate step: cherry-pick each child's commits onto the invoking
branch in ticket order, run fast checks once, remove the worktrees, and stop
on a conflict rather than resolving silently.

Also treat haiku like fable in the override rules — both fail the
implement-stage Opus-or-Sonnet pin.
)

Parallel dispatch's isolated-worktree + cherry-pick integration path has
no real usage behind it yet. Force sequential regardless of the overlap
judgment until #213 confirms the base flow (parsing, model pick, single
dispatch, /implement completing inside a child) against real usage.
@jinyeow
jinyeow merged commit 2d52bb7 into main Aug 25, 2026
5 checks passed
@jinyeow
jinyeow deleted the feat/dispatch-implement-claude branch August 25, 2026 07:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(agents): dispatch-implement — Claude Code dispatch

1 participant