--- id: USER-WP-0028 type: workplan title: "User account journeys and recovery" domain: communication repo: user-engine status: active owner: codex topic_slug: communication created: "2026-09-13" updated: "2026-09-13" state_hub_workstream_id: "145df9d5-a7e9-5d20-8280-9d3ea069838b" --- Implements docs/account-journeys.md under USER-WP-0027. A passing local suite is not evidence that an external provider flow works live. ## Complete self-service feedback and safe retries ```task id: USER-WP-0028-T01 status: done priority: high state_hub_task_id: "baa9938e-271b-5590-bdc0-5c844070144c" ``` U01–U04/U10–U13: preserve safe profile input on validation failure; confirm saves, expose actual login name at password handoff, keep invitation/expired/session recovery reachable. Cover success, denial, provider interruption and retry. ## Connect authoritative application access ```task id: USER-WP-0028-T02 status: todo priority: high state_hub_task_id: "5d1bf977-034d-5448-b4fb-5a8b630af6ba" ``` U09 and T05: integrate a supported catalogue/admission source and scoped grants/revocation. Do not present static links or membership as effective authorization. Continues USER-WP-0026-T03; establish provider contract before deployment. ## Complete optional OTP onboarding with provider evidence ```task id: USER-WP-0028-T03 status: wait priority: high state_hub_task_id: "40e46e52-31ac-5abd-8793-04c1b7b82df3" ``` U05–U08: depends on KEY-WP-0035 and NK-WP-0033 credential custody. Verify enrollment/cancel/replace/lost-factor recovery and old-AAL1-session behavior before enabling live handoff. No stub acceptance. Validation: 210 database-enabled regression tests passed with no skips, including independent-connection last-admin protection and nested bootstrap rollback. Thirteen isolated Chromium checks passed. Provider OTP and application access integration remain explicitly open; no complete-journey claim is inferred.