RF-07 — Warning extraction precedes the canonical outcome check
State: fixed 2026-08-27
Repair shape: small local bug fix
Severity: high for contract correctness, low implementation cost
Finding
extract_warns() extracts explicit - warn: items before it checks whether the
canonical outcome is warn. PASS- or FAIL-shaped result prose can therefore
produce actionable warning text even though the fix contract says the selector
consumes WARN pairs.
Evidence
extract_warns()returns actionable findings before itsoutcome != "warn"guard.- The fix procedure specifies current baseline-backed WARN pairs.
- Direct execution observed PASS-shaped input returning an explicit warning; see the evidence boundary.
Why it matters
The canonical outcome is supposed to determine whether a verdict enters the fix queue. Letting prose override that field makes protocol state and operational behavior disagree and can trigger work the reviewer explicitly classified as a PASS or FAIL instead.
Provisional repair direction
Return immediately when outcome != "warn", before parsing findings. Keep any
future cross-outcome informational finding feature separate from the fix queue.
Done when
- PASS and FAIL bodies containing
- warn:produce no warn-selector entries. - WARN retains explicit-finding, summary, and fallback behavior.
- A full stored-pair test exercises the scanner, not only the helper.
Resolution
extract_warns() now returns before parsing result prose unless the canonical
outcome is warn. Parameterized regression tests cover PASS and FAIL at both
the helper boundary and through stored-pair scanning. The complete test suite
passes (591 passed).