--- 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 `(不带 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卡片小节 用户说"来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` 或回去重新看材料。