You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(implementation): dispatch phase Review: tags to /review:quality-gate at phase boundaries #8331
A plan phase tagged Review: <concern> now gets that review. At the phase boundary, /implementation:implement and /implementation:implement-dispatch invoke /review:quality-gate <mode> in fresh context for each tag. They pass the phase diff, the tag, the Quality bar: line, the worktree path, the base SHA and the report-only flag, and withhold the rationale. The sequence is: review, fix inside the phase fence, one re-review scoped to the fixed hunks, then the phase-verifier last. If the same finding comes back CRITICAL a second time, it is written to DEVIATIONS.md as a blocker and escalated once; it never loops.
Key interfaces
From the plan's ## Design:
implementation skills/implement, implement-dispatch | phase-boundary dispatch of architecture, security, code-design tags to /review:quality-gate <mode> | reactive trigger
Phase-boundary dispatch: architecture → /review:quality-gate architecture; security → /review:quality-gate security; code-design → /review:quality-gate code-design; concurrency → /review:quality-gate slice concurrency (existing mode; reports nothing when the consumer has no concurrency criteria file). The review receives the phase diff, the tag and the Quality bar: line, with rationale withheld.
Dependency direction: planning cites review and implementation by /plugin:skill only; review never cites planning files; implementation reads the plan's Review: tags and invokes review. No cycle.
Lands before the principle reference so this effort's own tagged phases get reviewed.
Done when
grep -c "quality-gate code-design" on the implement SKILL.md returns ≥ 1, and implement-dispatch's phase-boundary section covers the same tags.
Eval cases (case.yaml dirs under the implementation plugin's evals/): a tagged phase dispatches its review before the commit; an untagged phase does not; a repeated CRITICAL escalates once (unattended). /evals:plugin-eval with and without; difference in the PR body.
After the commit, bash scripts/check-changed-skills.sh origin/main exits 0.
A changelog fragment for the implementation plugin.
Out of scope
When /planning:plan writes a Review: tag (plan-time checks item).
Decision carried from #8327 (user, 2026-10-18): /review:quality-gate adds no git -C * allow rules, because a wildcard before the subcommand also auto-approves -c core.fsmonitor=<cmd>. Unattended phase-boundary dispatch therefore cannot rely on pre-approved git -C <worktree> commands. This item decides how the dispatcher supplies the change set under unattended permission modes (for example, the orchestrator computes the diff itself and passes it in the brief).
Decision: skip and log a phase-boundary review the permission mode denies.
When an unattended run's permission mode denies the review gate's git -C <worktree> reads:
No allow rule is added for them (the no-git -C *-grant decision above stands).
The skipped review is appended to DEVIATIONS.md as a discovery entry marked unverified, naming the phase and tag.
The phase-verifier still runs.
Step 5's final report lists that phase and tag as not reviewed.
The review is never retried in another shape.
This choice was made in this autonomous run after the user deferred it. It is implemented in #8394, commit aa2efeea.
The same commit also changes the re-review rules in this issue's Outcome, on purpose:
The re-review runs once with the same --base as the first call, so the whole phase diff stays in scope (replacing "one re-review scoped to the fixed hunks"). A fix that missed its finding still rates it, and a defect the fix added rates too.
Any CRITICAL on the re-review stops the loop and is escalated once as a blocking human-decision (replacing "if the same finding comes back CRITICAL a second time"): the original finding, a regression the fix introduced, or a defect the first call missed.
The first phase of a fresh worker branch takes as --base the commit the branch was created from.
Activity
kyle-sexton commentedon Oct 19, 2026
Decision carried from #8327 (user, 2026-10-18): /review:quality-gate adds no
git -C *allow rules, because a wildcard before the subcommand also auto-approves-c core.fsmonitor=<cmd>. Unattended phase-boundary dispatch therefore cannot rely on pre-approvedgit -C <worktree>commands. This item decides how the dispatcher supplies the change set under unattended permission modes (for example, the orchestrator computes the diff itself and passes it in the brief).kyle-sexton commentedon Oct 19, 2026
kyle-sexton commentedon Oct 19, 2026
Decision: skip and log a phase-boundary review the permission mode denies.
When an unattended run's permission mode denies the review gate's
git -C <worktree>reads:git -C *-grant decision above stands).DEVIATIONS.mdas adiscoveryentry markedunverified, naming the phase and tag.phase-verifierstill runs.This choice was made in this autonomous run after the user deferred it. It is implemented in #8394, commit aa2efeea.
The same commit also changes the re-review rules in this issue's Outcome, on purpose:
--baseas the first call, so the whole phase diff stays in scope (replacing "one re-review scoped to the fixed hunks"). A fix that missed its finding still rates it, and a defect the fix added rates too.human-decision(replacing "if the same finding comes back CRITICAL a second time"): the original finding, a regression the fix introduced, or a defect the first call missed.--basethe commit the branch was created from.