platepilot

UX inventory

Status

PlatePilot implements the local M1 adult logging experience through Task 7 from these written specifications. That implementation includes adult setup, Today in Simple and Standard modes, custom manual meal entry, water entry, photo capture/library review, editable provisional estimates, day history, and explicit offline/sync/conflict states. Native camera/library and SQLCipher behavior still require simulator or device validation. Rows not marked implemented or partial remain M1+ specifications for design, research, and engineering estimation.

PlatePilot is for adults aged 18 and older and supports general wellness only. Designs must not introduce child profiles, dependent management, diagnosis, treatment, or guaranteed outcomes.

Screen inventory

Area Screen / state Intended outcome Status
Foundation App entry and navigation shell Demonstrate mobile structure and shared visual foundations M1 Task 7 implemented
Foundation Nutrition summary component example Compile-check a reusable summary presentation Superseded by Task 7 Today
Onboarding Welcome and adult affirmation Explain purpose and confirm the product is for adults 18+ M1 Task 7 implemented
Onboarding Wellness disclaimer Set non-medical expectations and provide an explicit continue action M1 Task 7 implemented
Onboarding Privacy and photo retention Explain immediate post-processing deletion, the 1-day infrastructure fallback, and optional 365-day diary retention M1 Task 7 implemented
Onboarding Preferences Choose units and a profile label; the dashboard density toggle lives on Today instead of in setup M1 Task 7 implemented
Photo meal Capture or choose photo Select a source and show permission rationale M1 Task 7; native validation pending
Photo meal Preview and retention Confirm image, remove it, and choose the allowed retention policy M1 Task 7 implemented
Photo meal Upload/analysis status Show pending, offline, retrying, failed, and cancelled states M1 Task 7 partial; no cancel action
Photo meal Review estimate Label result provisional; edit items/amounts or use manual entry M1 Task 7 implemented
Manual meal Search/recent/custom choice Start a meal without a photo or provider M1 Task 7: custom path plus offline USDA catalog search (7,793 foods, quantity-scaled nutrition, illustrated results); recent foods future
Manual meal Item and amount editor Enter food, amount, unit, and optional meal context M1 Task 7 implemented
Manual meal Meal review Review and save an adult-entered record M1 Task 7 implemented
Water Quick add Add an accessible, reversible amount M1 Task 7 implemented
Water History/edit Review, correct, or remove entries without judgmental copy M1 Task 7 implemented (edit/undo/delete from Today and History)
Dashboard Today Review meal/water summaries and incomplete/pending states M1 Task 7 implemented
Dashboard Simple/detailed mode One “Show all nutrients” / “Show fewer” toggle (compact view is the default; the choice is remembered per adult) M1 Task 7 implemented
Dashboard Daily targets Calorie meter and protein bar against the adult’s estimated targets, status words only (room to go / on track / a little over), never error styling; prompt to set a goal when none is saved M3 implemented (ADR-0011)
Planning Week overview Draft a personal plan without implying a prescription M2 implemented: generated Monday to Sunday week (mock meal-plan provider), summary with focus and edit state, allergen disclaimer verbatim from the API, “Fresh ideas” for the week or one day with a keep-or-replace prompt for hand edits
Planning Plan item editor Add, move, replace, or remove a planned meal M2 implemented: add your own meal, edit title, method, servings and slot, remove; generated meals show per-serving nutrition, ingredient count and allergens
Planning Plan-to-diary confirmation Copy a plan item only after adult confirmation M2 implemented: “I ate this” opens a review editor; the diary meal is created only on confirm
Planning Plan settings Allergies (14 EU allergens as hard exclusions), dislikes, focus without numeric goals, dietary pattern, servings, country and city or postcode, Sunday auto-generation M2 implemented
Planning Shopping list One line per ingredient for the week, ordered by the first day needed, with need / already have / bought ticks that survive plan edits M2 implemented
Household Create/invite Invite one other adult with clear privacy boundaries M3 implemented with mock identity (create, 12-character invitation code, 7-day expiry)
Household Invitation review Let the invitee accept or decline without pressure M3 implemented (join or decline by code; sharing explained before joining)
Household Sharing controls Explain and change what is shared; revoke membership M3 implemented (share plan and daily totals toggles, off by default; leave)
Subscription Trial explanation State entitlement, analysis allowance, timing, and price without pressure M3 implemented with mock billing (status, allowance, price, no pressure)
Subscription Purchase/restore/manage Hand off to approved platform/provider flows and show verified state M3 mock only (start trial, restore, cancel; store handoff is a placeholder)
Settings Account and preferences Manage units, appearance, accessibility, and future notifications M3 implemented (units, Today detail); appearance follows the system theme
Settings Privacy and photos Change future retention choice and request removal where supported M3 implemented (photo handling explained, default retention choice)
Settings Export and deletion Request a verified per-adult export or deletion M3 implemented (plain-text export shown in app; typed-word confirmation for deletion)
Settings About and help Show disclaimer, provider provenance, support route, and version M3 implemented (disclaimer, data provenance, support route, version)
Settings Goal and daily targets Goal, pace (hidden for maintain and general health), unit-aware body facts with “prefer not to say”, live target preview with estimate notice and soft cautions, manual adjustments M3 implemented (ADR-0011)
Internal Support landing Provide a non-customer-data internal shell M0 scaffold

The Task 7 meal editor exposes all required review fields before confirmation. Portion amount/unit and the selected occurrence time remain mobile-draft values because the existing diary API has no fields for them; server-refreshed history reconstructs generic portions and uses the record timestamp until that contract is extended.

Global states

Every implemented or future data screen needs:

The app has five bottom tabs: Today, Add, Plan, History, and Me (settings, household, subscription, reminders, data, help). Task 7 implemented Today, Add, and History, with photo, manual meal, and water entry beginning from Log or contextual Today actions. Plan is the M2 destination (see the roadmap); Settings remains a proposed M1+ destination; household and subscription management remain future concepts under Settings.