← back to case study live prototype (parent project) → testing plan → ds addendum →
100%

Morsel — structure & assumptions · v3.1

The v3 prototype mapped as a wireflow. Green = implemented change (v2 = critique round, v3 = logic/edge-state round, v3.1 = audit round). Amber = still an assumption — target of the two-round usability plan (Testing Plan). Dashed nodes are sheets/overlays; dashed wires are secondary or recovery paths.

implemented (v2/v3/v3.1) assumption — test it recovery / secondary
done — or skip tap photo tab bar recalibrate / edit diet order heart no coverage nothing matches app fails to open
Onboarding 0

Welcome

Collage · location rationale · enable OR continue without

v3: permission rationale + denied path
Onboarding 1

Taste calibration

Tap ≥4 unlabeled dish photos · live "Sensing:" inference

v2: skippable v3: ranking connected — moderate, deterministic boost; never filters
Onboarding 2

Diet & safety

Lifestyle filters (veg/vegan/pesc) · allergies exclude from discovery

v2: 3-tier splitv3: honest promise — saved dishes kept + warned
Hub

Feed

Editorial hero · Near you / Trending · masonry grid, photos only

photo-only grid: enough info scent? v3: taste boost + loading / offline / location-off states v3.1: "For you" + demo-distance label when location off
Sheet

Location

Type any city/hood · covered vs "no coverage yet" labels

v3: denied + manual + no-coverage paths
State

No coverage

Honest empty city — never DC dishes mislabeled

v3
Screen

Search

Craving-first · labeled results · related threads · recovery

v3.1: diet-aware zero state — names the excluding rules query model vs real vocabulary
State

Zero-result recovery

Names each active limit · separate actions per tier — "clear browsing filters" never touches allergies

v3
Screen

Dish detail

Photo hero · % would order again · quotes · Save / Directions / Order

v2: verified + "how we know" v3: cold-start "no score yet" · sold-out · allergy warning on direct open v3.1: illustrative-data labels on counts + quotes
Screen

Restaurant

Stats · "Shot here" grid (allergy chips) · closed = no ordering

v2: closed statev3: warn chips
Sheet

Order handoff

Carriers w/ ETA + fee · pickup "skip the fees"

v3: handoff failure + retry + pickup fallback v3.1: allergy re-warn + acknowledgement gates every option exits app →
Toast

Saved (instant)

Auto-save + optional "Add to collection"

Sheet

Add to collection

File into shelves · create inline · name required

Tab

Profile

Taste card · dietary tiers · settings rows

v3.1: location row mirrors live state — never stale
Tab

Saved

Collections rail · all saves · Recent / Nearest

v3: conflict chips, never auto-deletev3.1: Nearest disabled without location
Screen

Collection

Named shelf → dish detail · empty state

v3: warn chips
Still assumptions — test round 1

· Photo-only grid gives enough info scent
· "A stroll / Short hop" filter labels
· "% would order again" comprehension
· Trust of momentum-based Trending
· Taste calibration ≥4 taps feels worth it
· Allergy model matches user expectations
· Order-primary action hierarchy