Skip to main content

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.

#TypeTriggers when
1milestone_testYour active milestone is in validation_ready status — you've completed all required focus sessions.
2phase_examEvery milestone in the current phase is completed and the phase itself is still active.
3retry_prepYour active milestone is in failed status. You need to strengthen weak areas before retesting.
4weekly_pulseYou've completed at least one task in the past 7 days, and you haven't done a weekly pulse yet this week.
5memory_lockA topic in your spaced-repetition queue is overdue by 3+ days.
6belief_correctionAn unresolved misconception has been on file for 48+ hours.
7untangleAn unresolved confusion has been on file for 48+ hours.
8fill_the_gapAn unresolved knowledge gap has been on file for 48+ hours.
9error_backlogYou have more than 5 unresolved cognitive errors across all domains.
10recovery_sessionYour roadmap is behind_schedule_days ≥ 3.
11domain_sosAny domain in your active roadmap has a score below 50%.
12topic_rescueThe same topic has been answered wrong 3 or more times across sessions.
13dont_forgetA previously-mastered milestone's domain score has dropped 15+ points below the validation score you achieved on it.
14 (default)focus_sessionNone 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, or knowledge_gap and 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

TypeTimeWhat I do
focus_session~30 minSocratic practice on the active milestone's topics.
milestone_test~30 minStrict pass/fail validation. No hints, no second chances inside the session. See Milestone validation.
phase_exam~45 minFinal exam for the phase. Closes out the phase before the next one unlocks.
retry_prep~35 minTargeted prep on the gaps from your last failed validation. Reads my restructure notes.
weekly_pulse~15 minShort reflection on the week — what's solid, what's drifting.
memory_lock~20 minReinforce a fading topic before you forget it.
belief_correction~25 minFix a persistent misconception.
untangle~25 minWork through a confusion you've been carrying.
fill_the_gap~30 minTeach the missing fundamental, then test you on it.
error_backlog~30 minSystematic sweep through your unresolved errors.
recovery_session~40 minOne focused session to close the schedule gap.
domain_sos~35 minEmergency focus on a domain that's critically low.
topic_rescue~25 minBreak the pattern on a topic you keep getting wrong.
dont_forget~20 minReinforce a regressing area before it sinks your readiness.
deep_dive~35 minGoes 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.

note

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.