Description
scripts/shard_coderabbit_review.py prints ‘[dir] CLEAN (complete)’ for every shard that exits 0 with a complete line, regardless of findings. On the loop19 TSO-0148 review it printed ‘7 clean, 0 failed’ while the aggregate NDJSON held 4 major and 2 minor findings. An operator or agent reading the summary takes a false pass. The summary must report per-shard finding counts by severity, and ‘clean’ must mean zero findings.
Acceptance Criteria
- #1 Per-shard status lines and the final summary report finding counts by severity from the shard’s NDJSON; a shard with findings is never labelled clean
- #2 A completed shard with findings still exits 0 (findings are not transport failures), and incomplete/failed shards keep failing closed as today
- #3 scripts/test_shard_coderabbit_review.py covers a completed shard with major findings and shows the old summary failing that test
Definition of Done
- #1 just check passes (the full gate; it is what CI enforces)
- #2 just gen leaves no diff (only if a generated artifact’s inputs changed)
- #3 just –fmt –check passes and every new recipe has a # doc comment and a [group(…)]
Implementation Notes
loop19: loop-created from the TSO-0148 CodeRabbit run; 1 implementation attempt; landed 446f0682; reviewer approve; CodeRabbit 0 findings; composed just check green; ci-success green. Advisory left: cross-check complete.findings against counted finding events.
Final Summary
Sharded CodeRabbit runner now prints per-shard finding counts by severity (CLEAN only at zero findings) and totals in the summary; exit semantics unchanged. Landed 446f0682.