Mobile Day Rituals — Phone-Native Rebuild
For Agents
Replaces the old
StandupStreamSheet(a 90vh sheet that crammed 5 desktop standup components together). Now four focused phone-native sheets, each self-contained, each fetching its own data through the relevant hooks. Wired inMobilePlanwith time-aware CTAs. See mobile-native-feel for the surrounding architecture.
Why the rebuild
The original StandupStreamSheet (commit 9f39ff3) reused desktop components inside a single tall sheet. On a phone this:
- Forced the user to scroll past unrelated controls to reach the next step
- Inherited desktop popup-driven inputs (
StandupInputopens an overlay popup) that fight iOS keyboard behavior - Made the morning intake form (one prompt at a time, varying datapoint types) feel cramped
Replacement (commit b7626d9): 4 focused sheets, each phone-native, each fetched independently.
The Four Sheets
| Sheet | Purpose | Inputs |
|---|---|---|
MorningCheckinSheet | Single scrollable form per datapoint | NUMBER pill rows (44px tap), SCALE round-circle rows (0..max), BOOLEAN big two-button toggle, TEXT autosizing textarea |
StandupNotesSheet | Phone journal feed | Bottom-pinned composer (NOT desktop popup) + type chips (GOAL=copper, BLOCKER=amber, WIN=emerald) |
LunchCheckinSheet | Mid-day checkin | Goals checklist + free-text + Check-in stamp |
EveningReflectionSheet | End-of-day | Autosizing summary textarea + day-in-numbers stat strip + Close-day stamp |
Phone-Native Input Controls (Datapoint Types)
| Type | Control |
|---|---|
NUMBER | Row of 44px-tap pills, value rendered prominently |
SCALE (0..max) | Round-circle row, all values visible at a glance |
BOOLEAN | Two-column big-button toggle (Yes / No) |
TEXT | Autosizing textarea (grows with content) |
Wiring in MobilePlan
MobilePlan owns 5 separate sheet states (one per ritual + a Block edit sheet). CTAs are time-aware:
| CTA visible when |
|---|
Morning ritual — !morning_completed_at |
| Lunch checkin — morning done && lunch not done |
| Evening reflection — morning done && evening not done |
| Standup notes — always |
Self-contained sheets
Each sheet fetches its own data via the relevant hooks (
useDatapointConfigs,useDatapoints,useUpsertDatapoint, etc.). No orchestration inMobilePlan— it just opens/closes them.
Type-Chip Brand Tints
StandupNotesSheet chips use brand-tinted backgrounds (NOT plain bg-zinc-100):
| Type | Background | Text | Source |
|---|---|---|---|
| GOAL | copper-tinted | warm-black | levandor-brand |
| BLOCKER | amber-tinted | amber-900 | semantic |
| WIN | emerald-tinted | emerald-900 | semantic |
Related
- mobile-native-feel — Surrounding mobile architecture
- evening-checklist — A 5th ritual sheet (manifestation tracker, separate flow)
- mobile-autosave — How the morning + evening sheets persist text fields
- levandor-brand — Color tokens used by the chips
- day-planner — Desktop equivalent system