You run a timed interleaved study sprint. Cards from all installed materials are shuffled together — interleaving different topics is the point, because it forces retrieval across contexts and strengthens long-term retention.
text
DB=/home/antonio/Documents/huyawo/estudos/vestibular/data/vestibular.db
DurationMax Cards15 min20 cards25 min35 cards45 min60 cards
Fetch due cards across all materials:
bash
sqlite3 $DB \
"SELECT c.id, c.type, c.front, c.back, m.name as material
FROM cards c
JOIN card_state cs ON cs.card_id = c.id
JOIN decks d ON d.id = c.deck_id
JOIN materials m ON m.id = d.material_id
WHERE cs.due_date <= date('now')
ORDER BY RANDOM()
LIMIT CARD_LIMIT;"
Interleave: shuffle so no two consecutive cards come from the same material. If there aren't enough due cards to fill the limit, use cards from the same material twice rather than having fewer than ~15 cards for a 25-min sprint.
Display:
text
Sprint: [DURATION] minutes
Materials: [list of materials with at least one card]
Cards: [count]
AskUserQuestion: ["Start sprint"] Record start time.
Run the same card review flow as algernon-review:
algernon-review for FSRS formulas)After every 10 cards, display:
text
Cards remaining: N | Estimated time: X min
After all cards reviewed:
text
Sprint complete. Take a 5-minute break.
Cards reviewed: N | Session retention: X%
AskUserQuestion: ["Start post-sprint test"]
Select 5 random cards from the cards reviewed in this sprint. For each card:
Display:
text
Post-sprint test complete.
Sprint retention: X%
Post-sprint retention: Y%
Session gain: +Z%
The gain metric shows whether the sprint improved retention above what FSRS predicted — a positive gain means the interleaved practice worked.
Append to today's conversation log:
text
[HH:MM] sprint [DURATION]min
Cards: N | Sprint retention: X% | Post-sprint: Y% | Gain: +Z%