Lanes
One lane at a time — the goal, the critical path, and the current wave of blockers.
Approve: Analytics UITo do · blockerDefine what 'basic analytics' means for the v1.0 cut lineTo doSettings page completion (analytics-specific)To doEnforce design tokens in all chartsBlockedComplete FilterBar componentTo doComplete EntitySelector componentDoneWire EntitySelector into Deep Dive pageTo doWire EntitySelector into Compare pageTo doBuild Goals page UITo doResolve s1-4-3 (AI Builder) blocked itemBlockedMobile responsive pass on all pagesTo doEmpty/loading/error states for all pagesTo doFix MetricCard sparkline renderingDoneReplace dashboard hardcoded metricsDoneAdd Playwright tests for analytics pagesTo doweb: text-success / text-destructive / text-warning are used in 10 files but the theme defines none of them, so they render uncolouredTo doWire trend data into MetricCard's new sparkline (Overview, Family detail, widget registry)To doWire EntitySelector into DeepDivePage and ComparePage (replace the placeholder)To do
Wave
Analytics UI
Live on all four surfaces. Now cut-list item #1 for scope reduction, since the AI Agent moved off the drop ladder — ship basic, defer advanced. The "what counts as basic" line is an open decision in this wave and should be drawn before anyone builds to it. Note apps/web already has Gate.tsx and usePlan.ts, so web tier-gating exists — iOS is the surface missing it.
TacTile › Launch TacTile › Analytics UI
3/18 done15 open1 open blocker
Task
Tap a task in the map to see what it's waiting on and what it unlocks. 1 open blocker in this wave.
To doIn progressDoneBlockedPick a wave on the left · tap a task to expand it