Today's Task card
This is the card I rebuild for you every morning. One task. The right one for today.
What it is
The Today's Task card sits at the top of your dashboard and your roadmap screen. It's the most important surface in the app — every other screen exists to support it.
I generate exactly one task per day. Not a list. Not a menu. One task, scoped to where you are right now in your roadmap, your error backlog, and your schedule.
When you open the app, I check: do you have a task for today already? If yes, I show it. If no, I create one before the screen renders. You will never see an empty state on this card unless you have no active roadmap yet.
The pieces of the card
A live card shows seven things, top to bottom:
- Type icon (top-left, 34px square). Color-coded by task type — green for focus work, gold for milestone validation and phase exams, red for retry prep and Domain SOS, neutral for weekly pulse and memory lock.
- Type label (uppercase, e.g.
MILESTONE VALIDATION). - Estimated time pill (top-right, e.g.
~30 min). My honest estimate of how long this will take if you focus. - Task title (e.g.
Milestone Validation,Focus Session,Domain SOS). - Subtitle — the specific target. For a focus session this is the milestone title. For a Domain SOS it's the failing domain.
- Context line — one sentence from me explaining why this is today's task.
- Action row — the green
Startbutton on the right. If you've already completed today's task, the button is replaced by aCompletedpill and the card dims to 78% opacity.
If you completed yesterday's task and there's a weakness report attached, you'll also see a Last report button on the action row. Tap it to re-read the report without detouring through the roadmap tab.
When the card carries over
If you don't finish your task before midnight in your local timezone, I don't delete it — I carry it over.
You'll see a small amber Carried over pill on the action row the next morning. The task body stays the same. Carry-overs accumulate and feed into your schedule status (see Carry-over and recovery).
When the card is tappable
The whole card is a tap target when:
- The task is bound to a session type I can launch (
focus_session,milestone_test,retry_prep,domain_sos,recovery_session,weekly_pulse,memory_lock,gauntlet). - You have an active certification on this account.
- The task isn't already completed.
Tap the card and I route you to the correct screen — a chat session, a milestone validation overlay, the gauntlet, or the milestone detail page. You don't have to choose; I do.
If your credit balance is below the session-start floor (10 credits) when you tap, I open the paywall instead of routing. No silent failures.
The Last report button is a nested tap target. It claims the touch before the card wrapper does, so you can jump straight to yesterday's report without accidentally launching a new session.
When you'll see "ARIA couldn't load today's task"
That's the error state — verbatim copy from the app. It means the network request to get-today-task failed. The card replaces the body with a small red banner and a Retry button. Tap it and I'll try again. If it keeps failing, check your connection or sign out and back in.
Why this surface matters
Most prep apps give you a content menu. I don't. Choosing what to study every day is the hardest cognitive task you'd be asked to do, and you're not equipped to do it well — you don't know what you don't know. So I do that for you.
Every priority that drives this card — milestone status, error backlog, schedule drift, regression detection, spaced-repetition queue — is read from your data, not guessed. The next page covers the full type inventory.