Plan your week's groceries in three taps — pick a store, build a plan, share it with your household. The chore everyone already does, made repeatable, shared, and quietly cheaper.
Every data ask explains why we need it, what it unlocks now, and what it means long-term. Data gathering should feel like a gift exchange, not a form. Personal until shared — then the household layer activates.
The trust-building ask, with a real preview of the experience — so the address feels earned, not extracted.
Three closest stores, best-match pre-selected. Ranked by the decision engine + your history. A favorite seeds loyalty + savings.
7 days, each with a meal-type icon (home / takeout / out). Staples, dynamic pricing, preferred store auto-selected.
Guest (view-only) vs household (view + edit). Family upgrade offered naturally — kids 15 & under always free.
The non-negotiables — grounded in product law. If a build breaks one of these, it isn't shippable.
No tool is solo — WG is the household layer; the share step is structural. Group law
Starts at Step 1 until the first plan is saved; never assumes a returning state.
Guests view-only until subscribed; household members edit. ADR-025
15 & under never gate on subscription. ADR-026
936ms · cubic-bezier(0.16,1,0.3,1), 350ms stagger on entrances. UI Rule 4
Every value via useTokens(); every screen cites its Figma node — fidelity over invention.
5+ services compose through useWeeklyGroceriesFlow, never flat in the screen. Path B
Recurrence drives weekly plans + dollar/time savings tracking. ADR-021
Weekly Groceries is the lead tool because it's the highest-frequency household chore — repeated weekly, shared by default. It's where the relationship graph and the recurrence engine first earn trust, before higher-stakes tools.
Recurs every week — earns the daily-open habit before anything else.
The share step turns one member into a household — a built-in viral loop.
Store choice → loyalty depth → savings. Each week sharpens the ranking.
Validates the orchestrator architecture every future tool inherits.
Dollar + time tracking makes the subscription self-justifying.
Feeds Dinner Decider + Group Get Together — context reused, not re-asked.
| WP / Item | Scope | Status | Notes |
|---|---|---|---|
| wp-flows.1 | useWeeklyGroceriesFlow orchestrator | Next lane | Unblocked — async migration complete. |
| useRSVP wiring | Share screen → real RSVP service | Stubbed | Stub added in canonical to unblock build. |
| usePreferences wiring | Store ranking → preference history | Stubbed | getRecord / modeState / confirm stubbed. |
| Decision engine | new-vs-established rankOptions | Stubbed | Full engine in monorepo history (ce17ea1). |
| wp-grocery.recover.2/.3 | Recover polished flow from sibling branch | Gene eyeball | Path C Step 1 pending. |
| EAS preview build | On-device shell, SDK 54 | In flight | Dep alignment → rebuild. |
| Address autocomplete | Google Places, debounced, lat/lng | Built | Atom shipped (799bcfb). |
| Orchestrator (Path B) | WG is the canary: flat-wiring stops scaling at 5+ services. wp-flows.1 extracts first. |
| Async migration | Universal-service layer is now async-shaped. Unblocked wp-flows.1 + wp-vault.1. |
| Source of Truth Lock | Canonical screen paths SHA-locked after the polished WG flow was overwritten by a rebuild. |
| ce17ea1 | usePreferences + decision engine wired into Store screen — ranking by history + proximity + price. |
| 7bb619b | useRSVP wired into Share screen — first real use; household vs guest model. |
| e0521d4 | Steps 2 + 4 wired to real data — full flow complete with dynamic pricing. |
Canonical files live in ~/Developer/geez/src/components/screens/, each SHA-locked per the Source of Truth Lock. Figma node IDs to be backfilled.
| Screen | Role | Carrier / Archetype | Figma |
|---|---|---|---|
| WeeklyGroceriesScreen | Step 1 — Home Address | SET (form) | backfill |
| WeeklyGroceriesStoreScreen | Step 2 — Pick Store | CONFIRM (sectioned list) | backfill |
| WeeklyGroceriesListScreen | Step 3 — Weekly Plan | TRACK (day grid) | backfill |
| WeeklyGroceriesShareScreen | Share — household / guest | CONFIRM (sectioned list) | backfill |
| Data Minimalism | Repeatability reduces build burden; reuse is a success metric. WG context feeds other tools. |
| Every Tool Has a Group | No tool is solo. WG is the household layer — the share step is structural. |
| New User First | Always start the new-user flow unless authenticated + subscribed. |
| Home Base Interconnection | Supply-chain flow; WG output is upstream input for meal & event tools. |
| Relationship Graph Seed | Phone contacts bootstrap relationships; share step is the first production exercise. |
| Earned Tool Unlock | Tools unlock through accomplishment (3 completions). WG is the on-ramp. |
| # | Action | Owner | Unblocks |
|---|---|---|---|
| 1 | Align deps to SDK 54 → clean EAS preview build on Gene's phone | Build | On-device demo of full flow |
| 2 | Build useWeeklyGroceriesFlow orchestrator (wp-flows.1) | Core | Pattern for all future tools |
| 3 | Swap stubbed useRSVP / usePreferences for real services | Core | Real share + store ranking |
| 4 | Restore full ranking engine into canonical | Core | Intelligent store recommendation |
| 5 | Backfill Figma node IDs in all 4 screen headers | Design | Source-of-truth compliance |
| 6 | Resolve wp-grocery.recover.2/.3 (Gene eyeball) | Gene | Recovers lost polished flow |
| Two-repo drift | Canonical vs monorepo. Real WG logic lives partly in monorepo history; canonical has stubs. |
| Stub debt | Three stubs mask real behavior to keep the build green. Demos show stub data until swapped. |
| Figma backfill | Screens predate the Figma Source Law; node IDs must be added. |
| EAS budget | 15 iOS builds/month. Shift to OTA updates for JS-only changes. |
| Pricing copy | $1/wk or $50/$100 annual; ensure Share family-upgrade copy matches. |
| Recurrence depth | Savings tracking designed but not yet wired into the List screen. |
New opportunities are appended with a priority score (0–100). Gene accepts or defers — accepted/deferred items move, they're never dropped.
| EAS Preview Build | On-device iOS build (ad-hoc). Status: in flight — SDK 54 dep alignment. expo.dev → builds → |
| Web fallback | GeezSuperApp web build deployed as Layer-4 fallback. |
| Screen recordings | Flow walkthroughs — captured once the clean build lands on the phone. pending build |