Task types
Every morning I pick one task type from a 14-level priority list. Higher priority wins. Variety matters too — see the rule at the bottom of this page.
The priority order
I walk down this list and stop at the first match.
| # | Type | Triggers when |
|---|---|---|
| 1 | milestone_test | Your active milestone is in validation_ready status — you've completed all required focus sessions. |
| 2 | phase_exam | Every milestone in the current phase is completed and the phase itself is still active. |
| 3 | retry_prep | Your active milestone is in failed status. You need to strengthen weak areas before retesting. |
| 4 | weekly_pulse | You've completed at least one task in the past 7 days, and you haven't done a weekly pulse yet this week. |
| 5 | memory_lock | A topic in your spaced-repetition queue is overdue by 3+ days. |
| 6 | belief_correction | An unresolved misconception has been on file for 48+ hours. |
| 7 | untangle | An unresolved confusion has been on file for 48+ hours. |
| 8 | fill_the_gap | An unresolved knowledge gap has been on file for 48+ hours. |
| 9 | error_backlog | You have more than 5 unresolved cognitive errors across all domains. |
| 10 | recovery_session | Your roadmap is behind_schedule_days ≥ 3. |
| 11 | domain_sos | Any domain in your active roadmap has a score below 50%. |
| 12 | topic_rescue | The same topic has been answered wrong 3 or more times across sessions. |
| 13 | dont_forget | A previously-mastered milestone's domain score has dropped 15+ points below the validation score you achieved on it. |
| 14 (default) | focus_session | None of the above triggered — your scheduled roadmap session for today. |
A few notes on the data behind these triggers:
- Cognitive errors are tagged at the end of every wrong answer during a session. I classify each one as
misconception,confusion,attention, orknowledge_gapand write the topic and domain alongside it. - Spaced repetition is driven by the SM-2 algorithm. Topics that I asked you to review and you didn't review on time end up in
memory_lock. - Schedule status is recomputed after every completed session and after every midnight roll-over.
What each type looks like
| Type | Time | What I do |
|---|---|---|
focus_session | ~30 min | Socratic practice on the active milestone's topics. |
milestone_test | ~30 min | Strict pass/fail validation. No hints, no second chances inside the session. See Milestone validation. |
phase_exam | ~45 min | Final exam for the phase. Closes out the phase before the next one unlocks. |
retry_prep | ~35 min | Targeted prep on the gaps from your last failed validation. Reads my restructure notes. |
weekly_pulse | ~15 min | Short reflection on the week — what's solid, what's drifting. |
memory_lock | ~20 min | Reinforce a fading topic before you forget it. |
belief_correction | ~25 min | Fix a persistent misconception. |
untangle | ~25 min | Work through a confusion you've been carrying. |
fill_the_gap | ~30 min | Teach the missing fundamental, then test you on it. |
error_backlog | ~30 min | Systematic sweep through your unresolved errors. |
recovery_session | ~40 min | One focused session to close the schedule gap. |
domain_sos | ~35 min | Emergency focus on a domain that's critically low. |
topic_rescue | ~25 min | Break the pattern on a topic you keep getting wrong. |
dont_forget | ~20 min | Reinforce a regressing area before it sinks your readiness. |
deep_dive | ~35 min | Goes deep on one concept area instead of breadth. Triggered by the variety rule. |
The variety rule
If you complete focus_session three days in a row, I won't give you a fourth focus session on day 4. I'll give you a deep_dive instead — same milestone, but a single concept area in depth instead of the usual breadth.
The rule applies only to focus_session. The other priority types already vary based on your error state and schedule, so they self-balance.
The variety rule is the only place where my default task is overridden by a non-priority signal. Everywhere else, the highest-priority match wins regardless of what you did yesterday.
What's not in the list
A few task types live outside this priority engine:
- Onboarding evaluation — only ever shown before your roadmap is generated.
- Demo test and Gauntlet — you launch these from the Study tab once you're unlocked. They're not assigned as the daily task.
- Exam-day warmup and Exam-day debrief — driven by your scheduled exam date, not by the priority engine.
The full type list and exact trigger conditions live in supabase/migrations/008_roadmap_functions.sql if you want to read the source.