Spaced Repetition Teaching
by @tylerbittner
Adaptive spaced repetition engine using the FSRS-6 algorithm (Free Spaced Repetition Scheduler, Ye et al. 2024). Manages flashcard reviews with scientificall...
clawhub install spaced-repetition-teachingπ About This Skill
name: spaced-repetition-teaching description: > Adaptive spaced repetition engine using the FSRS-6 algorithm (Free Spaced Repetition Scheduler, Ye et al. 2024). Manages flashcard reviews with scientifically optimal intervals based on memory research. Triggers on: study sessions, flashcard reviews, "what's due today", "review cards", spaced repetition scheduling, and study session management. Developed through the Formation Fellowship technical interview prep program.
Spaced Repetition Skill (FSRS-6)
Adaptive flashcard review system using the FSRS-6 algorithm β the state of the art in spaced repetition scheduling, backed by 130+ years of memory research.
Algorithm: FSRS (Free Spaced Repetition Scheduler) by Ye et al., 2024. Open-source reference: open-spaced-repetition/py-fsrs (MIT).
Origin: Developed and refined through the Formation Fellowship program. The author is not a representative of Formation.
Card File
Cards live in a user-specified markdown file. If not specified, ask once.
Card Format
Each card is a markdown section (### Title) with metadata:
### Binary Search on Answer Space
Priority: P1
Prompt: "Given items of various sizes and N recipients, find the largest
portion so everyone gets at least one. Approach?"
Answer: Binary search on the answer space [1, max(items)]. Feasibility
predicate: sum(item // size for item in items) >= recipients. Return hi.
Interrogate: When would two pointers beat this? What makes the predicate
monotonic?
When to reach for it: "Maximize/minimize a value subject to a feasibility
check" β binary search on the answer.
FSRS: d=5.50 s=8.20 reps=3 lapses=0 last=2026-03-11 next=2026-03-19
History: [2026-03-04 G=3(Good), 2026-03-09 G=1(Again), 2026-03-11 G=3(Good)]
FSRS fields:
d = difficulty [1β10] (lower is easier)s = stability in days (β days until 90% recall probability)reps = total reviewslapses = times forgotten (rated Again)last / next = last review date / scheduled next reviewRating scale:
Review Methodology
Each review should cycle through multiple modes β not just recall:
1. Recall β Explain the approach without looking (mental rehearsal) 2. Interrogate β Why this approach? Tradeoffs? What changes if requirements change? 3. Rewrite β Code/apply it cold, timed. Notice hesitations. 4. Retain β Revisit 48+ hours later. Can't reproduce cleanly? β Rate Again (1).
β Skipping post-recall phases = 80% effort for 50% results.
Priority guide:
Scripts
All scripts in scripts/ β pure Python 3.6+, no external dependencies.
Check what's due
python scripts/due_cards.py ~/my-cards.md
python scripts/due_cards.py ~/my-cards.md --all # include upcoming
python scripts/due_cards.py ~/my-cards.md --date 2026-03-20 # plan ahead
Submit a review
python scripts/review.py ~/my-cards.md "Binary Search" 3
Ratings: 1="Didn't know it" 2="Struggled" 3="Got it" 4="Nailed it"
Run algorithm self-test
python scripts/fsrs.py
Handling User Requests
"What's due today?" / "Show my queue"
Rundue_cards.py. Present P1 cards prominently."I reviewed [card] β rated [X]"
Runreview.py. Show updated stability and next interval.
If they forgot (Again), normalize it β it's data, not failure."Add a new card for [topic]"
Insert a new section in their card file. Do NOT add the FSRS line β it gets created automatically on first review.Template:
### [Title]
Priority: [P1/P2/P3]
Prompt: "[Question]"
Answer: [Key insight + approach]
Interrogate: [Tradeoffs? What if requirements change?]
When to reach for it: [Pattern/signal that triggers this approach]
Added: [date]
History: []
"How is my retention?" / "Stats"
Parse card file and compute: strong cards (s>30d), struggling cards (lapses>0), 7-day review load forecast.Interpreting FSRS Numbers (Advanced)
Most users don't need this β the system handles scheduling automatically. For the curious:
Algorithm Reference
See references/fsrs-algorithm.md for full FSRS math, formulas, and default
weights. Algorithm paper: Ye et al., "A Stochastic Shortest Path Algorithm for
Optimizing Spaced Repetition Scheduling" (2024).