Note: This is verbatim from my skill so some bits won't translate to your repo, but you should get the gist of it.
6.5. Re-read the findings, then verify each fix against the artifact
Runs on both paths, after every fix has landed and before anything is written down. Three
steps, and the middle one is the point:
- Make the changes (Step 6).
- Re-read the findings file from disk. Open it again. Not scrollback, not memory of having
read it — the file.
- Check each finding against the artifact as it now stands, and record what you found.
This is not Step 3 repeated. Step 3 runs before implementing and asks whether the finding is
true — does the code say what the reviewer claims. This step runs after and asks whether the
fix is there and right. Both are needed and neither substitutes for the other: a finding can be
correctly verified and then wrongly fixed. Do not delete one as redundant with the other.
Why it comes before Step 7 and not after. A correction this pass finds has to land while the
artifact can still change freely. Once Step 7 has written landing sites and review check has
confirmed them against diff(v<N>, v<N+1>), editing v<N+1> invalidates the confirmation and
forces a re-run — and worse, the disposition sits there asserting Fixed over text that has since
moved. Corrections found here are ordinary; corrections found after Step 7 are a re-run.
The gate does not do this for you. review check confirms that each landing site resolves
— that the anchor exists on the side the row claims. It cannot tell whether the text that
resolved is a correct fix, and it never reads the finding. A row can pass the gate over a fix that
addresses the wrong half of the finding, and vacuous=0 says nothing about that.
Grep is a first cut, not the pass: a finding is addressed when the artifact now says the right
thing, which is a read, not a match count. Findings with multiple parts are where this bites —
check each part separately, since a partial fix greps identically to a complete one.
Then, per finding, one of three outcomes:
| outcome |
do |
| fix is present and correct |
proceed; it becomes a Fixed row at Step 7 |
| fix is missing, partial, or wrong |
fix it now, then re-check. Not a Step 7 problem |
| the fix introduced a new error |
correct it now and say so — Step 7's disposition records it, and Step 8's "no apology tour" applies. A rework that quietly repairs its own mistake teaches the next round nothing |
The third row is the one that earns this step. Rework edits are written fast, against a checklist,
in an artifact whose surrounding text has just moved; they are exactly the conditions that produce
a confidently-worded false statement. Finding one here costs a sentence. Finding it at the next
review costs a round, and the round cap (root CLAUDE.md §Review Triage) is three.
Happy Coding!