The kids' school app, made into a proper curriculum
*🔴🔴 THIS IS THE ONLY PLANNING DOCUMENT FOR THIS LANE.
As of September 10, 08:02 PM
What the status words mean
proven · done, not independently checked · partly done · not started · blocked · parked88%done, not independently checked
13 steps: 9 proven · 3 partly done · 1 untouched · 0 blocked · 0 parked
agent runs · not recordedtokens used · not recordedreview notes · not recordeddollars charged · not recorded
The plan as first written
Noah and Willow sit down to two lessons that are pitched at the level they are actually at, that get harder as they get stronger, that hold together week to week instead of being seven interchangeable weeks, and that they can do on their own — and Nick can read one page that says what each child is working toward. Nick, 2026-09-09: *"put together something that is far more standardized and then has a natural progression as they work through things … treat it more like a proper curriculum."*
Steps
| Id | Plain words | Percent | State | Proof | What is left |
|---|---|---|---|---|---|
| STEP 1 | One page you read that says what each child is learning toward, and in what order | 100% | proven | Node projects/personal/learning-app/standard/check-lessons.mjs --mode=curriculum-map PRINTS the line `orphan lessons: 0 · weeks with no named prerequisite: 0`, and a made-up mode exits 2. The exit code alone proves nothing on this tool: it reads only --name=value arguments and silently ignores anything else, so an unrecognised mode used to pass. | The step |
| STEP 2 | Every lesson says what it teaches, how hard it is and how long it really takes | 100% | proven | Node projects/personal/learning-app/standard/check-lessons.mjs --mode=facts PRINTS all five missing-counts as 0 AND the line `weeks whose two daily lessons differ by more than a quarter: 0`. Red-first baseline measured 2026-09-09: 0 of 78 lesson records carry any of the five. | The step |
| STEP 3 | The app finally gives each of them work at their own level instead of the same file | 90% | done, not independently checked | Level-based harder sets now served under both per-child worlds (2026-09-10); world-gates count still 14 of 14 pending the ROUTER lane | The step |
| STEP 4 | When they tell you a lesson was too easy, next week is actually different | 100% | proven | Closed 2026-09-10: --mode=loop prints all · 0; DeepSeek checker PASS (evidence/step4-checker-deepseek-2026-09-10.txt) | The step |
| STEP 5 | A plain yes or no every week that the work went up, and a week that did not go up cannot ship | 100% | proven | Rise-selftest mode prints RED/GREEN 2026-09-10; real weeks 9→10 flat as the signals asked (hold); checker in flight | The step |
| STEP 6 | You can see that a lesson meant to take an hour took twenty minutes, and how much they understood | 100% | proven | CLOSED 2026-09-10 — Start, Finish, real minutes beside intended minutes and a tap-only comprehension check driven as both children on the real screen; a reload never offers Start twice; the fidelity cells NOT MEASURABLE (the instrument measures the held world screens) — checked by DeepSeek (evidence/step6-checker-deepseek-2026-09-10.txt) | The step |
| STEP 7 | Noah can ask for a harder question like Willow can, and his daily long division is a real test | 100% | proven | CLOSED 2026-09-10 — long-division mode 0 · 0, the harder-one control driven as Noah on the real screen, kid-safety 130/130 — checked by Qwen (evidence/step7-checker-qwen-2026-09-10.txt) | The step |
| STEP 8 | They stop needing you mid-lesson, and a week has experiments in it instead of eleven drawing tasks | 100% | proven | Doable mode (default from week 9) reads 0·0, --selftest RED/GREEN, AUTHORING.md §12; checker to re-run with the selftest criterion | The step |
| STEP 9 | A lesson that would look broken to them is caught before they ever open it | 70% | partly done | Node projects/personal/learning-app/standard/world-gates.mjs --selftest prints one more check than 14 of 14, with the new visibility check caught failing on a blank fixture and passing on a drawn one; then the island world's own checker in its new visible mode records its real reading, whatever it is | The step |
| STEP 10 | Nothing you notice; anyone who picks up the school next can only find one plan to follow | 100% | proven | DeepSeek checker: NOTHING-REMAINING on all nine items (evidence/step10-remaining-deepseek-2026-09-10.txt); proof re-run first-hand 2026-09-10: PLAN-SS1-redesign-v2.md line 3 carries SUPERSEDED BY naming this plan; check_plan.py PASS (Gate Zero) exit 0 | The step |
| STEP 11 | Nothing you notice; nobody working on the school is misled by our own paperwork again | 100% | proven | README, CLAUDE.md, DEPLOY.md corrected 2026-09-10 (project name skippytutor; publish script now runs the lesson gate and kid firewall); --mode=docs 0 of 4; LESSON-STANDARD R11-R13 with tests and limits, no-scaffolding PASS; DeepSeek checker PASS on all five (evidence/step11-checker-deepseek-2026-09-10b.txt) | The step |
| STEP 12 | Every week gets its opening titles and Friday film for free, and the island world is either fixed properly or set aside for good | 80% | done, not independently checked | Wrappers generated for all ten weeks from the real lessons (--mode=wrappers all), unpublished; island-world scenario test not attempted | The step |
| STEP 13 | One line saying the school lane is done, and nothing else to read | 0% | not started | Python3 projects/ops/agents/check_plan.py on this lane's plan exits 0 with every step-map row carrying a dated VERIFIED line | The step |
Done
9 of 13 steps proven
Left
4 of 13 steps not yet proven
Blocked on
- Nothing currently blocked.
Formal remaining plan
| # | Step | Needs Nick |
|---|---|---|
| 1 | The app finally gives each of them work at their own level instead of the same file | No |
| 2 | A lesson that would look broken to them is caught before they ever open it | No |
| 3 | Every week gets its opening titles and Friday film for free, and the island world is either fixed properly or set aside for good | No |
| 4 | One line saying the school lane is done, and nothing else to read | No |
Decisions this lane is waiting on
- None.