Skip to content
Maestro.
MaestroMaestro Overview — contents

The Build

Architecture & the Trust Layer

The firm architectural principle behind Maestro: keep the part that calls the AI models separate from the part that holds the learning logic. The trust layer is the real asset — and it is the-code's IP.

The 30-second version

Keep the model layer (swappable as models change) separate from the trust layer — the learner model, the misconception catalogue, and the next-step rules — which stands on its own with its own storage and audit trail, tied to no single model vendor. The trust layer is the-code's existing IP; the intent is for the dev team to integrate against it, though they may assess whether to rewrite parts. The mastery engine lives in the platform; the mastery bar is set by the SME per node. There are no runtime dials.

Model layer vs learning logic

The briefing is firm on one thing: keep the part that calls the AI models separate from the part that holds the learning logic. The model layer should be swappable as models change. The trust layer — the learner model, the catalogue of common misconceptions, and the rules for what to show next — should stand on its own, with its own storage and audit trail, and not be tied to any one model vendor. The-code sees the learner model, not the content, as the real asset, and expects the misconception catalogue to grow from real student data over time. The Companion should pick from teaching approaches people have written, not invent teaching on the fly. The existing MVP already keeps models and prompts configurable, which fits this.

The trust layer as IP

The trust layer — the learner model, misconception catalogue, and next-step (item-selection) rules — is the-code's existing IP. The intent is for the dev team to integrate against it rather than rebuild it. That said, this is something for the team to assess: they'll get access to review the existing trust-layer code and can determine whether they're comfortable integrating as-is, or would recommend re-writing part or all of it as part of the build. Both paths are open; the decision is driven by the team's technical judgment once they've seen the code.

For engineers — the trust-layer components you consume

The runtime stands up consumers for: the learner-model APIs, the misconception-library reference, the routing engine, the Diagnostic Matcher invocation, the Behavioural Signal Layer, and the milestone readiness-gate evaluator. The learner model and evidence-record shapes are the integration contract. The learner model is owned by deterministic rules, not the AI — the AI proposes a diagnosis; the rules own the belief update, the flag lifecycle, and status derivation.

Who owns the mastery logic

There are two layers, configurable in different ways:

LayerWho owns it & how it's set
The mastery engineLives inside the platform. The mechanics — how mastery is decided, how evidence is read, how the belief updates, how misconceptions are handled, how the confirming probe works — are built into Maestro and behave the same across every course. This is what makes decisions consistent, reproducible, and auditable.
The mastery barSet by the SME per course, per node. What counts as "mastered" for a specific concept — how deep understanding must be, which misconceptions matter, which block which assessments, what unlocks a milestone — is authored during course design in Studio. This is where academic judgment lives.

In short: the platform owns the mechanics, the SME owns the standard.

No runtime dials

No admin setting changes mastery decisions mid-course

If mastery needs to be adjusted, it happens through a new authored course version in Studio, not through a runtime knob. This protects reproducibility: every learner in a cohort is evaluated by the same rules, and the same evidence always produces the same mastery decision. A change to how mastery works is a versioned change to the course, delivered through the Published Course Package — never a live dial.

The same discipline extends to the runtime governance metadata: prompt-template and judge versions are pinned to what the course was authored against, so the Companion and the diagnostic layer behave deterministically against that version rather than whatever is newest. Determinism is a first-class requirement, not a nice-to-have.