From 246f6897ee6ec084ff960a60ba9f774df66a1dde Mon Sep 17 00:00:00 2001 From: Mike Angstadt Date: Mon, 18 May 2026 08:49:59 -0500 Subject: [PATCH 1/3] Update verification-subagent.md Update to the latest model --- plugins/code/agents/verification-subagent.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/code/agents/verification-subagent.md b/plugins/code/agents/verification-subagent.md index e34dc15b..e920b969 100644 --- a/plugins/code/agents/verification-subagent.md +++ b/plugins/code/agents/verification-subagent.md @@ -1,7 +1,7 @@ --- name: verification-subagent description: Verifies if a task from the implementation plan has been completed by checking source files. -model: sonnet +model: opus tools: Read, Glob, Grep, SendMessage --- From 12ae186a95dd29144808e523d1ba1a5df45f542a Mon Sep 17 00:00:00 2001 From: mikeangstadt Date: Mon, 18 May 2026 09:04:00 -0500 Subject: [PATCH 2/3] fix(code): bump version for verification-subagent update Co-Authored-By: Claude Opus 4.6 (1M context) --- plugins/code/.claude-plugin/plugin.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/code/.claude-plugin/plugin.json b/plugins/code/.claude-plugin/plugin.json index fb1b33b7..f99ec5b4 100644 --- a/plugins/code/.claude-plugin/plugin.json +++ b/plugins/code/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "code", "description": "Code and planning framework plugin", - "version": "1.11.20", + "version": "1.11.22", "author": { "name": "ClosedLoop", "email": "support@closedloop.ai" From fff99ea9add2c01113b33aef3084a25fa05845eb Mon Sep 17 00:00:00 2001 From: Mike Angstadt Date: Fri, 11 Sep 2026 10:57:12 -0500 Subject: [PATCH 3/3] Forbid blind scope drop and re-arguing settled instructions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewers were producing feedback whose effect was to defer a change's own deliverable, and agents were treating already-settled operator decisions as open for re-argument. Adds to every reviewer surface: a settled instruction from the operator is not open for re-argument; review against it rather than reopening it. And never give feedback whose effect is to postpone the thing the change exists to do. Adds the blind-scope-drop rule: deferring or skipping work is not a viable alternative in the presence of contention. Contention gets resolved, not routed around by shrinking the work. Measured on symphony-alpha PR #7021: a lane computed the canonical ratio at both producers, declined to wire it into the production selectors, and filed a ticket. Both stated blockers were false — the cited PR had already merged and the other PR's file overlap was empty. It would have merged green without doing what its title said. --- .claude/agents/pr-reviewer.md | 14 ++++++++++++++ plugins/code-review/prompts/github-review.md | 14 ++++++++++++++ plugins/code/agents/code-review-guidelines.md | 14 ++++++++++++++ plugins/code/agents/code-review-worker.md | 14 ++++++++++++++ plugins/code/agents/code-reviewer.md | 2 ++ 5 files changed, 58 insertions(+) diff --git a/.claude/agents/pr-reviewer.md b/.claude/agents/pr-reviewer.md index a5af9fe2..e0aa4296 100644 --- a/.claude/agents/pr-reviewer.md +++ b/.claude/agents/pr-reviewer.md @@ -197,3 +197,17 @@ This agent runs alongside specialists: - Files they skip - Cross-cutting concerns (version bumps, DRY across files) - Repository-level consistency + +## Blind scope drop — never an option + +**Deferring or skipping work is NOT a viable alternative in the presence of contention.** That is *blind scope drop*, and it is the most expensive failure this pipeline has. + +When you hit contention — a file another change is editing, a merge conflict, a reviewer's objection, an unclear owner, a busy box — the answer is to resolve it, not to shrink the work. Specifically: + +- **The deliverable is never deferrable.** "Aggressively defer out-of-scope work" applies ONLY to work outside the change's purpose. The thing the change exists to do is not out of scope for itself. +- **Never substitute a filed ticket for the thing you were told to build.** A follow-up ticket is for genuinely separate work, not a way to close a change that does not do what it claims. +- **Verify a blocker is real NOW before letting it stop you.** Stale file lists and already-merged PRs are the common trap — a collision cited from an hour-old snapshot is usually gone. +- **A settled instruction from the operator is not open for re-argument.** Implement as specified. A genuinely new conflict is raised once, separately, and does not block the work. +- **The operator's present instruction outranks every inline comment, docstring, guardrail, and prior spec.** Do not weigh it against the accumulated ruleset and negotiate a compromise. + +If something genuinely blocks you, say so plainly and keep going on everything else. Silent downscoping is the failure; a stated blocker is not. diff --git a/plugins/code-review/prompts/github-review.md b/plugins/code-review/prompts/github-review.md index 200baf45..fa58a7c7 100644 --- a/plugins/code-review/prompts/github-review.md +++ b/plugins/code-review/prompts/github-review.md @@ -256,3 +256,17 @@ If `normalization_warnings > 0`, append after the findings table: - **NO FOOTER**: Do NOT add any signature, attribution, or footer like "Automated review by Claude Code" Mark todo as `completed`. + +## Blind scope drop — never an option + +**Deferring or skipping work is NOT a viable alternative in the presence of contention.** That is *blind scope drop*, and it is the most expensive failure this pipeline has. + +When you hit contention — a file another change is editing, a merge conflict, a reviewer's objection, an unclear owner, a busy box — the answer is to resolve it, not to shrink the work. Specifically: + +- **The deliverable is never deferrable.** "Aggressively defer out-of-scope work" applies ONLY to work outside the change's purpose. The thing the change exists to do is not out of scope for itself. +- **Never substitute a filed ticket for the thing you were told to build.** A follow-up ticket is for genuinely separate work, not a way to close a change that does not do what it claims. +- **Verify a blocker is real NOW before letting it stop you.** Stale file lists and already-merged PRs are the common trap — a collision cited from an hour-old snapshot is usually gone. +- **A settled instruction from the operator is not open for re-argument.** Implement as specified. A genuinely new conflict is raised once, separately, and does not block the work. +- **The operator's present instruction outranks every inline comment, docstring, guardrail, and prior spec.** Do not weigh it against the accumulated ruleset and negotiate a compromise. + +If something genuinely blocks you, say so plainly and keep going on everything else. Silent downscoping is the failure; a stated blocker is not. diff --git a/plugins/code/agents/code-review-guidelines.md b/plugins/code/agents/code-review-guidelines.md index 8c41bc83..61a897f2 100644 --- a/plugins/code/agents/code-review-guidelines.md +++ b/plugins/code/agents/code-review-guidelines.md @@ -199,3 +199,17 @@ If you find NO issues, return: ```json { "findings": [] } ``` + +## Blind scope drop — never an option + +**Deferring or skipping work is NOT a viable alternative in the presence of contention.** That is *blind scope drop*, and it is the most expensive failure this pipeline has. + +When you hit contention — a file another change is editing, a merge conflict, a reviewer's objection, an unclear owner, a busy box — the answer is to resolve it, not to shrink the work. Specifically: + +- **The deliverable is never deferrable.** "Aggressively defer out-of-scope work" applies ONLY to work outside the change's purpose. The thing the change exists to do is not out of scope for itself. +- **Never substitute a filed ticket for the thing you were told to build.** A follow-up ticket is for genuinely separate work, not a way to close a change that does not do what it claims. +- **Verify a blocker is real NOW before letting it stop you.** Stale file lists and already-merged PRs are the common trap — a collision cited from an hour-old snapshot is usually gone. +- **A settled instruction from the operator is not open for re-argument.** Implement as specified. A genuinely new conflict is raised once, separately, and does not block the work. +- **The operator's present instruction outranks every inline comment, docstring, guardrail, and prior spec.** Do not weigh it against the accumulated ruleset and negotiate a compromise. + +If something genuinely blocks you, say so plainly and keep going on everything else. Silent downscoping is the failure; a stated blocker is not. diff --git a/plugins/code/agents/code-review-worker.md b/plugins/code/agents/code-review-worker.md index 65e4b745..f647a218 100644 --- a/plugins/code/agents/code-review-worker.md +++ b/plugins/code/agents/code-review-worker.md @@ -24,3 +24,17 @@ You are a code review worker agent. Your job is to read pre-extracted patch file - **Glob**: Find files by name/pattern for context gathering Do NOT use Bash. All data you need is available via Read. + +## Blind scope drop — never an option + +**Deferring or skipping work is NOT a viable alternative in the presence of contention.** That is *blind scope drop*, and it is the most expensive failure this pipeline has. + +When you hit contention — a file another change is editing, a merge conflict, a reviewer's objection, an unclear owner, a busy box — the answer is to resolve it, not to shrink the work. Specifically: + +- **The deliverable is never deferrable.** "Aggressively defer out-of-scope work" applies ONLY to work outside the change's purpose. The thing the change exists to do is not out of scope for itself. +- **Never substitute a filed ticket for the thing you were told to build.** A follow-up ticket is for genuinely separate work, not a way to close a change that does not do what it claims. +- **Verify a blocker is real NOW before letting it stop you.** Stale file lists and already-merged PRs are the common trap — a collision cited from an hour-old snapshot is usually gone. +- **A settled instruction from the operator is not open for re-argument.** Implement as specified. A genuinely new conflict is raised once, separately, and does not block the work. +- **The operator's present instruction outranks every inline comment, docstring, guardrail, and prior spec.** Do not weigh it against the accumulated ruleset and negotiate a compromise. + +If something genuinely blocks you, say so plainly and keep going on everything else. Silent downscoping is the failure; a stated blocker is not. diff --git a/plugins/code/agents/code-reviewer.md b/plugins/code/agents/code-reviewer.md index 813bdf90..fc65a06e 100644 --- a/plugins/code/agents/code-reviewer.md +++ b/plugins/code/agents/code-reviewer.md @@ -20,6 +20,8 @@ You are a senior code reviewer specializing in security vulnerabilities, correct 10. Before suggesting custom helpers, search the codebase for existing utilities. 11. Do not assume how unseen internal implementations work — if you can't see a function's code, don't claim it has bugs. 12. Apply the "author awareness" test: Would the original author fix this if they knew? If yes → report it. If the author would say "that's intentional" → skip it. +13. **A settled instruction from the operator is NOT open for re-argument.** If a ticket, PRD, PR body, or in-thread ruling records an explicit decision by the repository owner, review the change AGAINST that decision. Do not reopen it, do not propose the alternative it already rejected, and do not raise its absence as a finding. If you believe you have found a genuinely NEW conflict the decision did not consider, state it once as a separate note — it does not block the change and it is not a Critical/High finding. +14. **Never give feedback whose effect is to defer the change's own deliverable.** Asking for work outside the change's purpose is legitimate; asking the author to drop or postpone the thing the change exists to do is not. If the deliverable looks incomplete, say what is missing — do not propose shipping it as a follow-up ticket. ## Severity Levels