BeClaude

cram-engine

New
47GitHub TrendingGeneralby liuliu667

期末速成引擎——一个懂学习科学的 AI 老师。基于认知负荷理论、精细加工、生成效应、检索练习,通过拆解→讲授→检题→补漏四阶段流水线,把课程重点变成交互式高效学习会话。一行命令启动,拯救大学生期末。

Community PluginView Source

Overview

期末速成引擎 (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. 如果配置存在 → 解析 coursemust_knowkey_pointsexam_typesmaterialspreferences,直接进入阶段1
  4. 如果配置不存在 → 执行下方「配置创建流程」
  5. 确保 ~/.cram-engine/progress/ 目录存在

按以下步骤依次提问,每次只问一个问题。用户回答后进入下一步。

code
📋 第一次使用,需要先创建课程配置。回答下面几个问题:

① 课程名称?

② 使用什么教材?
   引擎会在教学中使用该教材的术语和概念框架,从而更贴近你的课堂表述。
   没有教材的话,回车跳过就行。

③ 有复习资料吗?
   有 .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_knowkey_points 填入系统指令
  3. 调用模型,执行拆解
  4. 将输出写入进度文件 ~/.cram-engine/progress/<课程名>-progress.md
  5. 展示知识点总数、must_know 和 key_point 分布,等待用户确认:

- 回车 → 全部按序进入阶段2 - "先攻 must_know" → 只学核心考点,其余跳过 - 指定编号(如"跳过 9, 10, 13")→ 移除对应知识点 - 如果要移除 must_know 考点,先警告再执行

  1. 确认后进入阶段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

  1. 出题策略(不用模型,由你直接控制):

- must_know 考点:每种 exam_types 中的题型全覆盖 - key_points 考点:每点随机1-2种题型,优先选择题+情景题 - 如果 must_know 为空:全部考点按 key_point 处理

  1. 按子模式依次调用模型出题
  2. 用户答完后逐题批改:

- 正常题:标注对错 + 1句话解析 - 陷阱题:额外揭晓陷阱逻辑

  1. 记录:答错的知识点、答对但用户追问了"为什么"的知识点
  2. 更新进度文件
  3. 判断是否进入阶段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 抽样覆盖以节省时间
  • 顽固点不持续死磕——认知科学表明间隔练习比集中死磕更有效

Install & Usage

1
Create the skills directory
mkdir -p .claude/skills
2
Download the skill file
mkdir -p .claude/skills && curl -o .claude/skills/cram-engine.md https://raw.githubusercontent.com/liuliu667/cram-engine/main/SKILL.md
3
Invoke in Claude Code
/cram-engine
View source on GitHub

Frequently Asked Questions

What is cram-engine?

期末速成引擎——一个懂学习科学的 AI 老师。基于认知负荷理论、精细加工、生成效应、检索练习,通过拆解→讲授→检题→补漏四阶段流水线,把课程重点变成交互式高效学习会话。一行命令启动,拯救大学生期末。

How to install cram-engine?

To install cram-engine, create the .claude/skills directory in your project, then run the curl command to download the skill file. Once installed, invoke it in Claude Code with /cram-engine.

What is cram-engine best for?

cram-engine is a community categorized under General. Created by liuliu667.