---
name: law-student-flashcards
description: >
  生成或练习记忆卡片，用于法律概念的记忆——Leitner间隔重复桶机制，
  按科目存储为markdown文件，支持带自我评估的练习模式。当用户说
  "练习记忆卡片""从……生成卡片""考我卡片"或想记忆法律规则时使用。
argument-hint: "[科目] [--generate | --drill | --review | --stats | --session <n>]"
---

# /flashcards

1. 加载 `$LEGAL_AGENT_PROFILE_HOME/law-student/profile.md` → 当前课程、薄弱科目、大纲位置。
2. 应用以下框架。
3. 按标志位路由：
   - `--generate`：根据来源（大纲路径、笔记、教材摘录）按卡片编写规则生成卡片。写入 `$LEGAL_AGENT_PROFILE_HOME/law-student/flashcards/[科目]/cards.md`。
   - `--drill`（默认）：优先处理到期卡片 + 新卡片；展示问题，等待回答，展示答案，接受自我评估，更新学习桶 + 下次复习时间。
   - `--review`：按学习桶浏览牌组。
   - `--stats`：进度快照；标记卡住的卡片以转入口头追问。
   - `--session <n>`：集中N张卡片会话，优先上次错误 + 到期卡片；将结果追加到 `study-plan.yaml` → `session_history`。
4. 应用置信度纪律：对无来源的知识生成的每一张卡片标记 `[需验证]`。

---

## 真实事项检查

如果学生问的问题听起来像是关于真实情况——他们的合同纠纷、交通事故、家庭财产问题、朋友的刑事案件、真实的金额、真实的截止日期、真实的当事人姓名——停下来。

> "这听起来像是一个真实情况，而不是假设性问题。我无法给你法律意见，你也不能——你还不是执业律师。如果这是真实的，当事人需要一位真正的律师：法律援助中心、你学校的法律诊所、当地律师协会的律师推荐服务，或（如果有经济能力）私人律师。我很乐意帮你理解其中涉及的一般法律概念，但那是学习，不是法律意见。"

注意识别：真实姓名、真实地址、真实日期、具体金额、"我的老板/房东/父母/朋友"、"我收到了传票/通知书/处罚决定"、以天为单位的截止期限。以上任一即为触发信号。

---

## 目的

大纲用于综合理解；记忆卡片用于精准记忆。法考和大多数法学院考试都奖励快速规则回忆。本技能从你的大纲（或笔记、教材摘录）中生成卡片，以轻量间隔进行练习，并追踪哪些已经掌握、哪些仍然卡住。

**不是完整的SRS系统。** 简单的Leitner式学习桶。足够学习用，足够轻量不需要维护。如果你已经在用Anki之类的工具，继续用；这是给在对话中想快速练习时用的。

---

## 置信度纪律

与其它内容生成技能相同的规则：

- 如果从你提供的来源（大纲、笔记、教材摘录）生成卡片，卡片的问题和答案来自该来源。可信。
- 如果从模型知识生成卡片而没有来源，凡是规则不确定的卡片都标记 `[需验证：规则 —— 对照来源确认]`。在将其作为学习目标记入卡片之前，你应当核对。
- 如果对某个领域不熟悉，宁可少生成卡片也不编造。8张好卡片比20张包含5张错的好。

---

## 加载上下文

- `$LEGAL_AGENT_PROFILE_HOME/law-student/profile.md` → 当前课程、薄弱科目、已有大纲
- `$LEGAL_AGENT_PROFILE_HOME/law-student/flashcards/[科目]/cards.md`（如果存在，用于增量构建）
- 用户提供的来源（大纲路径、笔记、教材摘录）（如有）

---

## 模式

标志位：`--generate | --drill | --review | --stats | --session <n>`（默认：提示选择）

### `--session <n>` —— 集中N张卡片会话

适用于学生说"来5张刑法卡片"或运行 `/law-student:session 刑法 5 --记忆卡片` 时。

- 如果存在 `$LEGAL_AGENT_PROFILE_HOME/law-student/study-plan.yaml`，加载它并读取该科目的 `session_history`。
- 优先级：上次标记为错的卡片 > 到期卡片 > 新卡片。
- 逐张进行N张卡片，按 `--drill` 流程。
- 会话结束时，将结果追加到 `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`，写入 `$LEGAL_AGENT_PROFILE_HOME/law-student/session-history.yaml`。

### `--generate` —— 创建卡片

**输入：**
- 科目（课程名称或专题）
- 来源（大纲路径、笔记，或"使用我 `profile.md` 中已有的提纲"）
- 可选：目标卡片数量（默认每次10-20张）

**卡片结构：**

```markdown
### 卡片 [N]
**Q：** [问题 —— 一个概念，一张卡片]
**A：** [答案 —— 规则，一到两句话]
**法考频率：** [高频 / 中频 / 低频]
**来源：** [大纲章节、教材页码、课堂笔记日期]
**来源标签：** [元典 API] / [模型知识 —— 需验证]
**学习桶：** new
**上次复习：** —
**下次复习：** [今天日期]
**备注：** [可选 —— 区分、例外、易错点]
```

**卡片编写规则：**
1. **一张卡片一个概念。** "侵权责任构成要件"拆成4张卡片，不是1张。
2. **正面是一个问题，不是一个话题。** "过错责任原则"不好。正确的是："侵权责任的一般归责原则是什么？"
3. **背面是一条规则，不是一个段落。** 如果答案需要一段话，拆成多张卡片。
4. **标注法考频率**，帮助学生优先背诵高频考点。
5. **标注来源**，以便练习时复查。

**引用检查。** 当卡片从模型知识而非你粘贴的来源生成时，卡片背面的规则和引用的法条/案例均由AI模型生成，未经核验。在将卡片记入学习目标前，请对照大纲、教材或检索工具（元典 API）确认。一张练到滚瓜烂熟的错卡比没有卡更糟。

### `--drill` —— 练习会话

**优先级排序：**
1. `next_review <= 今天` 且 `bucket != mastered` 的卡片
2. 尚未尝试的新卡片
3. 如果没有到期卡片也没有新卡片：询问用户是否要复习已掌握的卡片（防止遗忘衰退）

**每张卡片的练习流程：**
1. 展示 Q。等待回答。
2. 用户回答（或输入"跳过"/"不知道"）
3. 展示 A。
4. 用户自我评估：`正确` / `部分正确` / `错误` / `不知道`
5. 按下表更新学习桶 + 下次复习：

| 自我评估 | 学习桶变化 | 下次复习 |
|---|---|---|
| 正确 | 升一级（new → learning → review → mastered） | new +1天，learning +3天，review +7天，mastered +21天 |
| 部分正确 | 不变 | +1天 |
| 错误 | 降一级（review → learning；learning → new；new 保持 new） | 今天 +4小时 |
| 不知道 | 降一级 | 今天 +4小时 |

### `--review` —— 浏览牌组

展示某个科目的所有卡片。按学习桶分组。适用于扫描牌组内容和手动调整卡片内容。

### `--stats` —— 进度快照

每个科目：卡片总数、学习桶分布、今日到期、本周复习数。高亮任何跌回 `new` 超过两次的卡片——这些是卡住的概念，值得通过 `/law-student:socratic-drill` 进行口头追问。

---

## 与其它技能的联动

- **outline-builder：** 构建或扩展大纲后，主动提出从新材料生成记忆卡片。
- **socratic-drill：** 如果某张卡片答错2次以上，将其转给 `/law-student:socratic-drill` 进行口头深入理解——对没有真正理解的概念，光靠记忆卡片是不够的。
- **bar-prep-questions：** 法考备考科目中记忆卡片成绩差的，在客观题练习中加大权重。

---

## 存储

```
flashcards/
└── [科目]/
    └── cards.md
```

每个科目一个文件。卡片为markdown格式。学习桶/复习元数据内联在每张卡片中。对超大型牌组（>500张）不是最优，但对典型的法学院牌组规模完全够用。

---

## 检索工具集成

本技能可配合元典 API 平台核验法律引用。

**MCP 连接器：**
- `yuandian-law`（元典法规检索 MCP）— https://open.chineselaw.com/mcp/law/stream
- `yuandian-case`（元典案例检索 MCP）— https://open.chineselaw.com/mcp/case/stream

API 密钥获取：https://apiplatform.legalmind.cn/api-square

**MCP 已集成 —— 工作流中的使用：**
- `--generate` 模式：生成卡片时，若规则来自模型知识（非用户提供的来源），优先通过 `yuandian-law` 检索对应法条原文核验规则准确性。MCP 可用时打 `[元典 API]`；不可用时打 `[模型知识 —— 需验证]`。
- `--drill` 模式：学生标记某张卡片"错误"或"不知道"时，通过 `yuandian-law` 检索正确法条原文，在展示答案时对比法条原文和卡片内容。

**来源标签约定：**
- `[元典 API]` —— 引用经元典检索工具核验。
- `[模型知识 —— 需验证]` —— 引用来自模型训练知识，建议对照教材或法考辅导资料交叉核对。

---

## 本技能不能做什么

- **替代 Anki 等专业工具。** 如果你已经有卡片学习习惯，继续用。这是给在对话中想快速练习不需要切换应用时用的。
- **为了凑数量编造卡片。** 如果从来源只能生成8张有把握的卡片，那就是8张。用大量 `[需验证]` 标记的猜测来凑数比小牌组更糟。
- **强制学习纪律。** 错过的复习日会累积；本技能只显示到期内容。由你决定是否练习。
- **替你学懂规则。** 卡片用于练习你已经学过的内容。如果某张卡片反复出错，问题在上游——用 `/law-student:socratic-drill` 或重新阅读来源材料。
