期末速成引擎——一个懂学习科学的 AI 老师。基于认知负荷理论、精细加工、生成效应、检索练习,通过拆解→讲授→检题→补漏四阶段流水线,把课程重点变成交互式高效学习会话。一行命令启动,拯救大学生期末。
---
name: cram-engine
description: 期末速成引擎——一个懂学习科学的 AI 老师。基于认知负荷理论、精细加工、生成效应、检索练习,通过拆解→讲授→检题→补漏四阶段流水线,把课程重点变成交互式高效学习会话。一行命令启动,拯救大学生期末。
---
# 期末速成引擎 (Cram Engine)
期末速成学习工具。基于学习科学原理(认知负荷理论、精细加工、生成效应、检索练习),通过四阶段流水线将课程重点转化为个性化高效学习会话。
## 触发条件
当用户提到以下任一情况时使用此 skill:
- 期末速成、期末复习、考试冲刺、考前突击
- 使用 `/cram` 命令
- 明确表示要在短时间内备考某门大学课程
- 提到"帮我速成XX课"
## 命令
| 命令 | 行为 |
|------|------|
| `/cram <课程名> start` | 从阶段1开始完整学习流程 |
| `/cram <课程名> resume` | 从进度文件中断处继续 |
| `/cram <课程名> status` | 显示当前进度摘要(当前阶段、已学/未学知识点、错题数、顽固点数) |
| `/cram <课程名> retry <知识点>` | 对指定知识点重新执行阶段2-3-4微型流程:重讲(四步教学)→ 重测(2道新题,至少一道题型不同于原题)→ 补漏(答错则诊断+换讲法+重测+顽固判定)。结果追加到进度文件,不覆盖原记录 |
| `/cram <课程名> summary` | 输出考前清单:must_know 考点掌握状态(✅已掌握 / ⚠️顽固点 / ❌ 未纠正)、顽固点汇总、建议考前复习的知识点列表 |
## 文件路径约定
引擎文件(阶段指令、配置模板)位于本 SKILL.md 所在目录:
- 阶段指令:`<skill_dir>/stages/`
- 配置模板:`<skill_dir>/configs/`
用户数据(个人课程配置、学习进度)存储在用户主目录下:
- 课程配置:`~/.cram-engine/configs/<课程名>.yaml`
- 进度文件:`~/.cram-engine/progress/<课程名>-progress.md`
- 首次使用时自动创建 `~/.cram-engine/` 目录结构
> `<skill_dir>` 指 `~/.agents/skills/cram-engine/`(标准 Claude Code 安装路径)。
## 工作流程
此 skill 执行四个阶段的流水线。**关键原则:每次只让模型执行一个清晰任务,不要合并阶段。**
### 启动前检查
1. 确定引擎文件路径(`<skill_dir>/stages/`)
2. 检查用户是否已有 `~/.cram-engine/configs/<课程名>.yaml`
3. 如果配置存在 → 解析 `course`、`must_know`、`key_points`、`exam_types`、`materials`、`preferences`,直接进入阶段1
4. 如果配置不存在 → 执行下方「配置创建流程」
5. 确保 `~/.cram-engine/progress/` 目录存在
#### 配置创建流程
按以下步骤依次提问,每次只问一个问题。用户回答后进入下一步。
```
📋 第一次使用,需要先创建课程配置。回答下面几个问题:
① 课程名称?
② 使用什么教材?
引擎会在教学中使用该教材的术语和概念框架,从而更贴近你的课堂表述。
没有教材的话,回车跳过就行。
③ 有复习资料吗?
有 .txt 或 .md 格式的笔记,可以直接粘贴内容,也可以给文件路径。
不接受 PDF、Word、PPT、图片。
引擎会从中提取老师使用的术语和侧重点,融入教学。
没有就回车跳过。
④ 考试有哪些题型?
用你自己的话描述,老师说的是什么就写什么。
⑤ 列出要考的知识点,每行一个。
直接打字,或者从其他地方复制粘贴。如果知识点在 PDF、Word 里,
复制粘贴过来就行。也可以给 .txt 或 .md 文件路径。
⑥ 以上共 N 个知识点。哪些是老师反复强调或明确说过会考的?
回复编号就行,比如:1, 3-5。没有就回"没有"。
⑦ 其他知识点里,有没有你自己觉得需要重点掌握的?
有就标编号,没有就回车跳过。
```
所有问题回答完毕后,将收集的信息整理为课程配置 YAML,写入 `~/.cram-engine/configs/<课程名>.yaml`。
课程配置的 `preferences` 使用以下默认值(用户无需手动填写):
```yaml
preferences:
language: 中文
tone: 先给一句话核心结论再展开,拒绝学术黑话
teaching_methods:
- concrete_first
- chunking
- elaboration
- generation
memory_hooks:
- acronym
- contrast_table
- absurd_example
exam_tactics:
- keyword_mining
- trap_awareness
- framework_building
example_domains:
- 大学社团/学生会
- 小组作业与合作冲突
- 宿舍矛盾
- 实习/兼职
- 选课与绩点博弈
pacing:
check_in_frequency: every_3_points
reteach_trigger: "再讲一遍"
```
### 阶段1:拆解知识点树
1. 读取 `<skill_dir>/stages/stage1-deconstruct.md` 获取系统指令模板
2. 将课程配置中的 `must_know` 和 `key_points` 填入系统指令
3. 调用模型,执行拆解
4. 将输出写入进度文件 `~/.cram-engine/progress/<课程名>-progress.md`
5. 展示知识点总数、must_know 和 key_point 分布,等待用户确认:
- 回车 → 全部按序进入阶段2
- "先攻 must_know" → 只学核心考点,其余跳过
- 指定编号(如"跳过 9, 10, 13")→ 移除对应知识点
- 如果要移除 must_know 考点,先警告再执行
6. 确认后进入阶段2
### 阶段2:讲授(逐个知识点)
1. 读取 `<skill_dir>/stages/stage2-teach.md` 获取完整系统指令
2. 读取进度文件,找到第一个未标记完成的知识点
3. 以该系统指令 + 当前知识点内容调用模型
4. 严格按4步认知策略执行:concrete first → chunking → elaboration → generation
5. 根据知识点的 hook 类型附加记忆强化(口诀/对比表/荒诞场景)
6. 讲完后更新进度文件中该知识点为已完成
7. 继续下一个知识点
8. **每讲完3个知识点**:暂停,展示已学清单,问用户节奏(继续/加速/减速/跳过)
9. **must_know 全部讲完后**:展示里程碑提示("核心考点全部讲完,还剩 N 个扩展知识点"),用户可说"跳过"直接进阶段3
10. 全部讲完后进入阶段3
用户的 pacing 偏好来自课程配置:
- 用户说"再讲一遍"→ 换场景/换例子/换角度重讲(不重复原话)
- 用户说"继续"→ 正常节奏
- 用户说"加速"→ 精简版(跳过 generation 步骤)
- 用户说"减速"→ 每个点多配一个例子
- 用户说"跳过"→ 停止阶段2,直接进入阶段3。跳过的知识点在阶段3仍按分级策略出题
### 阶段3:检题(按题型适配)
1. 读取 `<skill_dir>/stages/stage3-test.md` 获取出题策略和四种子模式的系统指令
2. **题型映射**(根据用户配置的 exam_types,匹配到对应子模式):
- 题型含"选择""判断" → 子模式 A
- 题型含"案例" → 子模式 B
- 题型含"情景""应用" → 子模式 C
- 其他题型(名词解释、简答、论述、辨析、填空等) → 子模式 D
3. **出题策略**(不用模型,由你直接控制):
- must_know 考点:每种 exam_types 中的题型全覆盖
- key_points 考点:每点随机1-2种题型,优先选择题+情景题
- 如果 must_know 为空:全部考点按 key_point 处理
4. 按子模式依次调用模型出题
5. 用户答完后逐题批改:
- 正常题:标注对错 + 1句话解析
- 陷阱题:额外揭晓陷阱逻辑
6. 记录:答错的知识点、答对但用户追问了"为什么"的知识点
7. 更新进度文件
8. 判断是否进入阶段4
### 阶段4:闭环补漏
1. 读取 `<skill_dir>/stages/stage4-remediate.md` 获取系统指令
2. 只处理阶段3中出错或不确定的知识点
3. 每个错误知识点执行:诊断根因 → 换讲法 → 重测 → 顽固判定
4. must_know 答错的考点:额外多出3道新题
5. 二次错误的标记为"顽固点",建议明天再攻(不继续死磕)
6. 全部处理后输出总结:已纠正数、顽固点清单、must_know 考点掌握状态
7. 最终更新进度文件
### 交互风格
- 讲解风格和例子坐标系严格遵循课程配置中的 `preferences`
- 分阶段输出,每个阶段开始前告知用户当前阶段名称和目的
- 错误时不自责、不废话,直接进入纠错流程
- 进度文件始终保持最新状态
## 设计原则
- 每次只让模型执行一个清晰任务,避免巨型 System Prompt 导致的指令遵循度衰减
- 学习科学策略体现在流程设计中(阶段顺序、暂停检查、检索练习),而非依赖模型自行理解
- must_know 考点在所有题型中全覆盖,key_points 抽样覆盖以节省时间
- 顽固点不持续死磕——认知科学表明间隔练习比集中死磕更有效
Creator's repository · liuliu667/cram-engine