Not a chat window waiting for a good question.A map of sixty individual skills, a running probability your
child knows each one, and a gate they cannot talk their way past.
Learning is not a feed.It has a shape, a sequence, and a floor you have to reach
before the next thing means anything.
Sixty knowledge components, joined by sixty-seven
prerequisite links and six encompasses relations, where mastering the
broader skill subsumes the narrower one. The scheduler can only select a skill
whose every prerequisite has already passed the gate.
This is the real graph, not an illustration of one
— the same file the product reads at runtime.
Prerequisite graph · prealgebra
60 nodes
Nodes fill as you scroll: this is the order the scheduler is allowed to
unlock them in.
Integer Word Problems: Temperature, Elevation & Finances 7.NS.A.3
Recognizing Proportional Relationships 7.RP.A.2a
Constant of Proportionality 7.RP.A.2b · 7.RP.A.2c · 7.RP.A.2d
Solving Proportions by Cross-Multiplication 7.RP.A.2c · 7.RP.A.3
Percent Increase 7.RP.A.3
Percent Decrease 7.RP.A.3
Percent Word Problems: Discounts, Tax, and Tips 7.RP.A.3
Scale Drawings and Scale Factor 7.G.A.1 · 7.RP.A.2
Solving One-Step Equations with Fractional or Decimal Coefficients 7.EE.B.4 · 7.EE.B.4a
The day, assembledTwelve items, chosen before your child sits
down, in an order a person could check.
02 — the plan
The day is assembled before your child sits down.Most tools wait to be asked. This one arrives with an agenda,
and the agenda is computed, not generated.
6
due reviews, most-overdue first, surfaced the
day their memory is predicted to fade
4
frontier lessons — only skills whose every
prerequisite already passed the gate
2
quiz items from skills already mastered, to
keep them honest
Then it interleaves them, because blocked practice
feels better and works worse. Pause a topic from the parent dashboard and it is
provably absent from tomorrow's plan.
Five things happen between an answer and the screen changing.Every one of them is code you could read.
The membrane
Every message in and out passes one package.Child input reaches a model, and model output reaches a
child, only through packages/safety.
This is not a policy anyone has to remember — a CI test fails the build if any
child-facing file imports a model client directly. Chat-template tokens and fake
system directives are stripped deterministically before a classifier ever sees
the text.
scripts/check-import-boundary.mjs · runs in pretest
The hint ladder
Four levels, and the answer isn't in the first three.A nudge, then a targeted sub-question, then one worked step,
then a full worked example on a different problem with the same
bones.
The structural part matters more than the tone: at levels one through three the
correct answer is stripped from the payload before the request is sent. The tutor
cannot leak what it was never given — not to a clever prompt, not to a determined
twelve-year-old.
packages/safety/src/tutor.ts · redactAnswer()
The grader is not a model
SymPy decides. Language models never grade.Answers go to a symbolic-algebra service, not to a
chatbot.
It proves equivalence symbolically, then by a distinct numeric-refinement path,
then by sampling twenty points to a tolerance of 1e-6. So x+2 and
2+x are both simply correct. Input it cannot parse returns
ungradeable — not wrong — and the learner model records
nothing, so a typo never becomes a phantom gap.
services/mathcheck · POST /verify
Frustration fusion
Tone, latency and error streak, combined in code.A model reads the message for frustration; code makes the
decision.
Code adds a point if response latency crosses 1.5 standard deviations above this
session's own baseline, and another if the error streak hits three. Two points
shortens the session. Three ends it warmly and flags it for the parent report.
The model contributes an observation; it does not make the call.
apps/workers/src/orchestrator/frustration.ts
The mastery gate
0.95 confidence and two successes 48 hours
apart.Both conditions, always — and the second is the
one that matters.
Ten lucky guesses in a single sitting can never unlock a skill, and neither can
one good afternoon. Advancement is arithmetic over the learner model: the
dialogue cannot override it, cannot be persuaded, and cannot be in a hurry.
Try to talk your way past it.The stated rule, evaluated in your browser. Nothing is sent
anywhere and nothing is retained.
masteryGate() · one skill
runs locally
advance if p(known) >= 0.95 AND successes >= 2 AND gap >= 48h
p(known)
0.62
successes
0
gap
—
Awaiting evidence — no successes recorded.
This is the stated rule, not a live learner model. No network, nothing retained.
05 — verification
No child has ever seen an unverified problem.Not as an aspiration — as a property of the pipeline. Items
are manufactured offline and cannot reach a child without clearing every
gate.
Nothing here depends on a model behaving well. Each
stage is a filter that a template either survives or does not.
Manufactured, then checkedAn item is written, run twenty-five
ways, blind-solved, linted, and re-verified before a child can see it.
How a problem earns its way in
5 gates
Drafted with its own proof. A model writes a parameterized
template and a self-contained verification script.
Run 25 ways. The script executes across twenty-five sampled
parameterizations in a network-less sandbox. It must pass all of them.
Blind-solved independently. A separate model call re-solves five
rendered instances with no solution anywhere in its context. Any disagreement
kills the template.
Linted. Reading level, cultural neutrality, personal
information.
Re-verified to go live. Even after all that, an item is only
promoted once its stored answer proves out symbolically a second time.
Failures are quarantined and written to an append-only audit log.
A tutor with a memory.For every child, for every one of the sixty skills, the system
holds a small piece of persistent state — and that state, not a session transcript,
is the product.
This is the thing that compounds, and the reason
leaving hurts: a new tool restarts the diagnostic and the entire spacing
history at zero.
What a parent actually sees
Not a SmartScore. A mastery map
across the whole graph, every session transcript in full, an append-only safety feed
that requires acknowledgement, and a control that pauses a topic — which the next
day's plan provably respects.
The promise a parent is buying is narrow and
checkable: she can't subtract negative numbers, here is the plan, here is the
proof it worked.
A mastery posterior. A running probability
the child knows this skill, updated after every answer, discounting lucky
guesses and careless slips.
s
A memory stability. How long this skill will
survive without review. Each success stretches the next gap; a lapse cuts it to
30% and brings it back soon.
d
A personal difficulty. This child's difficulty
with this skill, not the population's.
t
A due date, a rep count, a lapse count, and the
moment it was mastered.
packages/learner-model — pure functions, property-tested, 100% branch coverage
07 — evidence
What we will not claim.This section exists because the alternative is being caught.
A venture founded on an overstatement is fragile in
exactly one way: a competent person reads the literature, finds the overstatement, and
stops believing anything else you said.
The two-sigma story, told correctly
In 1984 Benjamin Bloom reported that one-to-one
tutoring under mastery conditions moved students about two standard deviations. That
number is quoted constantly in edtech. Almost every quotation drops the title of the
paper, which was “The 2 Sigma Problem” — the two sigma was the
target, and the economics of delivering it were the problem Bloom was posing
to the field.
What sat underneath it: two University of Chicago dissertations,
instructional units of roughly three weeks on narrow content, small samples,
experimenter-designed rather than standardized tests, tutoring that replaced
classroom instruction rather than supplementing it — and a tutored group held to a 90%
mastery bar against a comparison group held to 80%, which means some of the gap is a
difference in the bar rather than in the delivery.
Advertised vs. replicated
effect size
2.0σcollapses to0.33–0.42σ
Every replication
below. None of them reached it. We build on the replicated number, which is still
worth building on.
docs/TWO-SIGMA-EVIDENCE.md — binding on all marketing copy
What happened when people tried to replicate it
Replicated tutoring effect sizes from the published literature
Study
Scope
Effect
Cohen, Kulik & Kulik (1982)
65 studies
0.33 SD0.84 on locally-written tests · 0.27 on standardized
Nickow, Oreopoulos & Quan (2020)
96 randomized PreK–12 studies
0.37 SDnot one reached two sigma
Kraft, Schueler & Falken (2024)
265 randomized trials
0.42 SD0.55 under 100 students · 0.16 above 1,000
Kraft's own benchmark puts anything above
0.20 SD in the large band, so these are serious effects. The honest summary
is: large effect, contested magnitude, shrinking with scale and with the rigour of
the outcome measure. Two sigma is a ceiling observed once, under conditions nobody
has reproduced. We do not claim it, and you should distrust anyone who does.
The finding this product is actually built on
Bastani and colleagues (2024) randomized nearly a
thousand Turkish high-school maths students. Unrestricted GPT-4 improved their
performance while they were using it by 48%. Then the tool was taken away and
everyone sat an exam. That group scored 17% worse than students who never had access
at all. A tutor-configured version with safeguards came out statistically
indistinguishable from the control group.
Read that carefully, because it is the whole design brief. Performance and
learning moved in opposite directions, and the variable that separated them was
whether the system handed over answers. The safeguards prevented harm; they did not, in
that study, produce a gain. That is why the answer is physically absent from the model's
context during an active attempt — and why we are not going to tell you it makes your
child learn 48% faster.
So what are we entitled to say today?
Almost nothing about outcomes — and we would rather
write that sentence than have you find it out. There are no learners yet, no cohort, no
measured result. The held-out assessment banks are frozen and write-protected
before the first item is placed in them, and the preregistration directory is
append-only, because the temptation to quietly improve the instrument arrives precisely
when the results disappoint.
What we will claim is everything on this page above this section: what the
system does, what it verifies, what it withholds, and what it refuses to optimize.
Daily actives, session length, streaks and self-reported confidence are logged as health
signals and will never appear in a claim about learning. When there is a real number, it
will arrive with its comparison condition, its instrument, its delay, and its attrition
— or it will not arrive.
docs/TWO-SIGMA-EVIDENCE.md · docs/EFFICACY.md — binding on all marketing copy
08 — trailhead
Built for the year your child stops letting you help.Grades 6–9, pre-algebra through the start of algebra — the
handoff point where most parents run out of road.
$29/month
$290/year · second child −30% · 14-day trial
Adaptive Tutor is in build. The engine, the verifier, the safety
membrane and the parent dashboard run today; the shipped curriculum currently covers
60 pre-algebra skills joined by 67 prerequisite links, and we are
widening it before we take anyone's money.