Refusal-coverage matrix
A durable rules page that prevents PRAMAAN refusal classes from falling between eval coverage and BDD acceptance coverage.
What this Story is
Story-1747 adds docs/rules/refusal-coverage-matrix.md, a compact matrix mapping each known safety, authority, and confidentiality refusal class to its required proof owner: eval case, BDD scenario, or both.
Why it matters
A refusal class that belongs to neither layer is not a testing detail. It is a GA blocker. The matrix makes that failure visible as COVERAGE GAP instead of letting teams assume another test layer owns it.
The page keeps the seam clear: pramaan-docs ADR-136 keeps agent reasoning, hallucination, prompt-injection, and release-gate judging in eval; pramaan-docs ADR-138 keeps deterministic system-boundary outcomes in BDD.
What changed
| File | Change |
|---|---|
docs/rules/refusal-coverage-matrix.md | New living matrix with seven seeded refusal rows, explicit owner assignment, and coverage artifact / tracked-slice status. |
docs/walkthroughs/story-1747-walkthrough.html | This walkthrough, required for the Story PR. |
Coverage snapshot
| Metric | Value |
|---|---|
| Seeded refusal rows | 7 |
| Rows with coverage artifact or tracked slice | 1 |
| Rows marked COVERAGE GAP | 6 |
Not in scope
No ADR edits, no eval harness cases, no .feature files, no BDD runner wiring, no app/functions/agents code, and no Project #2 board mutation. This Story records the ownership matrix only.