Skip to content

feat: Adaptive Learning System - Smart Mastered Problem Resurfacing #251

@smithrashell

Description

@smithrashell

Problem Statement

Problems at box level 6-8 (mastered) are reviewed based on simple time intervals (60-120 days). This is inefficient because:

  1. Easy reviews don't strengthen memory (no "desirable difficulty")
  2. Review time could be spent on new learning
  3. Mastered problems should resurface contextually, not just on schedule

Proposed Solution: Triggered Reviews

Instead of showing mastered problems on a fixed schedule, resurface them when contextually relevant:

  1. Failure Trigger: User fails Problem B → find related mastered Problem A → show A to reinforce foundation
  2. Chronic Struggle Trigger: Problems with 3+ unsuccessful attempts → find related mastered problems to reinforce concepts

Session Composition Priority

  1. Triggered reviews (max 2 mastered problems related to struggling problems)
  2. Learning reviews (box 1-5, still learning)
  3. New problems (primary learning)
  4. Passive mastered reviews (box 6-8, only if session not full)

Smart Selection Algorithm

  • Find "bridge" problems with high aggregate relationship to ALL struggling problems
  • Scoring: aggregateStrength * (1 + coverageBonus)
  • Relationship threshold: >= 2.0

Tag Mastery Decay Integration

  • If a tag's decay_score < 0.7, boost priority for triggered reviews with that tag

Implementation Tasks

  • Add getTriggeredReviews and getProblemsNeedingReinforcement to problem_relationships.js
  • Add getProblemsWithHighFailures query to problems.js
  • Integrate triggered reviews into problemServiceSession.js
  • Create unit tests for triggered review detection

Expected Outcomes

Metric Before After
Mastered reviews per session 1-2 (scheduled) 0-2 (contextual)
New problems per session 2-3 3-4
Review effectiveness Low (easy) High (reinforcing weakness)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions