← back to pin list

Brick 23: the onboarding wizard + shop profile (GET/POST /api/shop)

kerfmaster pin list · The interface — recorded intent (build later)

recordStates what the code does today. Auditable against the code — this is the only type that can go stale.

Content last changed 2026-09-16 — computed from the item itself, not typed.

Built 2026-09-01 (Aristide 'go for next build'). The onboarding wizard (pin onboarding-wizard) built ahead of common-line cutting because the common-line yes/no is the wizard's first recorded question and the archetype answer decides that block's default disclosure.

Server: app/shop.json is SHOP-level state — one answer set for the whole shop, every station reads the same profile (unlike the per-station theme/units/layout). GET/POST /api/shop. Exactly the two ruled questions: the shop ARCHETYPE (precision-first vs speed/efficiency-first — Jordan 2026-08-28, 'There are two kinds of shops') and common-line cutting yes/no. Answers persist with decided/who/date provenance ('typed in the app' until operator accounts arrive); a junk archetype refuses 400 in honest words, nothing saved.

UI: an unconfigured shop auto-opens the Shop setup modal once the tour is out of the way (never two modals stacked). The archetype SEEDS the common-line default (speed → on, precision → off) but never re-seeds an answer the operator has touched — seed, never bind, per the aid-the-operator philosophy. 'Later' snoozes per station; '? Help → Shop setup' keeps it one click away forever and is the edit surface (reopens prefilled). Honest on-screen note: the common-line CONTROLS are a later brick; the answer seeds their disclosure.

Proven: app/verify_wizard.js live over the public URL — 11 checks across two fresh stations: auto-open, both seed directions, touched-answer protection, snooze + menu reopen, disk persistence with provenance, prefilled re-edit, second-station sharing, refusal verbatim. shop.json restored unconfigured after the verify (the rates.json discipline) so the real wizard is answered by Aristide, not a test.

Honest limits: two questions today (the ruled set); more onboarding questions join as their features land; 'who answered' awaits operator accounts.