§ A workshop for education · Vienna · MMXXVI

The AI tutor that
keeps students
thinking.

Qriouso is a mastery-learning platform for secondary school: a Socratic tutor that never gives the answer away, a teacher platform that sees every class at concept level, and an evaluation harness that decides which models are fit to teach.

Secondary · grades 5–13 · math, languages, sciences
Live example · fractions Tutor live
Student
Generic AI
Spoiler blocked
Qriouso
Step back · metacognitive
Fig. 00
Austrian curriculum, all nine subjects · Socratic method · Knowledge-graph aware · Three-layer spoiler guard · Mastery gates at 70% · FSRS spaced repetition · GDPR-compliant · Funded by netidee · Adaptive per student · Bloom-aligned progression ·
§ 01 — The loop

Mastery is a loop, not a feed.

Five stations, one rule: no station is skipped, and the gate at prove only opens at 70%. Whoever stumbles there is routed back to learn — with the tutor, not the answer key.

remediate 01 diagnose 02 learn 03 practice 04 prove pass ≥ 70% 05 review

The mastery loop runs through five stations. Diagnose: placement mini-quizzes on the prerequisite graph. Learn: concepts with worked examples from the curriculum graph. Practice: Socratic dialogue, guided but never spoiled. Prove: a mastery gate that requires at least 70 percent, taken with the tutor withdrawn. Review: FSRS spaced repetition at question level. A dashed remediation edge leads from prove back to learn.

01 · diagnose placement mini-quizzes on the prerequisite graph
02 · learn concepts with worked examples from the curriculum graph
03 · practice Socratic dialogue — guided, never spoiled
04 · prove mastery gate — pass ≥ 70%, tutor withdrawn
05 · review FSRS spaced repetition, question-level
Fig. 01 — nothing unlocks until it’s earned.
§ 02 — Learn

Two ways to turn a topic into a lesson.

Either via the Austrian AHS curriculum — or built live from an input.

Path A · Curriculum

From the curriculum.

Pre-built subcompetencies and prerequisite chains from the official Austrian curriculum — generated deterministically, teacher-curated, versioned. Every subcompetency knows its preconditions — down to the number set.

Example: Linear functions (grade 8) — subcompetencies: y = k·x + d, graph ↔ equation, k/d in real-world contexts.

Master every concept → the subcompetency lands → one node in the curriculum graph is reached.

service · CurriculumPrerequisiteService
Path B · Decomposition

From any input.

Brand-new topic? The decomposition engine builds the knowledge graph live from an LLM — in seconds. Each node carries hard and soft prerequisites, Bloom level, a hint ladder, a gateway question and common misconceptions.

Prerequisites are prior concepts the student needs before the topic. Generated sub-concepts are candidate exercise and hint nodes created from the input.
From «Pythagoras» Qriouso builds more than a title: it creates a small lesson map with required prior knowledge, practice sub-ideas, and likely misconceptions. The tutor needs that map to ask the right next question instead of giving away the formula or answer.
engine · Live topic decomposition · 5 learning nodes

Captured product data from the Austrian curriculum, shown here in a curated English translation. The underlying curriculum source remains German.

Either way — the tutor helps in four clear steps: orient first, find the key term, make the next concrete move, then compare with a model. Never a spoiler.

> 8
subjects
> 1k
subcompetencies
> 20k
concepts
> 40k
prerequisite edges
> 100k
misconception patterns

generated by deterministic spiral-chain passes over the official curriculum — teacher-curated, versioned.

§ 03 — Practice

How Qriouso helps without giving away the answer.

One full Socratic exchange from grade-8 physics. The prerequisite knowledge chain is checked first; Qriouso gives only the next useful hint and keeps the answer with the learner.

From a first thinking prompt to concrete calculation support — only moving on when the previous step lands.

Click: what if the student stumbles?

Authentic example from the Austrian AHS curriculum, Socratic schema verbatim from hint_escalation.py.

§ · Your turn

Pick a real subcompetency from the Austrian AHS curriculum.

Prerequisite chains and concept chips are captured product data — Austrian curriculum, German-language content, multilingual by design.

Type a fresh topic — the decomposer builds the graph live through structured LLM calls.

topic> Mathematics · grade 9
1 · Analyze topic
2 · Choose lesson depth
Short · 3 nodes · 15 min Standard · 6–12 nodes · 35 min Deep · 9+ nodes · 75 min
3 · LLM call: decompose topic Generating nodes and prerequisites through an LLM call …
4 · Build learning graph
Bloom taxonomy · live node contract
Every node defines what the learner must do.

Bloom changes the question verb, the evidence Qriouso looks for, and how much scaffolding the tutor provides.

  1. 01RememberName
  2. 02UnderstandExplain
  3. 03ApplyUse
  4. 04AnalyzeConnect
  5. 05EvaluateJustify
  6. 06CreateDesign

Choose a node — watch Bloom change the learning move.

Click a node for details.

Captured Austrian curriculum data, presented here in English. The underlying curriculum source remains German.

socratic explainer coach buddy examiner mentor strict practical

Eight tones. One rule: a persona can change how it speaks, never what it may reveal.

word bank · mid-dialogue

Look at the denominator — what does it count, and what stays the same when you expand the fraction?

every saved word becomes a spaced-repetition card.

Vocabulary is part of the loop, not a side quest. A student can save any term the tutor uses, straight from the dialogue — and it enters the same FSRS review queue as every quiz question, scheduled until it sticks.

qriouso.school/learn
Student chat where a stuck question about Newton's third law gets a short guided counter-question and a green banner explaining that a small hint is given instead of the solution.
Fig. 02 — the guided tutor in session, captured live: the student asks about Newton’s third law, the reply is a short question back — the banner shows the non-spoiling pipeline rewrote the draft.
qriouso.school/learn
Word bank panel with three saved physics terms, an input to add a term yourself, and a note that each saved term becomes a spaced-repetition review card.
Fig. 03 — the word bank, captured live: three saved terms, each already seeding a card in the review queue.

the full state machine behind this → /architecture

§ 04 — Prove & review

Mastery is earned without the tutor in the room.

Dialogue teaches; assessment decides. At the gate, the AI steps out — and everything that was proven flows into one spaced-repetition queue.

Mastery gates

Guided mini-quizzes gate each concept at ≥ 70%. The tutor is absent from assessment — students prove understanding without AI help, and nothing downstream unlocks until they do.

Two quiz engines

A teacher builder with 12 question types — including image hotspot and label-image — LaTeX rendering and item-writing-flaw detection. And a student side that self-generates quizzes from any topic.

One review queue

FSRS scheduling at question level, with retention targets per subject (mathematics 0.92). The optimizer re-fits scheduler parameters from real review history — the queue learns how each student forgets.

Words become cards

The word bank feeds the same queue: every term a student saves mid-dialogue becomes a spaced-repetition card, scheduled alongside quiz questions — one memory system, not two.

§ 05 — The non-spoiling engine

Three checks. Four support steps. One fail-closed loop.

Non-spoiling at Qriouso isn’t a wish in a system prompt — it is an enforceable pipeline. Every generated response passes through three independent checks before it ever reaches a student.

non_spoiling.pipeline Fig. 04 — Tutor pipeline
L1 Locked vocabulary ~10 ms
Terms from concepts that are not unlocked yet: e.g. “discriminant” before the student has the prerequisite chain for it.
Why: introducing new technical words too early creates confusion and often reveals the solution path.
L2 Semantic similarity ~50 ms
Qriouso embeds the generated response and compares it with protected solution and follow-up content for the current node.
That catches paraphrases, not only exact words.
L3 LLM judge ~500 ms
Strict pedagogical safety judge.
verdict: { score: 0.0–1.0, label: clean | borderline | leak }.
On error → fail-open, L1+L2 decide.
Combined
score = max(ratio, sim, judge)
If risky
regenerate · up to ×3
Fail-closed
deterministic safe fallback — never a spoiler.
support_steps.sequence Fig. 05 — Tutor cycle
  1. metacognitive “Where is the main idea in your answer? State it in one sentence.”
  2. strategic “Which term in the question matters most — and why?”
  3. conceptual “Plan one concrete step. What comes next?”
  4. procedural “Compare your result to the standard principle: what’s missing, what needs to shift?”
pipeline live · check a response
student> How many solutions does the equation 2x² + 5x + 3 = 0 have?
candidate response (LLM raw)

Use the discriminant b² − 4·a·c. Here: 5² − 4·2·3 = 1 > 0, so there are two solutions.

L1 locked vocabulary
L2 semantic similarity
L3 LLM judge
regenerate · attempt 2 of 3 · socratic-forced
tutor → student

Which quantity tells you WHETHER there are solutions at all — and what do you compute it from?

In practice: a response that wanted to say “discriminant” is rejected three times before it’s ever sent. A question goes out instead. If nothing works, a deterministic safe fallback fires — never a spoiler. That’s the difference between “we try” and “we enforce.”

Six reveal policies, one fail-safe default: LOCKED. Full anatomy at /architecture →

§ 06 — For teachers

The whole class, at concept level.

A student × concept heatmap instead of a grade list, and an assignment wizard that routes struggling students back to prerequisites.

qriouso.school/teacher/analytics
Class analytics for a demo physics class: a mastery heatmap of nine pseudonymous student rows by nine concepts, with red-to-green cells and a low-to-high legend.
Fig. 06 — the class heatmap, captured live: nine pseudonymous students × nine concepts, mastery per cell.
qriouso.school/teacher/assignments/create
Assign-learning-path wizard on step two of four, with 70 concepts selected in prerequisite order and a note that concepts build on each other.
Fig. 07 — the assignment wizard, captured live: pick the goal, the concepts arrive in prerequisite order.

Names are decrypted only in the teacher’s browser.

the full teacher platform → /teacher

§ 07 — Qualified to teach

We don’t hope models can teach. We test them.

Before a model may tutor, it faces an evaluation harness — fail-closed: any critical safety or non-spoiling gate failure means not qualified, and missing evidence never passes.

qualification decision NOT_QUALIFIED
modelmodel-under-test
failednonspoiling_dialogue — leak under pressure
policyfail-closed

The designed gate: a model that reveals answers when a student pushes back does not get to teach — whatever its benchmark scores say. Task suites probe knowledge, pedagogy, and pressure behaviour; verdicts carry scope, confidence intervals, and reviewer sign-offs.

the evaluation harness → /evals

§ — Conviction
An AI that hands over answers teaches students to copy answers. We’re building one that teaches them to ask questions.
Qriouso · workshop manifesto
§ 08 — Classroom pilot

Pilot with your class — next term.

We’re looking for teachers to co-design a pilot in the winter term. Bring one class, one subject, and your hardest teaching question.

Main funder

Qriouso is funded by netidee — the internet funding programme of the Internet Privatstiftung Austria, supporting open internet projects made in Austria.