flashcards · git:20260901.401e1ec · 2026-09-01 · sha256 1ec81738a4e914f2
flashcards git:20260901.401e1ecB
Immutable. This exact content is served forever at /api/v1/blob/1ec81738a4e914f2.
---
name: flashcards
license: Apache-2.0 (adapted from anthropics/claude-for-legal, law-student/skills/flashcards; complete terms in LICENSE.txt)
description:
生成和复习记忆卡片——Leitner 分桶间隔重复、按学科存储、自评式复习。
Use when 用户说"帮我做闪卡""抽认卡""考我一下这些卡片""我要背这些规则/单词/
概念"等需要记忆巩固的场景。不是完整的 SRS 系统——如果用户已经在用 Anki 之类
的工具,建议他们继续用;这是"在对话里就想快速过一遍"的轻量方案。
metadata:
origin: 卡片结构、写卡规则、Leitner 分桶间隔表、生成/复习/统计模式,
改编自 anthropics/claude-for-legal 的 law-student/skills/flashcards
(Apache-2.0);已移除该项目的法学院场景专属内容("这是真实法律问题请找律师"
检查、Westlaw/CourtListener 引用核验、和 socratic-drill/bar-prep-questions
的联动),改为通用记忆卡片方法论
---
# Skill: flashcards
大纲/笔记是用来综合理解的,记忆卡片是用来强记的。这个技能从用户提供的材料
(或在用户明确要求时,从模型知识)生成卡片,用轻量间隔重复复习,并追踪哪些
概念还没记牢。
**不是完整的 SRS 系统。** 只是简单的 Leitner 分桶。够用、不重——如果用户已经
习惯用 Anki 之类的专门工具,建议继续用那个;这个技能是给在对话里想快速过一遍
的场景用的。
## 置信度纪律
- 从用户提供的材料(笔记、教材节选、课件)生成的卡片:内容来自材料本身,
可信。
- 从模型知识(用户没给材料)生成的卡片:每张卡片如果陈述的规则不是模型有
把握的,标注 `[待核实]`。生成前先说清楚"这些卡是从我的知识生成的,不是
从你的材料,请自行核对"。
- 如果某个领域模型把握不大,宁可少生成几张有把握的卡,也不要为了凑数瞎编。
8张靠谱的卡比20张里有5张错的要好。
## 存储
```
~/.octo/learning-data/flashcards/[学科]/cards.md
```
每个学科一个文件,跨会话持久(不受技能本身版本更新影响)。
## 卡片结构
```markdown
### 卡片 [N]
**问:** [问题——一个概念一张卡]
**答:** [答案——规则/定义,一到两句话]
**来源:** [材料出处:笔记/教材页码/课堂日期]
**分桶:** new
**上次复习:** —
**下次复习:** [今天日期]
**备注:** [可选——易混淆点、例外情况、常见陷阱]
```
## 写卡规则
1. **一个概念一张卡。** "光合作用的三个阶段"应该拆成3张卡,不是1张。
2. **正面是问题,不是主题。** "光合作用"不好;"光合作用的三个阶段分别是
什么"好。
3. **背面是规则/定义,不是一段话。** 如果答案需要一整段才能说清楚,拆成
多张卡。
4. **标注来源**,方便复习时回去核对。
## 模式
Flag: `--generate | --drill | --review | --stats | --session <n>`(不带 flag 时先问用户要哪种)
### `--generate`——生成卡片
**输入:** 学科/主题、来源材料(笔记路径、教材节选,或"就用我已有的大纲")、
可选的目标卡片数量(默认每次10-20张)。
按上面的卡片结构和写卡规则生成,写入 `~/.octo/learning-data/flashcards/
[学科]/cards.md`(已有文件则增量追加,不要覆盖)。
**如果是从模型知识生成的**:每张卡的规则/答案是模型生成的,未经核实。用户
背下来之前,建议对照教材、笔记或权威来源核实一遍——背了一张错卡比没有这张
卡更糟。
### `--drill`(默认)——复习
**优先级:**
1. `下次复习 <= 今天` 且分桶不是 mastered 的卡
2. 还没复习过的新卡
3. 如果没有到期卡也没有新卡:问用户要不要复习已经 mastered 的卡(防遗忘)
**复习流程(逐张):**
1. 显示问题,等用户回答
2. 用户回答(或输入"跳过"/"不会")
3. 显示答案
4. 用户自评:`对` / `部分对` / `错` / `不会`
5. 按下表更新分桶和下次复习时间:
| 自评 | 分桶变化 | 下次复习 |
|---|---|---|
| 对 | 升一档(new→learning→review→mastered) | +1天(new) / +3天(learning) / +7天(review) / +21天(mastered) |
| 部分对 | 不变 | +1天 |
| 错 | 降一档(review→learning;learning→new;new不变) | 今天+4小时 |
| 不会 | 降一档 | 今天+4小时 |
### `--review`——浏览卡组
按分桶分组展示某学科的所有卡片。用于快速扫一眼卡组内容,或手动调整卡片。
### `--stats`——进度快照
按学科统计:卡片总数、各分桶分布、今天到期数、本周已复习数。标出反复降到
`new` 两次以上的卡——这些是真正卡住的概念,值得用 `weak-point-drill` 或
向老师/教材再确认一遍,光靠卡片记不住的东西说明理解上有缺口。
### `--session <n>`——聚焦N卡片小节
用户说"来5张合同法的卡"或类似需求时用这个模式。
- 读取 `~/.octo/learning-data/study-plan.yaml`(如果存在)里该学科的
`session_history`。
- 优先级:之前答错的卡 > 到期卡 > 新卡。
- 按 `--drill` 流程逐张跑完N张。
- 小节结束后,把结果追加到 `study-plan.yaml` 的 `session_history`:
```yaml
session_history:
- date: 2026-05-08
subject: 合同法
type: flashcards
n_cards: 5
right: 3
partial: 1
wrong: 1
stuck_topics: [不可抗力条款]
```
如果 `study-plan.yaml` 不存在,写到 `~/.octo/learning-data/session-history.yaml`。
## 和其他技能的配合
- **outline-builder:** 建好或扩充大纲之后,主动提议从新内容生成卡片。
- **weak-point-drill:** 某张卡连续错2次以上,说明光靠卡片记不住,路由给
`weak-point-drill` 做更深入的针对性练习或建议回去重新理解这个概念。
- **study-plan:** `--session` 的结果写入学习计划,供计划自适应调整。
## 这个技能不做的事
- **替代专门的 SRS 工具。** 如果用户已经有 Anki 之类的习惯,建议继续用;
这个技能是给不想切换工具、想在对话里快速过一遍的场景用的。
- **为了凑数量编卡片。** 材料只够生成8张有把握的卡,就给8张。硬凑一堆
`[待核实]` 的猜测卡比小卡组更糟。
- **强制学习纪律。** 漏复习的天数会累积,这个技能只负责告诉用户今天该复习
什么,要不要复习是用户自己的事。
- **教会用户规则本身。** 卡片是用来复习已经学过的内容的。如果一张卡反复
答错,问题出在更上游——用 `weak-point-drill` 或回去重新看材料。