Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .agents/skills/reviewer/references/finding-disposition.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ How a review finding is dispositioned: applied in this PR, filed as a tracked is

One pass, in order; the first verdict stands. Step 0 runs ahead of Step 1, so a finding it excludes never reaches the introduced-or-armed branch.

0. **Is it one of the excluded classes?** → `decline` naming the class and the fact that puts the finding in it, before the claim's truth is examined and whatever this diff introduced or armed. The classes: a race between two invocations on one machine; a crash between two writes; an input no shipped producer emits; a finding whose premise is a lexical shape, the characters a word or token scanner matches rather than the behavior it gates, which is declined and never patched however the input reached the scanner; a finding that is hypothetical and low severity, no run having produced it and the harm if one did being minor, which is declined here and so is not fixed either, not merely kept off the filing bar; a mechanism needing a second writer who already holds the user's privileges (retargeting a link between the check and the use, swapping an ancestor mid-apply), since that writer reaches the same end directly and the finding names no capability it lacked. Two exceptions go to Step 1: a security, data-loss or data-corruption defect a shipped path reaches, and a fail-open defect in gate, guard or CI code. Neither reopens the second-writer clause — a writer already holding the user's privileges gains nothing the finding could name, so no finding that clause covers reaches it. Who raised a finding never changes this step: an external reviewer's thread proposing a mechanism for an input no shipped producer emits takes the same decline as an internal finding, and the reply names the input and the absence of a producer for it.
0. **Is it one of the excluded classes?** → `decline` naming the class and the fact that puts the finding in it, before the claim's truth is examined and whatever this diff introduced or armed. The classes: a race between two invocations on one machine; a crash between two writes; an input no shipped producer emits; a finding whose premise is a lexical shape, the characters a word or token scanner matches rather than the behavior it gates, which is declined and never patched however the input reached the scanner, but a guard, hook or gate that refuses a real command or input a shipped producer emits is outside this lexical-shape class and is judged on that refusal; a finding that is hypothetical and low severity, no run having produced it and the harm if one did being minor, which is declined here and so is not fixed either, not merely kept off the filing bar; a mechanism needing a second writer who already holds the user's privileges (retargeting a link between the check and the use, swapping an ancestor mid-apply), since that writer reaches the same end directly and the finding names no capability it lacked. Two exceptions go to Step 1: a security, data-loss or data-corruption defect a shipped path reaches, and a fail-open defect in gate, guard or CI code. Neither reopens the second-writer clause — a writer already holding the user's privileges gains nothing the finding could name, so no finding that clause covers reaches it. Who raised a finding never changes this step: an external reviewer's thread proposing a mechanism for an input no shipped producer emits takes the same decline as an internal finding, and the reply names the input and the absence of a producer for it.
1. **Does it claim a defect** (a failing state, broken path, wrong output)? Verify the mechanism yourself:
- **Establish age.** Before deciding to fix a finding in a file the branch did not create, use `git blame` only to establish the age of the finding's lines and inspect the current diff to decide whether the branch arms the defect.
- **False** → `decline`, naming the passing state or the false premise. Scope, age, and "pre-existing" never answer a defect claim.
Expand Down
Loading
Loading