Problem
Two test-rigor gates are weaker than ADR-456 intends:
- No branch-coverage floor. c8 enforces line floors only (lib ~70%, scripts ~55%). Untested branches in the high-risk
UNMUTATED modules (state/phase/verify/init) are invisible.
no-source-grep is warn and not applied to tests/**. Source-text-grep test smells slip in (the audit redesigns removed several: install Kilo block, sh-hook-paths, plan-review-convergence).
Action
- Add a c8
--branches floor (start ~60 global) plus a stricter per-file branch floor for the high-risk UNMUTATED modules.
- Promote
no-source-grep to error and apply it to tests/**, splitting allowed product-/config-file reads (.md/.json/.yml) from blocked source-file grep (.cjs/.ts internal symbols). Fix any surfaced violations behaviorally.
Note: a complementary allow-test-rule tracking gate (requires #NNN on new exemptions) already landed during the audit; promoting no-source-grep makes that gate meaningful on tests/**.
Surfaced by the 2026-06-13 QA test-architecture audit of the ADR portfolio.
Problem
Two test-rigor gates are weaker than ADR-456 intends:
UNMUTATEDmodules (state/phase/verify/init) are invisible.no-source-grepiswarnand not applied totests/**. Source-text-grep test smells slip in (the audit redesigns removed several: install Kilo block, sh-hook-paths, plan-review-convergence).Action
--branchesfloor (start ~60 global) plus a stricter per-file branch floor for the high-risk UNMUTATED modules.no-source-greptoerrorand apply it totests/**, splitting allowed product-/config-file reads (.md/.json/.yml) from blocked source-file grep (.cjs/.tsinternal symbols). Fix any surfaced violations behaviorally.Note: a complementary
allow-test-ruletracking gate (requires#NNNon new exemptions) already landed during the audit; promotingno-source-grepmakes that gate meaningful ontests/**.Surfaced by the 2026-06-13 QA test-architecture audit of the ADR portfolio.