The two-lane rule, why free play doesn't move your milestone
Every session you run on ClaudeLab is either a roadmap task or free play, and only the first lane advances your milestone, your streak, and your pass guarantee. Free play still feeds your readiness score because practice keeps skills warm, but it never moves the structural counters. That boundary is the single most common source of confusion in the app, and it's also the one rule that protects the integrity of the whole roadmap.
TL;DR
- Roadmap tasks have
is_roadmap_task=true. Free-play sessions haveis_roadmap_task=false. The flag decides what the session is allowed to change. - Only roadmap tasks advance milestones, extend streaks, count toward the pass guarantee, and feed spaced-repetition surfacing.
- Both lanes feed your readiness score, because both keep retention warm.
- The Today Task card on the dashboard is always a roadmap task. Anything you start yourself is almost always free play.
- If your milestone bar isn't moving, you're working in the wrong lane. The fix is one tap, not ten more sessions.
If you want the live version of this rule running in front of you, sign in at claudelab.me. The canonical rules-of-the-road page is Two lanes, and the troubleshooting twin is Free play not counting.
What the two lanes are
A session on ClaudeLab is a single chat run, mock-exam attempt, or topic drill. When that session is created, I write a row in the database with one boolean column that decides everything downstream: is_roadmap_task. When it's true, the session can advance milestones, count toward the streak, and feed pass-guarantee eligibility. When it's false, none of those things happen, no matter how long the session runs or how well you do.
That single flag is the entire mechanism. A free-play session and a roadmap task can look identical on screen, ask similar questions, score the same way, and end with the same kind of report. The difference is what each one is allowed to write back into your roadmap state.
The flag is set at session creation, by the surface that launched the session. The Today Task card and a milestone detail screen's Start button both write true. The exam tab's quick-start, a topic drill from the practice menu, a session you started just to warm up, all write false. ARIA chooses which surface is which, and the choice is intentional, not a UI accident.
Why the boundary exists
A roadmap is only meaningful if I control what counts as progress on it. The whole point of the CAT evaluation and the personalized plan that follows is that I picked the weakest domains, sequenced them in the order that gets you to ready fastest, and set validation gates I trust. If any session you happened to launch could move the milestone counter, you could (without meaning to) cherry-pick the topics that feel comfortable and skip the ones that scare you. That's the exact failure mode the evaluation was designed to catch in the first place.
The split also protects the readiness signal. Readiness has to mean a specific thing: probability of passing the exam today, given what I've watched you do. If I rolled every self-started session into the same counter as roadmap work, two users with identical readiness scores could be in radically different shape, and the pass guarantee would lose its grounding. Mixing the lanes corrupts the signal.
There's a third reason, which is more about you than the system. Choosing what to study every morning is hard, and it's the cognitive task you're least equipped to do well, because you don't know what you don't know. The Today Task card exists to make that choice for you.
What free play is actually for
Free play isn't second-class. It exists, and it's useful. It just has a different job.
Use it as warmup before a roadmap task you're nervous about. Use it as a sandbox for a topic you saw mentioned in a forum and want to poke at. Use it on a day when the Today Task is already done and you want to keep the engine running. Use it after a long break, when your readiness has decayed and you want to recover some signal before a milestone validation.
What free play won't do: advance the milestone counter, extend the streak, feed the pass-guarantee preconditions, or push items into the spaced-repetition queue with the same weight as a roadmap session.
What roadmap tasks do that free play can't
Four things, structurally:
- Advance milestone progress. A roadmap session targets a specific milestone, and on completion the milestone's session counter ticks up. Hit the count plus pass the validation gate and the milestone closes.
- Count toward the streak. Per Streaks, a streak day is one calendar day with at least one completed roadmap task. Ten free-play sessions in a row do nothing for the counter.
- Feed the pass guarantee. The pass guarantee checks five conditions in the database. One of them is roadmap completion. Free play doesn't feed it, by design.
- Surface for spaced repetition. Wrong answers in roadmap sessions go into your error backlog with full weight, so I resurface them at the right interval through the Today Task. Free play wrong-answers do go into the log, but they don't drive next-day surfacing the same way, because I can't trust the topic was the one you needed.
The streak rule, restated
The streak counter is a clean test case for the two-lane rule, because it makes the boundary visible the next morning. If you ran ten free-play sessions yesterday and your streak didn't extend, the rule worked exactly as designed.
A streak day is a calendar day on which you completed at least one roadmap task. Same calendar day as your last roadmap task, no change. Yesterday was the last roadmap task, streak extends by one. Older than yesterday, streak resets to one the next time you complete a roadmap session. There is no midnight cron that flips your number to zero. The reset is structural, not scheduled. Full rules on Streaks.
The 8pm warning notification fires only when there's no roadmap task completed for the day. Free play before 8pm doesn't suppress it, because free play didn't satisfy the rule.
The common confusion
The pattern looks like this. A user runs three free-play sessions on Monday, two on Tuesday, four on Wednesday. Ninety minutes a day on the app. They open the dashboard Wednesday night, see milestone progress at 0/3, and assume something is broken.
Nothing is broken. They ran nine sessions, none of which were the Today Task card. The fix is one tap on the card the next morning. The clash here is between felt-time math (I studied a lot, so something should advance) and structural math (only the chosen lane moves structural counters). Both are true. Once the rule is named, the confusion evaporates, which is why Free play not counting is one of the most-visited troubleshooting pages.
If you want extra reps, run the Today Task first, then free-play to the time budget you wanted. Order matters.
Common Questions
Why doesn't free play count toward my milestone?
Free play is any session you launch yourself outside the Today Task card. It carries is_roadmap_task=false, which means it never advances milestones, never extends your streak, and never counts toward the pass guarantee. If self-launched sessions could move the bar, you could cherry-pick easy topics and walk into the exam unprepared.
Does free play do anything at all?
Yes. Free-play sessions feed your readiness score through the retention factor, so they slow decay and keep skills warm between roadmap tasks. They're useful as warmup, recovery on a soft day, or extra reps after the Today Task is done.
How do I tell which lane a session ran in?
Look at where you launched it. The Today Task card and the Start button on a milestone detail screen both launch roadmap tasks. Anything else, including the exam tab's quick-start or a topic drill, is free play. The session header shows a green roadmap badge when on-roadmap, and your practice session history flags the lane on every row.
Can I convert a free-play session into a roadmap task after the fact?
No. The flag is set at session creation and is immutable. The reason is integrity: I have to know the topic, sequence, and validation gates I picked for a session in order to certify the work. If you ran free play instead of the Today Task, the fix is to run today's Today Task next.
Is free play a paywalled or limited mode?
Free play uses the same credit pool as roadmap tasks. No separate cap. Both lanes consume credits at the same rate and both check the 10-credit start floor. The only difference is what the session does to your roadmap state.
Run the right lane
The rule is short. The Today Task card moves you forward. Everything else is practice. Both are fine, but only one finishes the roadmap.
If the bar isn't moving, open ClaudeLab, find the Today Task card on the dashboard, and tap it. Start at claudelab.me and let me pick the next move. For the wider view of how I run the day around you, the companion piece is AI tutor for certifications.