| <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> |
|
|