# Requirements traceability matrix draft

Draft v0.1 · P1 is the member promise; P2 is the mutuality promise.

| Promise | Requirement | Use case | Story | Rules | API operation | Tests | Backlog |
|---|---|---|---|---|---|---|---|
| P1 | FR01 Goal and preferences | UC01 | US01 | BR02 | PATCH /members/me | TC01 | BL02 |
| P1, P2 | FR02 Optional choices | UC01 | US02 | BR16 | PUT /members/me/consents/{purpose} | TC05 | BL01 |
| P1 | FR03 Plan proposal | UC02 | US01 | BR01, BR02 | POST /plans | TC01, TC02 | BL02 |
| P1 | FR04 Plan acceptance | UC02 | US01 | BR03 | PATCH /plans/{planId} | TC03, TC04 | BL02 |
| P1 | FR05 Manual records | UC03 | US03 | BR12, BR13 | POST/PATCH/DELETE /activities | TC06, TC07, TC26, TC27 | BL03 |
| P1, P2 | FR06 Imported records | UC03 | US03 | BR12, BR13, BR16 | POST /imports/activity-batches | TC08, TC09, TC10, TC27 | BL04 |
| P1, P2 | FR07 Weekly review | UC04 | US04 | BR04-BR12, BR18 | POST /plans/{planId}/reviews | TC11-TC14, TC25, TC26 | BL05 |
| P1 | FR08 Member check-in | UC04 | US04 | BR06, BR08, BR09 | PUT /plans/{planId}/check-ins/{weekStart} | TC12, TC14 | BL05 |
| P1, P2 | FR09 Request support | UC05 | US05 | BR14, BR15 | POST /support-requests | TC15-TC17 | BL06 |
| P1, P2 | FR10 Agreed adjustment | UC05 | US06 | BR03, BR15, BR17 | POST /plans/{planId}/changes and /decision | TC18, TC19, TC23 | BL07 |
| P1 | FR11 Participation state | UC06 | US07 | BR04, BR05, BR18 | PATCH /plans/{planId} | TC20, TC30 | BL08 |
| P2 | FR12 Decision trace | UC07 | US08 | BR15 | GET /analyst/decisions | TC24 | BL09 |
| P2 | FR13 Delivery measures | UC07 | US08 | BR15 | GET /analyst/metrics | TC24, TC29 | BL09 |
| P1, P2 | FR14 Revocation | UC08 | US02, US07 | BR16 | PUT /members/me/consents/{purpose} | TC21, TC22 | BL08 |

## Review checks

Every FR has a journey use case, story, operation and test. Shared security and privacy controls are additionally covered by NFR01-NFR10. Test ranges refer to the named cases in the test plan. API shorthand in this table is explanatory; the API catalogue and OpenAPI file contain exact routes.

Changes should start at the requirement or rule and flow through story, contract, fixture, test and demonstration. A template version change must not retrospectively rewrite evidence attached to an earlier decision.

## Portfolio R1 coverage annotations, 14 October 2026

| Backlog | R1 coverage | Acceptance |
|---|---|---|
| BL01, BL18 | Scoped visitor cookie, server roles, default-off permissions, scenarios, reset/expiry | TC05, TC23, TC31-TC34, TC37 |
| BL02 | Preferences, supported proposal and member accept/decline | TC01-TC04 |
| BL03 | Manual create/list only; corrections/deletion are BL14 | TC06 create subset, TC07 |
| BL05 | Check-in and deterministic review; Jules uses seeded incomplete coverage | TC11-TC15 |
| BL06 | Explicit support and assigned queue; duplicate protection | TC16, TC17 |
| BL07 | Pending proposal, member decision and immutable versions | TC18, TC19 |
| BL09 | Analyst decision projection only; metrics are BL16 | TC24 decision subset |
| BL10 | Guided roles, responsive forms, localized feedback | TC28, TC35, TC36 |
| BL15 | Sharing revocation cancels unresolved requests/proposals and denies protected access | TC22 |
| BL17, BL19 | English case, FA/source/evidence export, DevReady and BPMN artifacts | Link inspection and recorded execution; public release remains pending BL20 |
| Local gate | Dedicated development/test databases, production build/start and persistence | TC38 plus verification record |

The original matrix retains full-POC reference scope. Its FR13/BL09 mapping is superseded by BL16 for R1, and FR14 maps to BL15 for coaching and BL04 for imports. No deferred feature is marked complete by the R1 implementation.
