Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .claude/agents/pr-reviewer.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
14 changes: 14 additions & 0 deletions plugins/code-review/prompts/github-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: This changes the code-review plugin but leaves its manifest at 1.5.5. The plugin-version-bump CI job fails every changed plugins/<name> directory whose manifest isn't updated, so this PR cannot pass its required gate. Bump plugins/code-review/.claude-plugin/plugin.json here.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This PR changes plugin artifacts but includes no root or plugin CHANGELOG.md update. The required pre-push hook rejects that shape, and the repo guidance says to run /update-documentation rather than edit changelogs by hand. Run that workflow so the generated release documentation is included.


**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.
2 changes: 1 addition & 1 deletion plugins/code/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
14 changes: 14 additions & 0 deletions plugins/code/agents/code-review-guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
14 changes: 14 additions & 0 deletions plugins/code/agents/code-review-worker.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
2 changes: 2 additions & 0 deletions plugins/code/agents/code-reviewer.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: This lets untrusted PR/ticket/thread text claim an owner ruling and forces a newly discovered conflict to be non-blocking and below Critical/High. That can suppress the authorization bypasses this same reviewer is required to report as Critical. Only honor a decision supplied by trusted operator/orchestrator context, and preserve normal severity/blocking for security and repository-safety conflicts.

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.
</constraints>

## Severity Levels
Expand Down
2 changes: 1 addition & 1 deletion plugins/code/agents/verification-subagent.md
Original file line number Diff line number Diff line change
@@ -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

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This changes the runtime agent from Sonnet to Opus, but plugins/code/README.md still documents verification-subagent as Sonnet. The implementation workflow launches this agent for pending tasks, so the published agent inventory is now wrong. Either keep Sonnet or update the generated documentation for the new model.

tools: Read, Glob, Grep, SendMessage
---

Expand Down