Everything we can show someone, on one page. Each card is one demo: what it is, what
state it is in, and every link needed to run it. The deck and the software are both
here, so a demo can be reviewed from any machine rather than from one laptop.
Every card is read out of demo/graph.json, which is also what
the map of every screen draws.
Comments: #ai-math-tutor in Slack, name the slide id.
The one thing to get right. The extra practice fires on a wrong
answer on the first press of Check on step 1, the rectangle. Put the
5x tile in the top right cell instead of 3x, fill the other
three correctly, press Check. To make it not fire, fill all four correctly
first time. There is no other way to trigger it, and step 2 cannot trigger it at all.
To make the extra practice fire: on step 1, fill F, I and L correctly
(x², 2x, 6) and put 5x
in the O cell, top right, then press Check once. The branch is spliced in
the moment that first Check is graded. Fix the cell to 3x, Check again, press
Next, and the backup lesson (12 × 13) is what comes up.
To make it not fire: fill all four cells correctly (x²,
3x, 2x, 6) and press Check. Step 2 goes straight to
the collect step, no branch, and the payoff page says nothing about extra practice.
The branch rem-foil-numbers fires when the mastery estimate for the FOIL
knowledge component (A-APR.A.1) drops below 0.35, checked
after a first attempt on step 1 or step 2. Only a first attempt is evidence; a second try
after feedback is not.
| What you do | Estimate after | Fires |
|---|---|---|
| Step 1 wrong first try | 0.25 to 0.184 | yes |
| Step 1 right first try | 0.25 to 0.660 | no |
| Step 1 right, then step 2 | 0.660 to 0.913 | no |
Step 2 cannot fire it. Once the two strips are out of the rectangle they dock and read
5x whatever route you took, so there is no wrong answer to give. Strips still
in the rectangle is an incomplete answer, and the tutor refuses an incomplete
submit without recording an attempt.
Any wrong tile works. 5x is the one the lesson has an authored explanation
for, so it is the one that shows the tutor naming the misconception rather than saying
"not quite".
The card carries a Backup lesson bar in, the page scrolls to it under
the header, and a screen reader hears the branch title before the step. The step is
12 × 13 split as (10+2)(10+3), two steps, then the lesson
picks up where it left off. The step counter goes from 1 / 9 to
2 / 11.
The rewind link above clears the session and today's data. Everything on the student side tolerates a missing key: the payoff page opened with no record says the lesson has not been done yet rather than showing an empty payoff, and the home screen shows the Start button as it does on a cold browser.
On complete only, under nwd.marcus.today:
{ "lesson": "alg1-factoring-02", "minutes": 1, "remediation": true,
"nodesMastered": ["foil", "factor-monic"],
"attempts": [{ "step": "s1-rectangle", "ok": false, "ts": "..." }, ...] }
minutes is real elapsed time, so a demo played at speed reads 1 or 2
rather than the 14 in the script. Say the number or keep it off the screen; do not read
the script's number off a run that took ninety seconds.
?student= on the URL that chip comes off and an identity chip goes in its
place, so a student never sees it. If a district asks how the tutor decides, open the
same lesson without ?student= and the inspector chip is back, with every
decision and the brief an LLM policy would receive.