Problem
Untested new code paths are the one mined failure class that shipped real bugs (apify-mcp-server #1094 charset corruption — new stream path never exercised against non-UTF-8 input; #1076 untestable retry branch; #1081 untested failure_http_status arm). The standing checks (added in the scope-split PR) make every reviewer flag an untested new arm — that's the floor. A dedicated lens should go deep.
Proposal
Vendor a test-coverage reviewer engine (based on the pr-test-analyzer agent text) as _vendored/test-coverage/ and register it as a reviewer/final_reviewer use:
- Behavioral coverage over line coverage: every conditional arm/guard the diff adds exercised on both sides; rewritten paths exercised against the input classes the old path handled; negative cases for validation logic; error/async paths.
- Each gap rated by criticality (1–10) with the concrete failure it would catch — mapped to shepherd severities (9–10 → blocker/major, 5–8 → minor, below → nit).
- Also flags brittle tests: implementation-coupled assertions that break on refactor rather than on behavior change.
- Scope line: judge against the pasted
2-design.md + 3-success-criteria.md; standard VERDICT: PASS|FAIL format.
Wiring: registry entry + include in the default final_reviewers roster for medium/large tiers (config.default.json). No SKILL.md procedure changes needed beyond the roster.
Depends on the standing-checks/scope-split PR (branch stacked on #7) landing first.
Problem
Untested new code paths are the one mined failure class that shipped real bugs (apify-mcp-server #1094 charset corruption — new stream path never exercised against non-UTF-8 input; #1076 untestable retry branch; #1081 untested
failure_http_statusarm). The standing checks (added in the scope-split PR) make every reviewer flag an untested new arm — that's the floor. A dedicated lens should go deep.Proposal
Vendor a
test-coveragereviewer engine (based on the pr-test-analyzer agent text) as_vendored/test-coverage/and register it as areviewer/final_revieweruse:2-design.md+3-success-criteria.md; standardVERDICT: PASS|FAILformat.Wiring: registry entry + include in the default
final_reviewersroster formedium/largetiers (config.default.json). No SKILL.md procedure changes needed beyond the roster.Depends on the standing-checks/scope-split PR (branch stacked on #7) landing first.