Rework the delegation/trigger choreography so @pm orchestrates end-to-end from
the issue thread while @qa reviews on the PR and never merges.
Flow: issue → @pm plans (asks creator; autopilot skips) → dev builds PR → dev
pings @pm on the issue → @pm hands to @qa → @qa reviews ON THE PR (recommends /
BOUNCE:@dev, direct qa↔dev loop, 3 max) → @qa APPROVEs → verdict on the ISSUE →
@pm → normal: tells creator "ready to merge" (human merges); autopilot: @pm
MERGE_PR. @pm never reads or comments on the PR (small context); @qa never merges.
- run-agent.sh: @pm prompt = 3 phases (plan / hand PR to @qa / finalize),
autopilot only drops the approval gate + adds @pm MERGE_PR. @qa prompt =
reviewer, ends with APPROVE / BOUNCE:@dev / HALT; identical in both flows.
- publish.sh: shared post_to()/trig()/resolve_pr() helpers + ISSN; @qa routes
reply to PR (bounce) vs issue (approve) and fires @pm/@dev; @pm handles
DELEGATE:@dev, DELEGATE:@qa (resolves the PR), and autopilot MERGE_PR; dev
NEW=true fires @pm on the issue, NEW=false fires @qa on the PR. Strip
APPROVE/HALT markers.
Tokens re-minted to match: TOKEN_PM gains write:repository (it merges now),
TOKEN_QA drops to read:repository (never merges).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>