Why this exists
The 2026-09-08 decision removed the judgment reviewer from CI, on the
reasoning that local hooks are the judgment pass. That decision stands — the
2026-09-10 backlog evaluation re-examined it and found it still correct.
But the consequence is unowned. Local-reviewer reliability is now
critical-path for the entire fleet, and nothing in L2–L5 targets it. This is
the largest gap that evaluation found
(docs/superpowers/plans/2026-09-10-backlog-evaluation.md, section 3).
dev-env#116 independently reinforces it: claude-code-action structurally
refuses to review any PR touching .github/workflows/, so the class of change
most worth reviewing is precisely the class CI cannot review at all. There is
no second opinion behind the local reviewer.
The evidence, all filed after that decision
All five verified OPEN on 2026-09-11:
| Issue |
Defect |
claude-config#488 |
Fabricated a blocking security finding against a file that does not exist |
claude-config#455 |
Blocks a documented Netlify token as "undefined"; non-deterministic across repos, rejects direct documentation evidence |
claude-config#489 |
Full-diff pre-push review has no access to the commit message or PR intent |
claude-config#481 |
Runs AI review on artifact-only commits (logs, tsv, scratch) |
claude-config#496 |
Advertises Chesterton's Fence in output instead of applying it |
Two distinct failure classes, and they pull in opposite directions:
- False positives that block (#488, #455) — the reviewer invents or
misreads, and a correct change cannot land. Cost is paid immediately and
loudly.
- Missing context that lets things through (#489, #481) — the reviewer
judges a diff it cannot interpret. Cost is paid silently, later.
A fix that only suppresses noise makes the second class worse. That tension is
the substance of this item, not an implementation detail.
What this item is
A reliability pass on the local reviewer as a system, not five separate bug
fixes. Minimum it should establish:
- A known-bad corpus. Cases the reviewer must block and cases it must
pass, run as a suite. Today there is no way to tell whether a prompt change
improved or regressed anything — every fix is evaluated by eyeballing one
diff. Note the prior art:
reference_mock_fidelity_blind_spot records green suites over broken code
three times because the mocks encoded assumptions rather than measurements.
The corpus has to come from real observed findings, #488 and #455 included.
- A determinism measure. #455 reports the same input judged differently
across repos. Quantify it before changing anything.
- A decision on context. #489 is not a bug so much as a design gap: the
pre-push reviewer sees a diff with no commit message and no PR intent.
Either it gets that context or its mandate should shrink to what a diff
alone can support.
- A scoping rule. #481 — artifact-only commits should not reach the AI
reviewer at all.
Explicitly not in scope
Reversing the 2026-09-08 decision. Putting judgment back in CI is a different
argument, and dev-env#116 is evidence against it. This item makes the chosen
design work rather than relitigating it.
Acceptance
Not "the five issues are closed" — that would be satisfied by suppressing
output. Rather: a corpus exists, it fails against today's reviewer on the
known-bad cases, and it passes after the work. Validate the check against a
known-bad case first; a clean result from an unfalsified check proves nothing.
Why this exists
The 2026-09-08 decision removed the judgment reviewer from CI, on the
reasoning that local hooks are the judgment pass. That decision stands — the
2026-09-10 backlog evaluation re-examined it and found it still correct.
But the consequence is unowned. Local-reviewer reliability is now
critical-path for the entire fleet, and nothing in L2–L5 targets it. This is
the largest gap that evaluation found
(
docs/superpowers/plans/2026-09-10-backlog-evaluation.md, section 3).dev-env#116independently reinforces it:claude-code-actionstructurallyrefuses to review any PR touching
.github/workflows/, so the class of changemost worth reviewing is precisely the class CI cannot review at all. There is
no second opinion behind the local reviewer.
The evidence, all filed after that decision
All five verified OPEN on 2026-09-11:
claude-config#488claude-config#455claude-config#489claude-config#481claude-config#496Two distinct failure classes, and they pull in opposite directions:
misreads, and a correct change cannot land. Cost is paid immediately and
loudly.
judges a diff it cannot interpret. Cost is paid silently, later.
A fix that only suppresses noise makes the second class worse. That tension is
the substance of this item, not an implementation detail.
What this item is
A reliability pass on the local reviewer as a system, not five separate bug
fixes. Minimum it should establish:
pass, run as a suite. Today there is no way to tell whether a prompt change
improved or regressed anything — every fix is evaluated by eyeballing one
diff. Note the prior art:
reference_mock_fidelity_blind_spotrecords green suites over broken codethree times because the mocks encoded assumptions rather than measurements.
The corpus has to come from real observed findings, #488 and #455 included.
across repos. Quantify it before changing anything.
pre-push reviewer sees a diff with no commit message and no PR intent.
Either it gets that context or its mandate should shrink to what a diff
alone can support.
reviewer at all.
Explicitly not in scope
Reversing the 2026-09-08 decision. Putting judgment back in CI is a different
argument, and
dev-env#116is evidence against it. This item makes the chosendesign work rather than relitigating it.
Acceptance
Not "the five issues are closed" — that would be satisfied by suppressing
output. Rather: a corpus exists, it fails against today's reviewer on the
known-bad cases, and it passes after the work. Validate the check against a
known-bad case first; a clean result from an unfalsified check proves nothing.