Context
Surfaced during a manual end-to-end test of the Plan→Focus→Shutdown flow on feat/evening-shutdown-83 (rebuilt APK from latest HEAD, fresh app data). Three navigation/flow gaps in the daily planning ritual were observed. Per discussion these are not to be fixed individually — they are inputs into a planned redesign of the daily planning ritual and should be addressed together as part of that redesign.
Gaps observed
Gap 1 — Drawer → Focus with unprocessed inbox skips the Focus screen entirely
Expected: Tapping Focus in the drawer shows the Focus screen with a Plan the Day button as the entry-point into the ritual.
Observed: When the inbox has unprocessed items and the day has not been planned, tapping Focus routes directly into /planning Step 1 (Clarify Inbox). The Focus screen is never rendered, so the Plan the Day button is unreachable from this path.
The router redirect at app/lib/router.dart:41-44 (/focus → /planning when !planningCompletionNotifier.value) is the proximate cause. The redesign should decide whether the Focus screen or a planning prompt is the canonical entry-point when planning is not complete.
Gap 2 — System back from Clarify Inbox exits the app to the launcher
Expected: Back from any planning step returns the user to a sensible in-app screen (likely Inbox or whichever screen they came from).
Observed: Pressing system back during /planning Step 1 closes the app entirely.
PlanningRitualScreen is a top-level route outside the ShellRoute, so there is no in-app back-stack to pop into.
Gap 3 — Energy step (Step 2 of 4) is skipped after the last Clarify item
Expected: Completing Clarify advances to Step 2 (Energy Check-in).
Observed: Tapping Next on the 5th (final) Clarify item lands on Step 3 (Time Check-in). Energy step is skipped entirely. Reproducible. Worked around in testing by tapping Back to reach Energy.
Likely a transition timing issue where the same Next button position is tapped on two consecutive screens, but the actual root cause is in the planning step controller's advancement logic.
Test plan (post-redesign verification)
Cold-launch with fresh app data, dismiss any first-launch prompts, then:
-
Inbox seeding
- Add 5 inbox items:
Complete this, Roll this over, Return this to Next, Defer this, Don't pick this.
-
Gap 1 — Focus is the planning entry-point
- Open drawer → tap
Focus.
- Verify the Focus screen renders with a visible `Plan the Day` button (or whatever the redesigned entry-point is).
- Verify NO automatic redirect into
/planning.
-
Gap 2 — Back navigation stays in-app
- Tap
Plan the Day → Step 1 (Clarify Inbox) appears.
- Press system Back.
- Verify the user returns to a sensible in-app screen (Focus or Inbox), not the launcher.
-
Gap 3 — Energy step is reached after Clarify
- From Step 1, clarify all 5 items (Low energy + 1h + Next Action each).
- After the 5th
Next tap, verify the screen header reads Step 2 of 4 · Energy Check-in, NOT Step 3.
- Pick High energy → Next.
- Verify Step 3 (Time Check-in) is now reached.
Out of scope
- The end-to-end correctness of Review Next Actions, Today's Tasks, Focus execution, and Evening Shutdown is tracked separately — those phases passed in the same test run.
- Bugs around `selectedForToday` lifecycle on completed and rolled-over tasks (observed in the same test run) are tracked in their own issues.
Context
Surfaced during a manual end-to-end test of the Plan→Focus→Shutdown flow on
feat/evening-shutdown-83(rebuilt APK from latest HEAD, fresh app data). Three navigation/flow gaps in the daily planning ritual were observed. Per discussion these are not to be fixed individually — they are inputs into a planned redesign of the daily planning ritual and should be addressed together as part of that redesign.Gaps observed
Gap 1 — Drawer → Focus with unprocessed inbox skips the Focus screen entirely
Expected: Tapping
Focusin the drawer shows the Focus screen with aPlan the Daybutton as the entry-point into the ritual.Observed: When the inbox has unprocessed items and the day has not been planned, tapping
Focusroutes directly into/planningStep 1 (Clarify Inbox). The Focus screen is never rendered, so thePlan the Daybutton is unreachable from this path.The router redirect at
app/lib/router.dart:41-44(/focus→/planningwhen!planningCompletionNotifier.value) is the proximate cause. The redesign should decide whether the Focus screen or a planning prompt is the canonical entry-point when planning is not complete.Gap 2 — System back from Clarify Inbox exits the app to the launcher
Expected: Back from any planning step returns the user to a sensible in-app screen (likely Inbox or whichever screen they came from).
Observed: Pressing system back during
/planningStep 1 closes the app entirely.PlanningRitualScreenis a top-level route outside theShellRoute, so there is no in-app back-stack to pop into.Gap 3 — Energy step (Step 2 of 4) is skipped after the last Clarify item
Expected: Completing Clarify advances to Step 2 (Energy Check-in).
Observed: Tapping
Nexton the 5th (final) Clarify item lands on Step 3 (Time Check-in). Energy step is skipped entirely. Reproducible. Worked around in testing by tappingBackto reach Energy.Likely a transition timing issue where the same
Nextbutton position is tapped on two consecutive screens, but the actual root cause is in the planning step controller's advancement logic.Test plan (post-redesign verification)
Cold-launch with fresh app data, dismiss any first-launch prompts, then:
Inbox seeding
Complete this,Roll this over,Return this to Next,Defer this,Don't pick this.Gap 1 — Focus is the planning entry-point
Focus./planning.Gap 2 — Back navigation stays in-app
Plan the Day→ Step 1 (Clarify Inbox) appears.Gap 3 — Energy step is reached after Clarify
Nexttap, verify the screen header readsStep 2 of 4 · Energy Check-in, NOT Step 3.Out of scope