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.
| 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.
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.