Refluxora — Screen Flow Workbench

Sprint 3 locked the tab architecture (4 tabs + raised +Log FAB). Sprint 4 locked the UX per tab across 5 sub-consiliums (Today · +Log · Coach · Progress · Plan). All mockups below render in the locked A Cool Relief design system. Six cohorts (🔥 Brian · 🤰 Patricia · 🍷 Frank · 👴 Sam · 🌿 Anna · 🎤 Larry) are routed through identical chrome with cohort-specific hero content. Sibling docs: design.html (tokens) · index.html (overview).

🔒 LOCKED 2026-05-23 · v2 refinement 2026-05-24 A Cool Relief · mint #5BA89B + slate #2E3F44 + gold #C49B5E 5 tabs + Meal Scan big-flow 6 cohorts 20 consilium docs
✨ v2 refinement · 2026-05-24 After Sprint 5 Swift implementation: Today v2 (3 size regressions + animation matrix + Larry Sunday RSI ceremony) · Progress v2 (chart honesty fixes) · Meal Scan (NEW big-flow paradigm) · Coach v2 (36 prompts + state overrides + photo safety + multi-thread) · RAG v2 (corpus rebalance). Docs: Today v2 · Progress v2 · Meal Scan · Coach v2 · RAG v2
SPRINT 3 · TABS ARCHITECTURE (Path D — Merge)

Tab structure overview

4 tabs + raised center +Log FAB — Hepatica chrome pattern, proven. Three of four tabs map 1:1 to RootTabView.swift in Hepatica. Only Plan is novel (it owns the add-on monetization spine). Launch on Today — beats Coach (empty-chat), Progress (empty-chart) and Plan (compliance: "take 20mg" landing). Source: CONSILIUM_TABS_ARCH_LOCKED.

All tab labels ≤8 chars SF Symbols 5 (iOS 17) Launch tab: Today 4 paid add-ons live inside Plan
#TabSF SymbolRoleLaunch?Primary cohorts served
0 🏠Today house.fill Cohort-routed hero + daily ritual. 6 hero variants (RSI gauge · days-since · Tums ring · meal photo · med countdown · taper bar). Real-time updates from FAB commits. ✅ LAUNCH All 6 (per-cohort hero)
1 💬Coach bubble.left.and.bubble.right.fill DeepSeek V3 + on-device RAG. 4-section CoachHome (Daily Q · Try Asking · Cheat Sheets · Threads). 3-tier disclaimer pattern, 10 refusal categories. All 6 (cohort-voiced personas)
+Log plus (gold raised circle) Capture sheet, cohort-filtered chips (Meal/Symptom/Med/Lab universal + Tums/RSI/Throat-clearing/PPI/Drink/Supplement cohort overrides). Long-press = 1-tap radial. All 6 (chip override per cohort)
2 📈Progress chart.line.uptrend.xyaxis Segmented Chart ↔ Timeline toggle + PDF export. Per-cohort hero chart (Larry's RSI 12-wk · Brian's heartburn-days · etc.). 4 cohort-routed PDF formats (GI · ENT · OB · Functional-med). All 6 (per-cohort default view)
3 📋Plan list.bullet.clipboard.fill Active protocol + 4 paid add-on gates: LPR Pro $39.99/yr · Voquezna Companion $29.99/yr · PPI Taper Pro $29.99/yr · Diet Lab $29.99/yr. Single monetization surface. All 6 (cohort-priority card order)
🔥 Brian — severe PPI (25%) 🤰 Patricia — pregnant (12%) 🍷 Frank — foodie (22%) 👴 Sam — 60+ chronic (18%) 🌿 Anna — off-PPI (8%) 🎤 Larry — LPR ⭐ (15%)
SPRINT 4.1 · LAUNCH TAB

Tab 1 — Today (cohort-routed hero)

Invariant chrome (top bar · tempo band · "what just changed" badge · coach nudge · disclaimer footer) wraps 6 cohort-routed 280pt hero cards, each surfacing one BIG glyph (72–152pt) tuned to the cohort's primary metric. Real-time SwiftData inserts redraw hero on every FAB commit. Day-0 fallback shows preview animation; Day-7+ pulls through daily slot-machine changes anchored by Larry's Sunday RSI gauge ritual. Source: CONSILIUM_TAB_TODAY_LOCKED.

280pt hero card · 22pt corner Cohort tempo band (8pt) "What just changed" 4s toast Shared TodayHeroFrame
✨ v2 REFINEMENT · 2026-05-24 · CONSILIUM_TAB_TODAY_v2
3 silent size regressions in Sprint 5 Swift implementation must restore before Sprint 6: Patricia 56pt → 72pt · Anna 64pt → 80pt · Larry 96pt → 144pt (CRITICAL — RSI is the $39.99/yr LPR Pro hook; 96pt reads like a clock, 144pt reads like a verdict). Brian drops 152 → 128 (overpowers 280pt card · 54% vertical leaves no breathing room). Secondary cards revised per cohort JTBD (drop decorative checkboxes for outcome stats: Larry "RSI 18 (was 22) ↓4" replaces "3 of 5 vocal"). Per-cohort animation matrix locked (7am-open · log-reward · midnight) — Larry Sunday 09:00 RSI ceremony (4.6s needle sweep + arc fill + digit tick + ↓4 chip) becomes the App Store preview-video opening shot. Enforced by snapshot test gating Sprint 6 commits.
9:41● ●●● ⌶
Good morning, LarryDay 47 · LPR ⭐
RSI
RSI updated for Sunday
18
Reflux Symptom Index
↓ 4 since last week · threshold >13
⚠ RSI is a screening tool — discuss with your ENT.
🗣
14d
Throat-clear streak <2
🌿
82%
Acid Watcher 7d
🎤
3 of 5
Vocal hygiene today
💬
Ask Coach: "Is steam better than throat-clearing?"per AAO-HNS LPR Guidelines
Refluxora is a tracking companion, not a medical device. Discuss findings with your clinician.
🏠Today
💬Coach
📈Progress
📋Plan
+

🎤 Larry · headline hero — RSI gauge

Larry's hero is the most distinctive: a 280×180pt semicircular gauge with a 144pt center score (here 18), gradient mint→deep-mint arc fill, gold (--cta) needle, threshold tick at Belafsky 13, and a non-dismissible inline ribbon framing RSI as screening, not diagnosis (per COMPLIANCE.md).

  • Sunday 09:00 ritual: 1800ms expo-out needle settle + 1200ms arc fill + 1600ms digit tick — the keystone slot-machine animation
  • Regression handling: on Sunday RSI uptick, suppress dimming, route to Coach with pre-filled week-of-triggers context
  • Top-right pill: RSI quick-log waveform icon → opens 9-question Belafsky sheet directly
  • Tempo band: 7-day strip with Sunday halo (per-cohort visual rhythm)
  • Secondary strip: throat-clearing streak · Acid Watcher 7d % · vocal hygiene checklist (3 cards × 108pt)

Data bindings: LPRData.rsiScore · LPRData.rsiBreakdown · FoodEntry.acidWatcherCompliant · SymptomEntry.throatClearing.

All 6 cohort hero variants (shared TodayHeroFrame, different glyph zone)

Same chrome, same 280pt frame, same disclaimer footer. Only the 200pt glyph zone swaps — snapshot-test economy.

🔥 Burning Brian
9:41●●●⌶
BrianDay 47 · severe PPI
GI
12
days since flare
+ Log today's trigger
Voquezna ↓35%
8wk efficacy
2/wk
Last 7 flares
Tracking companion · not medical advice
🏠Today
💬Coach
📈Progress
📋Plan
+
Hero: "12" 152pt SF Pro Rounded Black · WOW: never shows "0" on reset → "Today" pictograph instead.
🤰 Pregnant Patricia
9:41●●●⌶
PatriciaWeek 28 · pregnant
28w
1,200
of 7,500 mg
Tums today
Confirm Tums limit with your OB
🌙
Left side
Tonight's sleep
💊
Pepcid B
Safe-med ref
Tracking companion · not medical advice
🏠Today
💬Coach
📈Progress
📋Plan
+
Hero: 240pt Tums ring · ring darkens past 75% (5,625mg) — color brake. Top-right: trimester picker "28w".
🍷 Foodie Frank
9:41●●●⌶
Frank7-day clean streak
📷
8:12 PM · Cipriani
Heads up — your map flags this
Dark roast
Safer swap tip
🍽
6 cuisines
Pre-flight kit
Tracking companion · not medical advice
🏠Today
💬Coach
📈Progress
📋Plan
+
Hero: 320pt full-bleed meal photo (only cohort with full-width hero). Top-right: camera shortcut → AVCapture direct.
👴 Senior Sam
9:41●●●⌶
Sam5 meds on file
🎤
Next med
09:00
omeprazole
✓ No conflicts
📄
GI · PCP · Cardio
Multi-doctor PDF
🛏
Wedge 6-8″
Pillow reminder
Tracking companion · not medical advice
🏠Today
💬Coach
📈Progress
📋Plan
+
Hero: 96pt next-med countdown · 600ms interaction scan on app foreground. Top-right: voice input mic for hands-free.
🌿 Anti-Pharma Anna
9:41●●●⌶
AnnaOff-PPI taper
🌿
Taper
4
/ 12
🌱
DGL · zinc
Supplements 4/4
📉
Rebound clear
7d vs baseline
Tracking companion · not medical advice
🏠Today
💬Coach
📈Progress
📋Plan
+
Hero: 96pt week + 12-segment ladder. WOW: Monday 06:00 segment unlocks with 800ms wipe + 200ms gold flash + 4s PraiseToast.
🎤 LPR Larry ⭐
9:41●●●⌶
LarryDay 47 · LPR ⭐
RSI
18
RSI · ↓4 this wk
⚠ Screening only — discuss with ENT
Tracking companion · not medical advice
🏠Today
💬Coach
📈Progress
📋Plan
+
Hero: 144pt RSI semicircular gauge — the cohort that justifies $39.99/yr LPR Pro add-on.

Per-cohort hero element matrix

CohortBIG glyph (size · color)Data bindingTop-right pill
🔥 Brian"12" · 152pt SF Pro Rounded Black · brand-deepstore.symptoms.filter { heartburn ≥ 3 }.last"GI report" → DoctorPDFExporter
🤰 Patricia240pt Tums ring · "1,200" 72pt center · ring darkens past 75%PregnancyData.tumsTracker.dailyDoseMg / 7500Trimester picker "28w"
🍷 FrankLast meal photo 320×320pt full-bleed + verdict pill 20ptFoodEntry.last { $0.photo != nil }Camera shortcut → AVCapture
👴 Sam"09:00" · 96pt + med name 34pt brand-midMedSchedule.nextDoseVoice input mic → SFSpeechRecognizer
🌿 Anna"Week 4" · 96pt + "of 12" 34pt + 12-seg taper barTaperPlan.weekNumber / 12Supplement leaf — 4 pre-set quick-log
🎤 Larry ⭐RSI semicircular gauge 280×180pt · score 144pt · gauge mint→deep gradient · gold needleLPRData.rsiScoreRSI waveform — opens 9-question Belafsky sheet
SPRINT 4.2 · CAPTURE FAB

Tab 2 — +Log FAB (cohort-filtered chip grid)

Center raised gold FAB on tab bar opens RefluxoraLogSheet (Hepatica fork) at 360pt detent. Chip grid is cohort-filtered: universal core (Meal · Symptom · Med · Lab) + per-cohort promotions (Patricia → Tums first; Larry → Throat-clearing + RSI; Brian → PPI dose; Frank → Drink; Anna → Supplement). Long-press 350ms opens 4-petal radial for 1-tap commits (Tums, throat-clear, PPI dose, "same symptom again"). EMOTION layer bans surveillance verbs ("log/record/track") in favor of ownership ("noted/captured/saved") and never celebrates on severity-≥4 days. Source: CONSILIUM_FAB_LOCKED.

2-tap default · 1-tap radial (Tums/throat-clear) 7-12 fields auto-filled invisibly 200ms .soft haptic + 4s toast App Intents + Lock-screen widgets
9:41● ●●● ⌶
LarryDay 47 · LPR ⭐
RSI
18
Reflux Symptom Index

Capture

Last: Throat-clear · 12 min ago
🗣 Throat-clearing +1 tap
🎤 RSI quick-9
🍽 Meal photo
💧 Symptom
💊 Med dose
📄 Lab scan
Quick-log Throat-clearing
Long-press FAB for radial · swipe down to cancel
Refluxora is a tracking companion, not a medical device.
🏠Today
💬Coach
📈Progress
📋Plan
+

+Log sheet — Larry cohort override

Universal core (Meal · Symptom · Med · Lab) becomes Throat-clearing · RSI · Meal · Symptom for Larry. Top 2 chips render full-row 64pt with gold border (the "primary" pair). Sticky bottom Quick-log capsule commits the top chip without sub-sheet — true 2-tap.

  • FAB gestures: tap (sheet) · long-press 350ms (radial) · swipe-up (camera) · swipe-down (undo banner 5s) · iOS 17 contextMenu (power-user)
  • Background enrichment after commit (never blocks UI): Vision item detection · pH bucket lookup · drug-DB interaction · 4-hr symptom-meal correlation · Acid Watcher % recompute · praise gating
  • 1-tap path: FAB long-press radial OR Lock-screen widget OR Action Button (iPhone 15 Pro+) commits Tums/throat-clear/PPI dose without opening app
  • Praise gating (EMOTION): severity ≥4 in last 6h suppresses all praise · RSI regression Sunday suppresses needle-fill animation · Brian never sees "streak broken" — Today reset pictograph instead

Cohort chip-override matrix

Universal core: Meal · Symptom · Med · Lab. Cohort overrides promote 1-2 chips to positions 1-2 (full-row gold-bordered primary slot).

CohortChip order (positions 1-4)1-tap target (long-press radial)Toast copy
🔥 BrianMeal · PPI dose · Symptom · LabPPI dose .rigid 0.8"Taken — 9:04 AM."
🤰 PatriciaTums · Meal · Symptom · SleepTums +500mg .soft 0.6"Added — 1,200 / 7,500 mg today."
🍷 FrankMeal · Drink · Symptom · MedDrink (3 quick-tiles)"Captured. Espresso flagged Watch (pH 5.0)."
👴 SamMed · Symptom · BP · MealVoice input (no radial — a11y)"Taken — 9:04 AM." (no praise — hygiene)
🌿 AnnaMeal · Symptom · Supplement · PPI doseSupplement leaf 4-slot rail"Added. DGL + zinc done for today."
🎤 Larry ⭐Throat-clearing · RSI · Meal · SymptomThroat-clear +1 .soft 0.5"Noted — 7 today. Map updating."
✨ NEW · MEAL SCAN BIG-FLOW (v2 · 2026-05-24)

Meal Scan — full-screen capture → Today landing → Coach handoff

Founder ask 2026-05-24: «по скану meal сделай большим сканом чтобы и сканировалось и попадало сразу на главную и пообщаться с coach можно было». Answer: full-screen .fullScreenCover (Hepatica MealScanView fork) → 7-step state machine → per-cohort Today landing router → one-tap "Discuss with Coach" primary CTA seeds CoachContextPayload with photo + verdict + cohort + 72h symptom digest. NOT a sheet detent, NOT an embedded card — full-screen because founder said "big". Source: CONSILIUM_MEAL_SCAN_LOCKED.

7-step flow · 2-4s total Per-cohort Today landing (Frank=hero, Larry=AW banner, etc.) Coach handoff with auto-prompt template per cohort "trigger rating" copy gate — never "causes reflux"
9:41● ●●● ⌶
🍝
🔍 detecting · pasta + red wine
Library
Cancel
9:41● ●●● ⌶
🍝
Reading your meal…
9:41● ●●● ⌶
🍝
Heads up · 8/10
Pasta arrabbiata · red wine
📚 based on Aviv Acid Watcher · pH 4.3
💬 Discuss with Coach →
Save & close
Edit details Re-scan
Educational tracking only — not a medical device. Discuss with your clinician.

5-frame flow · 3 cohort landings

Founder constraint: "большим сканом" → full-screen takeover (not FAB sheet, not embedded card). Hepatica DNA reuse ~80%: fork MealScanView.swift, swap LiverDataStore → RefluxoraStore, swap liver-friendliness → reflux-trigger rating, swap hepBrand → RefluxoraColors.brand.

Per-cohort post-capture landing (only Frank's meal becomes hero; rest land as secondary content because their JTBD isn't "show me what I ate"):

CohortLandingWhy this cohort cares
🍷 FrankHero replace — 320×320 photo becomes Today heroIdentity = photo journal · meal IS his Today
🔥 BrianSecondary card 200pt under hero · "Watch · 2h before bed"Tracks flares; meal = flare-prediction input (4h watch window arms)
🎤 Larry ⭐Sticky AW banner · "Acid Watcher compliance 6/7 today · this one not on protocol"KPI = AW % adherence · every meal nudges the ring
🤰 PatriciaSnippet row · "Captured · safe · 2h before bed ✓ left-side"Worries about bedtime + Tums interaction, not the meal itself
👴 SamSnippet row + interaction flag if drug+food collideRisk surface = drugs · meal only matters for interactions
🌿 AnnaSecondary card · DGL timing reminder · "supports week 4 protocol"Food = part of taper protocol, not separate domain

Coach handoff — auto-prompt template per cohort

When user taps "Discuss with Coach" on verdict card, CoachContextPayload (photo + verdict + cohort + 72h symptom digest + active meds) seeds a new Coach thread with the cohort-templated prompt below. Coach replies in 60-110 words, 3 bullets + closing line, with ≥1 ACG/Aviv/ACOG citation chip.

CohortAuto-prompt template (≤30 words)
🔥 Brian"I just ate {items}, trigger rating {n}/10, {hoursBeforeBed}h before bed. What should I watch for tonight, and would Voquezna timing help?"
🤰 Patricia"I'm {weeks} weeks pregnant. Just ate {items}. Is this combo OK for tonight's heartburn, and how many Tums can I safely keep in reserve?"
🍷 Frank"Just had {items} with {drink}. Trigger {n}/10. Give me 3 swaps that keep the flavor profile but drop the pH below 5."
👴 Sam"Just ate {items}. I'm on {medList}. Any interaction concerns, and should I shift my evening omeprazole?"
🌿 Anna"Captured {items} — does this support week {n} of my taper, or push me toward rebound? Should I add DGL before bed?"
🎤 Larry ⭐"Just ate {items}, pH {bucket}. This is {AWCompliant ? 'on' : 'off'} Acid Watcher. What's the impact on tonight's throat-clearing, and should I steam?"
SPRINT 4.3 · AI COMPANION

Tab 3 — Coach (4-section home + cited chat)

Hepatica-pattern 4-section CoachHome (Daily Question · Try Asking · Cheat Sheets · Conversations) feeds answers that are inline-footnoted, cross-tier-diverse (2-3 sources), confidence-banded (Grounded/Partial/Off-corpus chip ABOVE every answer), cohort-retrieval-weighted (Larry T2 ×1.5 · Patricia T4 ×1.5 · Anna T5 ×1.5), and pinnable to Doctor PDF. Voiced through 6 cohort personas. 10 refusal categories with warm pivots. Emergency intent → red banner with localized 911/999/112/000. Source: CONSILIUM_COACH_LOCKED · v2 refinement.

≤180 words per answer 3-tier disclaimer (footer + strip + ribbon) 14 intent labels · 6 multi-locale red-flag canned ✨v2 Cohort-weighted RAG retrieval
✨ v2 REFINEMENT · 2026-05-24 · CONSILIUM_COACH_v2
v1 (Sprint 4) locked the WHAT. v2 (Sprint 6 pre-impl) locks the HOW at scale: 36 enumerated starter prompts (6 per cohort, Cysta StarterPromptLibrary pattern) · 12 state-aware override rules (RSI ≥13 → larry_1+larry_6 chips; taper week ≥4 with rebound flag → anna_3 chips; etc.) · 42 daily-prompt matrix (7 days × 6 cohorts — Sun=Larry RSI · Mon=Anna taper · etc.) · 7 follow-up chip taxonomy · multi-thread Cysta pattern with topic-shift auto-spawn · photo-attach safety matrix (5 categories: meal proceed · lab OCR-not-interpret · endoscopy hard-refuse · skin hard-refuse · random polite-decline) · intent classifier 10→14 labels · 6 multi-language red-flag canned (EN/DE/RU + 988/116/0800/911/999/112/000 routing) · banned phrase dictionary EN/DE/RU · Larry exemplar system message template ~290 words · K=5 retrieval · 4000-token budget · 3-layer fallback ladder · MiniLM-L6-v2 CoreML fallback embedder (de-risks OpenAI embeddings outage; ~22MB) · refusal log as visible product feature in doctor PDF — compliance as marketing wedge.

BIG bets locked:"safety as UI not fine print" (refusal log surfaces in PDF) · ② "state-grounded prompts" (chips hydrate with live RSI/taper-week/active-drug — Coach feels like it's been reading your tracker all week, because it has) · ③ "network-resilient embedding" (MiniLM + LRU + FTS → <5% turns network-blocking).
9:41● ●●● ⌶
CoachLarry · LPR ⭐
DAILY QUESTION · TODAY
"My throat has cleared 7+ times most mornings. Is that pepsin reaching the larynx?"
Tap to start a thread →
TRY ASKING
→ "Validate my LPR — what does my RSI 18 mean?"
→ "What questions should I prep for ENT?"
→ "Is steam better than throat-clearing?"
CHEAT SHEETS · 8 OF 24
🎤What an RSI score actually means
🥗Acid Watcher pH>5 food list
💊Voquezna vs PPI — different
See all 24 →
CONVERSATIONS
📌 ENT prep — 3 questions · 2d ago
Voquezna prior auth template · 5d ago
Educational only · not medical advice
🏠Today
💬Coach
📈Progress
📋Plan
+

CoachHomeView — 4-section List (Hepatica pattern)

  • Daily Question rotates dayOfYear % 30 from 30-question cohort pool (180 total)
  • Try Asking — 3 cohort-specific opener prompts
  • Cheat Sheets — horizontal shelf, top-8 of 24-card pool, cohort-weighted relevance
  • Conversations — past threads, swipe-delete + rename (Hepatica precedent)
  • Tier-1 sticky disclaimer footer above tab bar — Coach only
9:41● ●●● ⌶
RSI 18 — what now?Larry · 4 messages
📄
My RSI just came back at 18. Is that bad enough to see an ENT this week?
● Grounded · 3 sources
An RSI of 18 is above the Belafsky 13 threshold — your ENT visit is justified. The 9-question RSI is a screening tool from Belafsky 2002[c1], validated for detecting laryngopharyngeal reflux. Scores ≥13 correlate with abnormal pH-impedance findings in ~75% of cases[c2]. AAO-HNS recommends laryngoscopy + reflux finding score before empiric PPI trials at this severity[c3].
Educational — confirm with your clinician.
⚠ RSI is a screening tool, not a diagnostic test. Laryngoscopy is needed to confirm LPR.
Talking points for my ENT Save to ENT report
Sources · 3
Educational only · not medical advice
🏠Today
💬Coach
📈Progress
📋Plan
+

CoachChatView — answer anatomy

  • Confidence chip (Grounded · Partial · Off-corpus) ABOVE every answer — non-dismissible
  • Bold verdict sentence + 2-5 grounded sentences (≤180 words total — Hepatica simplify lock)
  • Inline [c1] [c2] [c3] superscripts brand-mid 11pt anchored to claiming sentence
  • Safety strip below — rotates 4 variants
  • Hard disclaimer ribbon (watch-bg 28pt) on 6 claim types: pregnancy meds · PPI taper · RSI interpretation · lab values · Voquezna efficacy · supplement dosing
  • Follow-up chips — 1-2 cohort-voiced (Larry: "Save to ENT report" → DoctorPDF queue)
  • Sources collapsed by default; tap [c1] → 240pt verbatim popover
SPRINT 4.4 · CHARTS + TIMELINE + PDF

Tab 4 — Progress (chart ↔ photo-timeline toggle + doctor PDF)

Segmented control Chart ↔ Timeline (44pt × 280pt) + PDF export top-right with queue badge. Per-cohort default: Frank/Patricia/Anna → Timeline (foodstagram), Brian/Sam/Larry → Chart (clinical trajectory). Chart view has per-cohort hero (Larry's RSI 12-week LineMark is the keystone — Belafsky threshold ruled at y=13, AreaMark zones, gold Sunday PointMarks). Timeline is Instagram-density NoBurn killer with 393×393pt full-bleed photo cells + verdict pills. PDF: 4 cohort-routed formats (GI · ENT · OB · Functional) × 5 fixed pages. Source: CONSILIUM_PROGRESS_LOCKED · v2 chart honesty.

Larry RSI = $39.99/yr LPR Pro justifier Vector PDF via CGContext (not raster) Coach Q&A appendix with hard exclusions Locale-routed footer (US/GB/DE/CA/AU)
✨ v2 CHART HONESTY · 2026-05-24 · CONSILIUM_PROGRESS_v2
Sprint 5 ships mock bars with linear-decline formulas → implies outcomes before user has data. v2 fixes 6 cohort-specific honesty issues: Brian's fabricated "−83% since Voquezna" → real SymptomEntry @Query + RuleMark for Voquezna-start date · Patricia's banned causal "−65% with wedge" → "co-occurred with wedge 65% of nights" · Frank's color-without-sample-size heatmap → 2-encoding (opacity=N, color=correlation) + N≥5 gate · Sam's auto-scaled stable-data drama → fixed y-axis 0-10 · Anna's generic decline → actual TaperPlan.dosePerWeek mg with rebound LineMark + baseline RuleMark · Larry's mock RSI 22→14 always crossing Belafsky threshold → realistic noisy decline that doesn't always cross + dashed RuleMark always rendered + watch-bg AreaMark for >13 zone + fixed y-axis 0-45.

Cross-cutting rules: fixed y-axes (no auto-scale drama) · D0/D7 empty-state copy ("Trend builds here · 5 of 14 days") · mock-data watermark in DEBUG · causal-language banned in subtitles · thresholds always rendered · sample size visible.
9:41● ●●● ⌶
ProgressLarry · LPR ⭐ · default Chart
📄
📈 Chart
📸 Timeline
📄
ENT report ready3 Coach threads pinned · 12-wk RSI
3
RSI · 12-week trajectory
22 → 18
Belafsky 13 Voquezna
7d
30d
90d
12w
All
⚠ RSI is a screening tool — discuss with your ENT.
Acid Watcher % · weekly
82% 7d
Refluxora is a tracking companion, not a medical device.
🏠Today
💬Coach
📈Progress
📋Plan
+

Larry's RSI 12-week trajectory — keystone chart

The single most important chart in the app — Larry's RSI 12-week LineMark with Belafsky RuleMark at y=13, AreaMark zones (watch-bg above 13, alert-bg above 30), gold PointMark Sundays, and Voquezna-start vertical dashed rule. This is what the ENT spends 30 seconds with on page 1 of the PDF — the entire $39.99/yr LPR Pro monetization defense.

  • Toggle: Chart ↔ Timeline · 320ms cross-fade · .soft 0.5 haptic · "Pin as default" pill on non-default view
  • PDF export CTA top-right with queue badge (3 = Coach threads pinned)
  • 4 PDF formats: ENT ⭐ (Larry — RSI 12-wk + 9-dim radar + Acid Watcher %) · GI (Brian/Frank/Sam — heatmap + trajectory + adherence Gantt) · OB (Patricia — Tums vs ceiling + safe-meds + Coach Q&A pregnancy-excluded) · Functional-med (Anna — taper ladder + supplement PubMed bibliography)
  • Cross-tab handoffs: Sunday RSI regression → Coach with pre-filled week-of-triggers · long-press chart → "Add to Doctor PDF queue" · Frank heatmap cell → filters Timeline by (food, symptom)
  • Empty state: Hepatica MarkerGoalSkeleton — never shows fake data, never blocks on empty (D0: goal-skeleton with threshold rule + "Your trend builds here"; D7: sparse points; D14: thin line; D30+: full fidelity)
  • Compliance lexicon: banned "caused by/triggered by/diagnose"; required "you reported · co-occurred with · observed in N% of entries"
SPRINT 4.5 · PROTOCOL + 4 ADD-ON GATES

Tab 5 — Plan (free baseline + 4 paid add-on gates)

Stacked PlanSection cards: TodayProtocolStrip (sticky 64pt habit checklist) + free baseline per cohort (Diet · Sleep · Meds-display · cohort skeleton) + 4 add-on live-demo cards with soft lock chip (no blur, no greyout — real chrome, anonymized sample data). Zero paywalls Day 0-6. Single full paywall sheet only on cohort-defined peak-WTP trigger event. Captures (writes) NEVER gate — only premium reads (PDF export, A/B compare, full pH DB). Anti-dark-pattern rules locked (no fake countdowns, no shame copy, no peer comparison, no flare-paywalls). Source: CONSILIUM_PLAN_LOCKED.

LPR Pro $39.99/yr · Larry hero Voquezna Companion $29.99/yr · Brian+Larry PPI Taper Pro $29.99/yr · Anna Diet Lab $29.99/yr · Frank+Anna
9:41● ●●● ⌶
PlanLarry · LPR ⭐ · Day 47
Today's protocol · 2/4
No food after 7:30 PM
Snap your meal
·
Vocal hygiene: hydrate not throat-clear
·
RSI Sunday check-in
🎤
LPR Pro
+$39.99/yr
Full Acid Watcher 1,800-food pH database · 12-week RSI trajectory PDF formatted for ENT · vocal hygiene 4-program carousel (Singer · Teacher · Lawyer · Broadcaster)
Sample data — your trajectory after 14 days
🔒 Unlock — try 7 days, then $39.99/yr
🥗
Acid Watcher starter
FREE
12 staples: oatmeal · banana · melon · cucumber · root veg · whole grains · low-fat fish · skinless chicken · egg whites · almond milk · ginger · fennel
Ask Coach about this →
💊
Voquezna Companion
+$29.99/yr
8-week efficacy chart for GI · insurance prior-auth template · side-effect logSample data — discuss with your gastroenterologist
🔒 Unlock
More plans (2): PPI Taper Pro · Diet Lab →
Refluxora is a tracking companion, not a medical device.
🏠Today
💬Coach
📈Progress
📋Plan
+

Plan home — Larry cohort priority

Cohort-priority order: LPR Pro hero (locked, gold border, live preview) → free baseline (Diet · Meds · Sleep) → Voquezna Companion secondary → "More plans (2)" collapsed group for irrelevant add-ons. Single Tab, no scrolling exhaustion.

  • TodayProtocolStrip (sticky 64pt top) — 3-4 cohort-derived check-rows resetting 03:00 (parity with Anna supplement)
  • Soft lock chip (not blur, not greyout) — real chrome, anonymized sample data, 11pt "Sample data" watermark
  • Trigger events for LPR Pro paywall: (a) 2nd RSI logged AND improvement ≥3 points OR (b) 4 weeks active AND Acid Watcher adherence ≥40% OR (c) user taps "Save to ENT report" on Coach answer
  • Cross-tab upsell rate limit: max 2 surface-touches per 7 days per add-on outside Plan tab itself
  • Lapsed users keep capture forever — only premium reads (PDF export, A/B compare, full pH DB) gate
  • Anti-dark-pattern rules: no fake countdowns · no shame copy · no peer comparison · no interstitial paywalls · no paywall during flare (severity ≥4 in 6h suppresses 24h) · no paywall on Patricia ≥34w trimester · no win-back discount

4 add-on gates · cohort priority + trigger events

Add-onPriceCohortTrigger event (only thing that fires paywall sheet)
LPR Pro ⭐
(Acid Watcher 1,800 foods · 12-wk RSI PDF · vocal hygiene)
+$39.99/yr🎤 Larry(a) 2nd RSI logged + improvement ≥3pt · OR (b) 4 weeks active + Acid Watcher ≥40% · OR (c) user taps "Save to ENT report"
Voquezna Companion
(efficacy tracker · insurance appeal · drug-DB interactions)
+$29.99/yr🔥 Brian + 🎤 Larry(a) PPI logged 14+ consecutive days + breakthrough symptom ≥4 in 7d · OR (b) user mentions "Voquezna"/"vonoprazan" to Coach · OR (c) Coach refusal pivot #2 fires
PPI Taper Pro
(12-week wizard · DGL/zinc/mastic protocols · rebound watch)
+$29.99/yr🌿 Anna(a) Taper plan started + week 3 reached (~25%) · OR (b) rebound symptom ≥4 during taper · OR (c) DGL/zinc/mastic logged 3+ times
Diet Lab
(Mediterranean vs Acid Watcher A/B · restaurant kit 50+ chains · coffee chemistry)
+$29.99/yr🍷 Frank + 🌿 Anna(a) 30 days active + trigger map ≥3 foods at ≥70% correlation · OR (b) photo-timeline opened 5+ times · OR (c) same trigger food logged 3+ times after flare

Trial scope: 7-day trial covers SINGLE add-on triggered into (not all add-ons — prevents trial-shopping). Multi-add-on owners get Refluxora Pro · N add-ons active consolidation ribbon. Phase 3 (Month 7+): Loveiko Health Suite $199/yr cross-app bundle surfaces as Plan footer hint at 2-add-on threshold.