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
fix(review): quality-gate pr mode assumes code-review always posts; it now outputs to the terminal by default #13010
plugins/review/skills/quality-gate/context/pr.md treats the marketplace code-review plugin (/code-review:code-review) as a surface that always posts to the PR. It gates the plugin as a mutation (its Mutation gate) and never runs it as a read-only pass. The pointer record there carries the recheck trigger "a mode that returns findings to the session".
Re-read the plugin's README and commands/code-review.md, and record what the default run does now.
Decide whether quality-gate pr may run /code-review:code-review without --comment as a read-only pass, and whether the Mutation gate then covers only the --comment form.
Update pr.md's pointer record (as-of date and trigger) and the mode's routing to match.
Acceptance
pr.md no longer depends on the plugin having no terminal mode.
The Mutation gate's scope matches what the plugin's default run actually does.
Refs: #12697 (found while verifying the pointer swaps in that PR).
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Medium
Complexity: Low
Uncertainty: Known
Flags: none
Blocked by: none
Understood: quality-gate's pr mode and the fanout skill assume /code-review:code-review always posts to the PR. The plugin now prints to the terminal by default and posts only with --comment.
Decision recorded. Answers to the refinement's four questions, from the upstream command file read 2026-11-04.
Agent choice, not an owner answer.
[quote truncated; the full decision is at the link]
Not admitted to the issue lane yet: no trusted-human acceptance criteria: a listed human must put the confirmed - [ ] criteria in the body or post them as their own comment, or, on an issue a listed human filed, intake's newest refinement comment must hold them unedited; intake's refinement of this body is due and may supply them.
Refinement. A read-only run explored this repository, searched its issues and pull requests, and read the allowed docs to draft what follows. On an issue a listed human filed, it counts as the issue's spec once posted, while unedited; it is still model text, so check it.
Intended outcome: pr.md describes /code-review:code-review as terminal-by-default and read-only without --comment, gates only the --comment form, and carries an updated as-of date and recheck trigger.
Does the plugin's commands/code-review.md, read live, make the default run (no --comment) fully read-only, with no PR comment, label or working-tree write? I could not fetch it in this run (WebFetch was denied), so only the README line quoted in the issue is known.
RECOMMENDED: Yes if the command file confirms it. Then the Mutation gate covers only the --comment form, and a bare /code-review:code-review run on a PR is a permitted read-only pass. Basis: judgment
Should quality-gate pr dispatch the plugin's default run automatically, or only list it as an optional read-only pass beside the bare bundled /code-review and the manual path?
RECOMMENDED: List it as an optional read-only pass, not a default. The manual path stays the default, as pr.md treats the bundled command. Basis: plugins/review/skills/quality-gate/context/pr.md:50
Should the pointer record add the plugin README and commands/code-review.md as pointers, with a new recheck trigger on the plugin's default output or --comment semantics changing, and an as-of date of 2026-11-04?
RECOMMENDED: Yes. Replace the fired trigger with that one and update the date. Basis: plugins/review/skills/quality-gate/context/pr.md:36
Should the same change update the other places that assume the plugin always posts, namely the fanout eval and the fanout SKILL.md line?
RECOMMENDED: Yes, if they assert the plugin always posts. Narrow the eval at fanout/evals/evals.json:72 to the --comment form and check fanout/SKILL.md:166 for the same wording. Basis: plugins/review/skills/fanout/evals/evals.json:72
Sources read
plugins/review/skills/quality-gate/context/pr.md:11-14: says the plugin always posts findings as a PR comment and has no mode returning them to the session
plugins/review/skills/quality-gate/context/pr.md:26-39: pointer record, as of 2026-10-11, with the recheck trigger
plugins/review/skills/quality-gate/context/pr.md:41-48: Mutation gate covers the plugin unconditionally and says every run posts
plugins/review/skills/fanout/evals/evals.json:72: eval forbids dispatching /code-review:code-review without opt-in
https://raw.githubusercontent.com/anthropics/claude-plugins-official/main/plugins/code-review/commands/code-review.md: not read, WebFetch was denied in this run
To answer, post a comment that starts with this line:
**Decision recorded.** <answer>
Automated refinement by the lanes App. Answer with a comment whose first line is **Decision recorded.**.
Decision recorded. Answers to the refinement's four questions, from the upstream command file read 2026-11-04.
Agent choice, not an owner answer.
Source: plugins/code-review/commands/code-review.md on anthropics/claude-plugins-official main, read directly with gh api (not through /discovery:research; it is the single primary source). Line numbers below are origin/main after #12997.
Yes, the default run posts nothing. Step 7 outputs the findings to the terminal, then: "If --comment argument was NOT provided, stop here. Do not post any GitHub comments." Only the --comment branches post: step 7 posts a summary comment with gh pr comment when no issues were found, and step 9 posts inline comments. The command still lists Bash(gh pr comment:*) and the inline-comment tool in allowed-tools, so the read-only default rests on its instructions, not a tool restriction; pr.md should say so. Step 1 also stops every run on a closed or draft PR, and when "Claude has already commented on this PR". A PR that already carries a review comment written by Claude, such as one from this repository's CI review lanes, can trip that stop, so pr.md should name it as a reason a default run may return nothing.
Optional read-only pass, not a default. List /code-review:code-review without --comment beside the bundled /code-review <target> (pr.md:57-59); the manual path stays the default.
Yes. The plugin's pointer bullet (pr.md:14-18, which already points at the README's Commands section) adds commands/code-review.md, with as-of 2026-11-04, and its recheck trigger becomes: the command file changes its --comment handling, its step-1 stop conditions, or its allowed-tools. The Mutation gate (pr.md:45-50) covers the plugin only in its --comment form.
Yes for fanout/SKILL.md:166, fanout/context/findings-normalization.md:21 and the expected output at fanout/evals/evals.json:69; the assertion at evals.json:72 stays. SKILL.md:166 says "there is no mode that returns them to the session instead", findings-normalization.md:21 says the plugin "ends by posting its surviving findings as a PR comment", and evals.json:69 says it "always ends by commenting on the PR". Each is true only of the --comment form, so each is narrowed to it, and SKILL.md:166 says an opted-in dispatch passes --comment, since the comment fetch-back it describes needs a posted comment. Fanout still dispatches the plugin only on that opt-in: the default run's terminal output (step 7, "list each issue with a brief description") has no documented schema, and the parse row at findings-normalization.md:16 covers only the posted comment. So the no-dispatch-without-opt-in assertion at :72 stays true.
Same plugin, may ride the same PR: fanout/SKILL.md:166 ("parallel reviewers + confidence scorer") and findings-normalization.md:16 ("0–100, filters <80") describe a scorer the current command no longer has; it validates findings with subagents (steps 5-6).
plugins/review/skills/quality-gate/context/pr.md no longer says this mode never runs /code-review:code-review as a read-only pass; it describes the plugin's default run as terminal output with no GitHub writes, says that default rests on the command's instructions rather than its allowed-tools, and names the step-1 stops (a closed or draft PR, and a PR Claude has already commented on).
The Mutation gate in pr.md covers /code-review:code-review only with --comment, and the plugin's default run is listed as an optional read-only pass beside the bundled command.
The code-review plugin's pointer bullet in pr.md points at the plugin README's Commands section and at commands/code-review.md, its as-of date is 2026-11-04, and its recheck trigger is the one in answer 3.
plugins/review/skills/fanout/SKILL.md no longer says the plugin has no mode that returns findings to the session, and says an opted-in dispatch passes --comment.
plugins/review/skills/fanout/context/findings-normalization.md and the expected output of the post-to-PR case in plugins/review/skills/fanout/evals/evals.json describe posting as the --comment form only.
Activity
github-actions commentedon Nov 4, 2026
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Medium
Complexity: Low
Uncertainty: Known
Flags: none
Blocked by: none
Understood: quality-gate's pr mode and the fanout skill assume
/code-review:code-reviewalways posts to the PR. The plugin now prints to the terminal by default and posts only with--comment.#13010 (comment)
The decision settles the four open questions, so nothing is asked again. No duplicate found.
Automated triage, applied by the lanes App.
melodic-automation-lanes commentedon Nov 4, 2026
Not admitted to the issue lane yet: no trusted-human acceptance criteria: a listed human must put the confirmed
- [ ]criteria in the body or post them as their own comment, or, on an issue a listed human filed, intake's newest refinement comment must hold them unedited; intake's refinement of this body is due and may supply them.melodic-automation-lanes commentedon Nov 4, 2026
Refinement. A read-only run explored this repository, searched its issues and pull requests, and read the allowed docs to draft what follows. On an issue a listed human filed, it counts as the issue's spec once posted, while unedited; it is still model text, so check it.
Intended outcome: pr.md describes /code-review:code-review as terminal-by-default and read-only without --comment, gates only the --comment form, and carries an updated as-of date and recheck trigger.
Related work
Open questions
RECOMMENDED: Yes if the command file confirms it. Then the Mutation gate covers only the --comment form, and a bare /code-review:code-review run on a PR is a permitted read-only pass. Basis: judgment
RECOMMENDED: List it as an optional read-only pass, not a default. The manual path stays the default, as pr.md treats the bundled command. Basis: plugins/review/skills/quality-gate/context/pr.md:50
RECOMMENDED: Yes. Replace the fired trigger with that one and update the date. Basis: plugins/review/skills/quality-gate/context/pr.md:36
RECOMMENDED: Yes, if they assert the plugin always posts. Narrow the eval at fanout/evals/evals.json:72 to the --comment form and check fanout/SKILL.md:166 for the same wording. Basis: plugins/review/skills/fanout/evals/evals.json:72
Sources read
To answer, post a comment that starts with this line:
Automated refinement by the lanes App. Answer with a comment whose first line is
**Decision recorded.**.kyle-sexton commentedon Nov 4, 2026
Decision recorded. Answers to the refinement's four questions, from the upstream command file read 2026-11-04.
Agent choice, not an owner answer.
Source:
plugins/code-review/commands/code-review.mdonanthropics/claude-plugins-officialmain, read directly withgh api(not through/discovery:research; it is the single primary source). Line numbers below areorigin/mainafter #12997.--commentargument was NOT provided, stop here. Do not post any GitHub comments." Only the--commentbranches post: step 7 posts a summary comment withgh pr commentwhen no issues were found, and step 9 posts inline comments. The command still listsBash(gh pr comment:*)and the inline-comment tool inallowed-tools, so the read-only default rests on its instructions, not a tool restriction;pr.mdshould say so. Step 1 also stops every run on a closed or draft PR, and when "Claude has already commented on this PR". A PR that already carries a review comment written by Claude, such as one from this repository's CI review lanes, can trip that stop, sopr.mdshould name it as a reason a default run may return nothing./code-review:code-reviewwithout--commentbeside the bundled/code-review <target>(pr.md:57-59); the manual path stays the default.pr.md:14-18, which already points at the README's Commands section) addscommands/code-review.md, with as-of 2026-11-04, and its recheck trigger becomes: the command file changes its--commenthandling, its step-1 stop conditions, or itsallowed-tools. The Mutation gate (pr.md:45-50) covers the plugin only in its--commentform.fanout/SKILL.md:166,fanout/context/findings-normalization.md:21and the expected output atfanout/evals/evals.json:69; the assertion atevals.json:72stays. SKILL.md:166 says "there is no mode that returns them to the session instead", findings-normalization.md:21 says the plugin "ends by posting its surviving findings as a PR comment", and evals.json:69 says it "always ends by commenting on the PR". Each is true only of the--commentform, so each is narrowed to it, and SKILL.md:166 says an opted-in dispatch passes--comment, since the comment fetch-back it describes needs a posted comment. Fanout still dispatches the plugin only on that opt-in: the default run's terminal output (step 7, "list each issue with a brief description") has no documented schema, and the parse row at findings-normalization.md:16 covers only the posted comment. So the no-dispatch-without-opt-in assertion at :72 stays true.Same plugin, may ride the same PR:
fanout/SKILL.md:166("parallel reviewers + confidence scorer") andfindings-normalization.md:16("0–100, filters <80") describe a scorer the current command no longer has; it validates findings with subagents (steps 5-6).plugins/review/skills/quality-gate/context/pr.mdno longer says this mode never runs/code-review:code-reviewas a read-only pass; it describes the plugin's default run as terminal output with no GitHub writes, says that default rests on the command's instructions rather than itsallowed-tools, and names the step-1 stops (a closed or draft PR, and a PR Claude has already commented on).pr.mdcovers/code-review:code-reviewonly with--comment, and the plugin's default run is listed as an optional read-only pass beside the bundled command.code-reviewplugin's pointer bullet inpr.mdpoints at the plugin README's Commands section and atcommands/code-review.md, its as-of date is 2026-11-04, and its recheck trigger is the one in answer 3.plugins/review/skills/fanout/SKILL.mdno longer says the plugin has no mode that returns findings to the session, and says an opted-in dispatch passes--comment.plugins/review/skills/fanout/context/findings-normalization.mdand the expected output of the post-to-PR case inplugins/review/skills/fanout/evals/evals.jsondescribe posting as the--commentform only.github-actions commentedon Nov 4, 2026
github-actions commentedon Nov 4, 2026