Tracks concepts the student has learned and schedules recall questions using FSRS-inspired spaced repetition. Triggers on /review-deck, quiz me, or at session start when concepts are due. Maintains a JSON deck in reflections/spaced-review-deck.json. If you cannot explain it from memory, you do not know it.
If you can't explain a concept from memory, you don't know it. This skill ensures knowledge sticks.
/review-deck or "quiz me"reflections/spaced-review-deck.json
{
"concept": "async/await",
"category": "python",
"topic": 1,
"date_learned": "2026-04-08",
"last_reviewed": "2026-04-11",
"next_review": "2026-04-15",
"interval_days": 4,
"ease_factor": 2.5,
"repetitions": 2,
"quality_history": [4, 3]
}
After each review, the student rates recall quality 0-5:
interval *= ease; ease += 0.1interval *= easeinterval *= ease; ease -= 0.05interval = 1; ease -= 0.15interval = 1; ease -= 0.2interval = 1; ease = max(1.3, ease - 0.3)Initial intervals: Day 1 → 1 day. Day 2 → 3 days. Then algorithm takes over. Minimum ease factor: 1.3 (prevents intervals from collapsing permanently).
next_review <= todayREVIEW DECK -- {date}
Total concepts: X
Due today: X
Mastered (5+ streak at quality 4+): X
Struggling (ease < 1.8): X
Categories: python: X, rag: X, agents: X, ...
memory/user_domain.md for examples./assess results for comprehensive gap analysis.At the start of every session (after the system integrity gate but before topic work):
reflections/spaced-review-deck.json.next_review <= today), BLOCK progression.Why this gate exists: Without enforcement, students skip review. Without review, knowledge fades. Without fresh knowledge, later topics become impossible. The gate is painful on day one but saves weeks of confusion later.
Override: The student can say "skip review, I'll do it after the session" — but that must be recorded in PROGRESS.md so the pattern is visible. Repeated skipping is a red flag.