algernon-sprint
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.
Constants
CODEBLOCK0
Card Limits by Duration
| Duration | Max Cards |
|---|
| 15 min | 20 cards |
| 25 min |
35 cards |
| 45 min | 60 cards |
Step 1 — Plan the Sprint
Fetch due cards across all materials:
CODEBLOCK1
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.
Step 2 — Sprint Start
Display:
CODEBLOCK2
AskUserQuestion: ["Start sprint"]
Record start time.
Step 3 — Sprint Loop
Run the same card review flow as algernon-review:
- - Flashcards: show front → reveal back → Again/Good
- Dissertative/Argumentative: show front → free-text answer → AI evaluate → Again/Good
- After each grade, run FSRS scheduling (see
algernon-review for FSRS formulas)
After every 10 cards, display:
CODEBLOCK3
Step 4 — Post-Sprint Break
After all cards reviewed:
CODEBLOCK4
AskUserQuestion: ["Start post-sprint test"]
Step 5 — Post-Sprint Retrieval Test
Select 5 random cards from the cards reviewed in this sprint.
For each card:
- 1. Show only the front.
- AskUserQuestion: ["Show answer"] — then show the back.
- AskUserQuestion options: ["Again", "Good"]
- Run FSRS update with the new grade.
Display:
CODEBLOCK5
The gain metric shows whether the sprint improved retention above what FSRS
predicted — a positive gain means the interleaved practice worked.
Step 6 — Save Memory
Append to today's conversation log:
CODEBLOCK6
algernon-sprint
你运行一个限时交错学习冲刺。所有已安装材料中的卡片被混合在一起——交错不同主题是关键,因为它强制跨情境检索并增强长期记忆。
常量
DB=/home/antonio/Documents/huyawo/estudos/vestibular/data/vestibular.db
按时长限制卡片数量
35张 |
| 45分钟 | 60张 |
步骤1 — 规划冲刺
从所有材料中提取到期卡片:
bash
sqlite3 $DB \
SELECT c.id, c.type, c.front, c.back, m.name as material
FROM cards c
JOIN cardstate cs ON cs.cardid = 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;
交错:打乱顺序,确保没有两张连续卡片来自同一材料。如果到期卡片不足以填满限制数量,则重复使用同一材料的卡片,而不是让25分钟冲刺的卡片少于约15张。
步骤2 — 冲刺开始
显示:
冲刺:[时长]分钟
材料:[至少包含一张卡片的材料列表]
卡片数:[数量]
AskUserQuestion:[开始冲刺]
记录开始时间。
步骤3 — 冲刺循环
运行与algernon-review相同的卡片复习流程:
- - 闪卡:显示正面 → 显示背面 → 再来一次/良好
- 论述/议论文:显示正面 → 自由文本回答 → AI评估 → 再来一次/良好
- 每次评分后,运行FSRS调度(FSRS公式见algernon-review)
每10张卡片后显示:
剩余卡片数:N | 预计时间:X分钟
步骤4 — 冲刺后休息
所有卡片复习完成后:
冲刺完成。休息5分钟。
已复习卡片数:N | 本次保留率:X%
AskUserQuestion:[开始冲刺后测试]
步骤5 — 冲刺后检索测试
从本次冲刺复习的卡片中随机选择5张。
对每张卡片:
- 1. 仅显示正面。
- AskUserQuestion:[显示答案] — 然后显示背面。
- AskUserQuestion选项:[再来一次,良好]
- 使用新评分运行FSRS更新。
显示:
冲刺后测试完成。
冲刺保留率: X%
冲刺后保留率: Y%
本次增益: +Z%
增益指标显示冲刺是否提高了FSRS预测之外的保留率——正增益意味着交错练习有效。
步骤6 — 保存记录
追加到今日对话日志:
[HH:MM] 冲刺 [时长]分钟
卡片数:N | 冲刺保留率:X% | 冲刺后保留率:Y% | 增益:+Z%