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 chartsTo doComplete FilterBar componentTo doComplete EntitySelector componentTo doWire EntitySelector into Deep Dive pageTo doWire EntitySelector into Compare pageTo doBuild Goals page UITo doResolve s1-4-3 (AI Builder) blocked itemTo doMobile responsive pass on all pagesTo doEmpty/loading/error states for all pagesTo doFix MetricCard sparkline renderingTo doReplace dashboard hardcoded metricsTo doAdd Playwright tests for analytics pagesTo 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
0/15 done15 open1 open blocker
Selected taskclear
Approve: Analytics UI
To doOwner · met_da35c936Blocker
Waiting on 14 · 14 still openComplete FilterBar componentComplete EntitySelector componentWire EntitySelector into Deep Dive pageWire EntitySelector into Compare pageBuild Goals page UIResolve s1-4-3 (AI Builder) blocked itemSettings page completion (analytics-specific)Mobile responsive pass on all pagesEmpty/loading/error states for all pagesEnforce design tokens in all chartsFix MetricCard sparkline renderingReplace dashboard hardcoded metricsAdd Playwright tests for analytics pagesDefine what 'basic analytics' means for the v1.0 cut line
Show the prompt
To doIn progressDoneBlockedPick a wave on the left · tap a task to expand it