This spec owns the application. After submit, the caregiver is handed to the existing onboarding (PR26) - they set a password by email, complete their profile, the team reviews, and they go live. The password-set email is sent immediately on submission (not after review), so the caregiver can finish their profile before the team reviews it.
/caregiver/register. No account yet.
Multi-step form. Draft autosaved.
"Check your email to create your password."
Set password → agreements, training certificate, payout details.
Team review within 72h.
Approved; visible to parents.
Declined is a terminal branch off review - communication & reapply still open (Q8).
Every field the application collects, in order, and whether it gates submission. Must blocks submit · Nudge optional · Cond conditional.
| Step | Field(s) | Class | Notes |
|---|---|---|---|
| Landing | Must | Required + format-validated (gates "Get started"). Creates account + draft in background. Locked after creation - it's the login identity, shown read-only with no in-flow edit. Early uniqueness check (Q7). | |
| Goals | What you're hoping for | Nudge | Select up to 2 (single interaction); curated list, no "Other". |
| About you | First name, Last name | Must | Required. |
| Phone | Must | International (E.164). Pronouns removed. | |
| About you | Address (line 1, city, country) | Must | Global address lookup + manual fallback. Line 2 / postcode / region optional. Framed as safeguarding, not proximity. |
| Your practice | Caregiver type (4: doula, lactation, sleep, hypnobirthing) | Must | ≥1. Drives the conditional specialisms below. |
| Years practising / Births supported | Must | Mutually-exclusive bands (incl. "less than a year"). | |
| Hourly rate (1-hr virtual) | Must | Currency (ISO 4217) + banded amount. Match input + analytics (Q16). | |
| Services / care types · Bio (care style) | Must / Nudge | Bio is mandatory - shown to parents & used for matching. Services optional. | |
| Your practice | Areas of specialisation | Nudge | Role-conditional - the per-type specialism lists (defined by the founder) for each caregiver type selected, plus a shared Family & identity group. Sits in "Your practice" (expertise). |
| Your matches | Availability (grid + school-holiday flag) | Nudge | Starting point only; granular settings added later. |
| Languages | Must | ≥1; type-ahead from a standard list; English pre-added. | |
| Check & submit | GDPR consent | Must | Hard gate on submit; timestamp stored. |
| Collected later, in PR26 onboarding: password, agreements (service agreement + code of conduct), training certificate, payout details (Stripe). Certificates/documents are not part of the application. | |||
All rules enforced client-side and server-side - the public submission endpoint must re-validate (client checks are bypassable).
| Field | Rule |
|---|---|
| Standard format; lowercased; uniqueness checked at first entry (Q7). | |
| Phone | International, incl. country code; strip separators; store E.164. Use a library (e.g. libphonenumber). |
| Address | Global lookup; line 1, city, country required; postcode/ZIP optional (format varies by country) - never hard-block. |
| Names | Required; trimmed; sensible max length. |
| Bio (care style) | Required; minimum length to avoid empty/placeholder submissions. |
| Type / Years / Births / Languages | Type ≥1; Years & Births single band each; Languages ≥1. |
| Hourly rate | Currency from ISO 4217; amount as a defined band (Q16). |
| GDPR consent | Must be explicitly ticked; store timestamp. |
| Rule | Detail |
|---|---|
| Single column always | One column at every width - multi-column forms hurt completion. Desktop adds width & breathing room, not extra columns of fields. |
| Breakpoints | <768 mobile (full-width). ≥768 centred card, max 680px. ≥1100 max 760px. |
| "Phone frame" | A mobile artifact only; on desktop it renders as a centred card on the page - no device chrome. |
| Padding / type | Content padding scales 20 → 56 → 72px; H1 23 → 28px. Tap targets ≥44px on mobile. |
| Selection grids | 2-up mobile → 3-up ≥768px (shortens long lists, e.g. the 12 doula specialisms). |
| Footer nav | Back + Continue at the foot of the card; may stick to bottom on mobile. Gating (§3) applies at all widths. |
| Landing | May use a wider/2-column hero on desktop; form steps stay single-column. |
caregivers columns (fixed specialism booleans; free-text years/births). Expect a migration and probably a specialisms join table.caregivers.user_id linking - verify the new draft→user path is compatible.active boolean. Needs an explicit status field./auth (Q5). CLAUDE.md §10.1 forbids a separate caregiver login page. Registration may live at a public route, but login must route through /auth.docs/payment-flow-decisions.md, payment-flow-margin-config-spec.md) - don't finalise in isolation.Stable numbering across versions. Reply by number.
/auth.status enum vs. overloaded active boolean?