MY PREVENTION PLAN / DESIGN EVIDENCE

Portfolio R1 DevReady tickets

14 October 2026. Architecture selected by the user: pragmatic modular monolith. Source baseline: FA 13 v0.5, architecture 10 v0.2, handoff 19 v0.3 plus the dated R1 contract extensions. Full-POC extensions remain planned.

Shared implementation contract

Canonical code: project/Code. UI -> /api/v1 route -> locked server session -> authorized service -> pure domain rules -> PostgreSQL transaction. Account registration is absent; authorization is mandatory. JSON mutations require Origin, Idempotency-Key, generation and actor revision. Plan decisions also require ETag. Failed saves retain inputs and show no success confirmation. Fixed business week is 5-11 October 2026; real time controls expiry.

Each ticket requires unit/API/browser checks appropriate to its acceptance criteria and updates to the evidence record. Fixtures are fictional. R1 UI is EN/nl-BE. Automated checks do not establish clinical benefit, formal accessibility certification or native-speaker translation approval.

Ticket Inputs and outputs Acceptance criteria and rules Failure cases and dependencies Verification
R1-01 / BL01, BL18 Start {}, opaque cookie, envelope and guided dataset Server stores token digest; role/member/scenario scoped to visitor; optional permissions off; lifetime 24 hours Missing/expired session 401; forged role headers have no effect; no dependency TC05, TC23, TC31, TC37
R1-02 / BL18 Role or scenario selection/reset -> new envelope Role switch increments actor revision; scenario/reset increments generation and restores only this visitor; reads and writes use session lock Old actor/generation 409; retries recover committed control result; depends R1-01 TC31-TC34
R1-03 / BL02 Goal, activity, days, minutes -> preferences and proposal Validate unique days and bounds; match WALK-01 v1 only; activate solely after acceptance; preserve decline Unsupported activity/duration 422, malformed input, repeated current proposal; depends R1-01 BR01-BR03, TC01-TC04
R1-04 / BL03 Manual date/type/minutes -> activity with provenance Own active plan; valid calendar date <= fixed date; integer 1-1440 minutes; visible source Future/invalid dates, wrong role, inactive plan; corrections/deletion deferred; depends R1-03 TC06 create, TC07
R1-05 / BL05 Optional check-in, independent manual completeness, records -> review snapshot Ordered difficulty before completeness before invitation/progress; incomplete quantity null; explicit separate review action; snapshots immutable Wrong week, invalid note/selection, inactive plan; no automatic support; depends R1-04 BR06-BR12, TC11-TC15
R1-06 / BL06 Explicit plan/review request -> support reference Current review and coach-sharing prerequisite; one unresolved request; assigned-coach queue; no response deadline Permission off 403, duplicate 409, stale review 422; depends R1-05 BR14-BR15, TC16-TC17
R1-07 / BL07 Assigned coach, current base version, slots/rationale -> proposed change Protected access checked; support exists; proposing preserves accepted version/slots; immutable history Unassigned coach 404, revoked permission 403, stale base 409, unsupported slots 422; depends R1-06 BR03, BR15, BR17, TC18, TC23
R1-08 / BL07 Owner decision and ETag -> accepted new version or decline Acceptance atomically checks ETag/base; creates immutable version; decline preserves active version; resolves request Missing ETag 428, mismatch 412, revoked/cancelled proposal; depends R1-07 TC19 and API version-history assertions
R1-09 / BL15 Sharing off -> consent revision, cancellation and denied coach access Revoke under same transaction lock; cancel unresolved requests and proposed changes; preserve manual journey/history Protected read/write denied after commit, including replays; depends R1-06/R1-07 BR16, TC22
R1-10 / BL09 Analyst request -> pseudonymous decision projection Rule/version, input categories, outcome, template and plan/review versions; exclude names and free text Wrong role 403; metrics deferred; depends R1-05 TC24 decision subset
R1-11 / BL10 Role state and locale -> responsive guided screens Explain prerequisites and next step; language switch preserves state; synthetic label visible; keyboard focus and 360px layout Network errors preserve drafts and retry keys; stale state reload; depends incrementally R1-01-R1-10 TC28, TC35, TC36
R1-12 / BL17, BL19 Analysis, source, executed checks -> English case/evidence exports Local evidence links resolve; BPMN and UML reflect member-controlled handoffs; distinguish implemented/planned/simulated Public URL and VPS remain separate BL20; depends completed local journey Evidence/link validation, TC38

Persistence design qualification

Separate entity tables use composite session-scoped keys and foreign keys. Mutable attributes use JSONB, constrained by typed service validation; ownership and support uniqueness are database-enforced. This is a deliberate demo trade-off, not a fully normalized production field schema. Immutable versions/reviews/events are insert-only through the repository.

Local completion gate

Apply migrations to separate development and test PostgreSQL databases, execute domain/API/browser suites, verify production startup and restart persistence, inspect desktop/mobile layouts and keyboard operation, and record actual results. BL20 cannot begin before release-blocking local failures are resolved.