File size: 5,393 Bytes
612e777 5a79992 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | <article class="doc" id="doc-reference-traceability" aria-hidden="true"><div class="strip"><span class="path">reference/traceability.md</span><span class="tag">Engineering, reference</span><span class="meta">~1 min read</span></div>
<h1>20. Requirement Traceability Matrix</h1>
<p>Every MVP requirement ID from the Product Requirements Document maps to an owning module and verification layer. Rows are grouped; IDs not individually listed inherit the family row. The CI traceability check fails if a requirement tag has no linked passing test.</p>
<div class="tbl-wrap"><table class="col-table compact"><colgroup><col class="col-auto"/><col class="col-auto"/><col class="col-md"/><col class="col-auto"/></colgroup>
<thead>
<tr>
<th>Requirement(s)</th>
<th>Owning Module (§)</th>
<th>Primary Verification</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td data-label="Requirement(s)">ENR-001…005</td>
<td data-label="Owning Module (§)">episode, identity (§7.2, 9.1)</td>
<td data-label="Primary Verification">GS-01; integration timing test ≤15 min; enumeration probe</td>
<td data-label="Notes">Override path ADM console</td>
</tr>
<tr>
<td data-label="Requirement(s)">DPC-001…008</td>
<td data-label="Owning Module (§)">ingestion, compiler (§10, 11)</td>
<td data-label="Primary Verification">Extraction benchmark; GS-01/02/03</td>
<td data-label="Notes">Hierarchy per ADR-009</td>
</tr>
<tr>
<td data-label="Requirement(s)">PAT-001…005</td>
<td data-label="Owning Module (§)">episode, web (§6.3, 8.2)</td>
<td data-label="Primary Verification">Playwright Today/task flows; ETag 409 test</td>
<td data-label="Notes">≤3 primary actions server-enforced</td>
</tr>
<tr>
<td data-label="Requirement(s)">MED-003/005/006/010</td>
<td data-label="Owning Module (§)">medication (§6.3)</td>
<td data-label="Primary Verification">Unit invariants; GS-04/05; UI verified-badge snapshot</td>
<td data-label="Notes">Dimension separation physical</td>
</tr>
<tr>
<td data-label="Requirement(s)">APT-001/004/010</td>
<td data-label="Owning Module (§)">scheduling (§8.2, 10.1)</td>
<td data-label="Primary Verification">GS-10; assisted-flow E2E</td>
<td data-label="Notes">External booking excluded</td>
</tr>
<tr>
<td data-label="Requirement(s)">EDU-002/007</td>
<td data-label="Owning Module (§)">notification templates (§13.2)</td>
<td data-label="Primary Verification">Template lint (PHI + monitoring language); version audit</td>
<td data-label="Notes">Teach-back trigger rules unit-tested</td>
</tr>
<tr>
<td data-label="Requirement(s)">VIS-002/005/007</td>
<td data-label="Owning Module (§)">brief (§14)</td>
<td data-label="Primary Verification">GS-06; step-up authz probe</td>
<td data-label="Notes">Post-visit reprocess loop</td>
</tr>
<tr>
<td data-label="Requirement(s)">CLN-001/004/008</td>
<td data-label="Owning Module (§)">identity, brief (§9.3, 14)</td>
<td data-label="Primary Verification">OTP/device tests; 60 s usability exit; copy lint</td>
<td data-label="Notes">Accountless access</td>
</tr>
<tr>
<td data-label="Requirement(s)">CGV-001/004/007</td>
<td data-label="Owning Module (§)">identity/consent (§9.2)</td>
<td data-label="Primary Verification">GS-07; revocation latency test ≤60 s</td>
<td data-label="Notes">History preserved</td>
</tr>
<tr>
<td data-label="Requirement(s)">ENG-002/004/012</td>
<td data-label="Owning Module (§)">notification (§13)</td>
<td data-label="Primary Verification">Outbox timing test; GS-09; ladder simulation</td>
<td data-label="Notes">Quiet hours tz-aware</td>
</tr>
<tr>
<td data-label="Requirement(s)">AUT-001/006/009</td>
<td data-label="Owning Module (§)">agents (§12)</td>
<td data-label="Primary Verification">Envelope enforcement units; kill-switch drill ≤10 s; GS-04/05</td>
<td data-label="Notes">Evidence-not-state pattern</td>
</tr>
<tr>
<td data-label="Requirement(s)">ADM-004/007</td>
<td data-label="Owning Module (§)">admin, analytics (§16.3)</td>
<td data-label="Primary Verification">Report snapshot tests incl. denominators + coverage footer</td>
<td data-label="Notes">Config versioning test</td>
</tr>
<tr>
<td data-label="Requirement(s)">INT-001 / INT-008</td>
<td data-label="Owning Module (§)">ingestion / export (§10.2, 10.6)</td>
<td data-label="Primary Verification">Sandbox conformance; export behind flag (Later)</td>
<td data-label="Notes">No other EHR write path exists</td>
</tr>
<tr>
<td data-label="Requirement(s)">DQS-001/004/011</td>
<td data-label="Owning Module (§)">compiler, audit (§11, 15.2)</td>
<td data-label="Primary Verification">Gate unit suite; lineage replay drill ≤5 min; similarity threshold tests</td>
<td data-label="Notes">Deterministic + judge dual check</td>
</tr>
<tr>
<td data-label="Requirement(s)">SEC-002/003/010</td>
<td data-label="Owning Module (§)">identity, audit, consent (§9, 15)</td>
<td data-label="Primary Verification">Pen-test cases; WORM verification; Bedrock config assertion</td>
<td data-label="Notes">BAA inventory Phase 0</td>
</tr>
<tr>
<td data-label="Requirement(s)">NFR-001…013</td>
<td data-label="Owning Module (§)">platform-wide (§18)</td>
<td data-label="Primary Verification">Load, DR drill, axe scan, offline E2E (ADR-012)</td>
<td data-label="Notes">Offline card = NFR-013</td>
</tr>
</tbody>
</table></div>
<div class="pn"><a class="pn-prev" href="#"></a><a class="pn-next" href="#"></a></div></article>
|