Decompose onboarding into phase composition
- Dominant language
- TypeScript
- Stars
- 22.5k
- Forks
- 3.1k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 715
Description
> [!IMPORTANT]
> Reserved for @cv. Do not self-assign this issue. Do not open an implementation PR unless @cv requests help.
Parent: #7691
## Problem
`src/lib/onboard.ts` imports more than 200 runtime modules. It contains dependency wiring and product behavior.
## Scope
- Define explicit onboarding phases.
- Move phase behavior into feature-owned application modules.
- Keep the onboarding entry module responsible for sequencing and dependency wiring.
- Reduce the onboarding fan-out and root-file budgets in each PR.
## Remaining sequence
1. Extract messaging application ownership (#9170). Work is in progress.
2. Extract gateway lifecycle ownership (#9171). Work is in progress.
3. Extract provider selection and review ownership (#9169). This work is queued after the current gateway PR. PR #9037 resolved the prior dependency.
4. Enforce the zero-decision entry boundary (#9172). This work waits for #9169.
## Acceptance criteria
- Each phase has a named input and result contract.
- The entry module contains no provider, gateway, messaging, or policy decision.
- Resume and failure behavior remain unchanged.
- Onboarding tests pass after each phase move.
Contributor guide
Assessment
This issue has not been assessed yet.