Part of EPIC #388.
Part of the Learning Science epic. Structural bet inspired by Math Academy's shipped mechanics (mastery gates over an explicit prerequisite graph) — app-precedent evidence tier, see docs/LEARNING_SCIENCE_RESEARCH_2026.md.
Why
Mastery-based progression (don't advance until prerequisites are demonstrated) is the backbone of the strongest adaptive systems (Math Academy, MATHia). We already have a boolean require_sequential_completion — this generalizes it to mastery over an explicit prerequisite structure, and unlocks smarter review (practice on advanced topics implicitly credits prerequisites).
Plan (incremental — don't boil the ocean)
- Schema:
lesson_prerequisites (lesson_id → prerequisite_lesson_id, tenant_id, RLS) — DAG per course, validated against cycles. Migration + teacher UI (simple "requires" multi-select in lesson editor).
- Mastery definition: reuse exam-readiness per-topic mastery (exam + practice + completion signals) with a per-course threshold (default 70) instead of inventing a new score.
- Gating: student lesson list shows locked lessons with the unmet prerequisite named ("Master X first — practice it now" → deep-link to practice).
require_sequential_completion becomes the degenerate linear case.
- Implicit credit (v2, optional): correct attempts on a lesson's items grant partial review credit to its prerequisites (Math Academy FIRe-lite) — reduces flashcard/review load.
- MCP: expose prerequisites in
lms_get_course_content / study-plan generation so the tutor sequences correctly.
Acceptance criteria
Out of scope: cross-course graphs; adaptive diagnostics ("knowledge frontier" placement test — separate future issue). Label: db-migration.
Part of EPIC #388.
Part of the Learning Science epic. Structural bet inspired by Math Academy's shipped mechanics (mastery gates over an explicit prerequisite graph) — app-precedent evidence tier, see
docs/LEARNING_SCIENCE_RESEARCH_2026.md.Why
Mastery-based progression (don't advance until prerequisites are demonstrated) is the backbone of the strongest adaptive systems (Math Academy, MATHia). We already have a boolean
require_sequential_completion— this generalizes it to mastery over an explicit prerequisite structure, and unlocks smarter review (practice on advanced topics implicitly credits prerequisites).Plan (incremental — don't boil the ocean)
lesson_prerequisites(lesson_id → prerequisite_lesson_id, tenant_id, RLS) — DAG per course, validated against cycles. Migration + teacher UI (simple "requires" multi-select in lesson editor).require_sequential_completionbecomes the degenerate linear case.lms_get_course_content/ study-plan generation so the tutor sequences correctly.Acceptance criteria
Out of scope: cross-course graphs; adaptive diagnostics ("knowledge frontier" placement test — separate future issue). Label: db-migration.