学期资料库,用Claude搭的学习系统
第三学期用的学习系统:9条命令、四层目录、自建仪表盘,每天早上自动出一份晨报。刚开始用,所以这页只讲设计和取舍,不讲效果。
- 我做了什么
- 个人项目。我提需求、定取舍,Claude在会话里写资料页、题目和代码。
- 用到的技术
- Claude、Markdown + git、Python、FastAPI、GitHub webhook、云端定时任务
- 怎么复现
- 看页面下方的复现步骤
- AI 用在哪
- 仓库里的资料页、题目和代码主要由Claude在会话里写;需求和几项关键取舍(自建网页不用Anki和Obsidian、GitHub作中心、云端晨报)是我定的。
- 最后更新
- 2026-10-15
| 项目 | 数值 | 说明 |
|---|---|---|
| 命令 | 9 | preview、ingest、quiz、review、mock、lint、weekly、status、sync,各一个SKILL.md,合计155行 |
| wiki页 | 58 | 含20个概念页、3个讲次页、8张知识地图;2026-10-15统计 |
| 题库 | 26题 + 27张闪卡 | 只有两门课入过库 |
| 往年卷 | 6套 → 12行题型表 → 57题索引 | 一门课的往年卷;只发数量,不发题 |
| commit | 77个,3天 | 2026-10-13至10-15,含自动提交 |
| 晨报 | 自动运行2次 | 40_PLAN/briefs/里有10-14和10-15两期 |
课件原文、账号和服务器信息不会出现在这个站上,这页只写思路。仓库是私有的。
为什么做
我想把一个学期的预习、学习、复习、备考放在同一个地方,由Claude来维护。我只做三件事:把资料丢进去,回答它的提问,把没懂的一行字记下来。
我做了什么
- 一个git仓库,分四层目录,规则写在根目录的CLAUDE.md里。每次会话Claude先读它,再读状态文件。
- 9条命令,说出命令名就触发,比如
/ingest把一讲的课件整理成讲次页、概念页和题目,/review按到期时间拉题复习。 - 从Moodle同步课程资料的命令:只下新文件,复制到对应课程目录,不删原件。
- 一个自己写的网页仪表盘,跑在我自己的服务器上,有今天的待办、一轮复习、课程页、周页、专注计时、记一条。
- 每天早上自动生成的晨报,同时推到仪表盘首页和邮箱。
- 一份往年卷统计:把一门课的6套往年卷拆成题型表和题索引,
/mock按这个分布出模拟卷。
怎么做的
为什么分四层
10_RAW 原始资料,只读,只增不改
20_WIKI Claude维护的知识页,可整体重建
30_PRACTICE 题库、错题本、闪卡、模拟卷
40_PLAN 状态、待办、周计划,进度只认这里
最重要的一条是 10_RAW 只读。Claude写的所有东西都落在另外三层,frontmatter里的 sources 要指到原始文件的具体页码。这样任何一句话都能查到出处,Claude写错了也能整层删掉重建,课件本身不会被动到。
40_PLAN/status.md 是进度的唯一真相,待办也只认 todos.json。我不让Claude凭记忆报进度。
放弃的做法:一个大笔记本,或者全靠聊天记录。好处是省事,坏处是过两周没人说得清哪句话是课件说的、哪句是模型补的。
代价是规则多:CLAUDE.md有8条红线,每次改动WIKI、练习和计划,都要在日志里追加一行。
错题必须写原因才能关
CLAUDE.md里的硬规则:
错题条目缺「为什么错」或「正确思路」不得关闭;
mastery: 3 必须是不同日期答对两次。
模板里这两项标了「必填」,错误类型只分四种:概念不会、结构缺步、计算失误、审题错。协议里还有一条:看了答案的题,当天必须口头复述一遍思路,否则掌握度不变。
原因是「看完答案觉得懂了」最容易骗过自己。写不出为什么错,说明还没懂,那就不该关掉。
代价是摩擦大,做完一题要多花几分钟。我接受这个代价。
为什么要「不同天答对两次」
同一天连对两次,测到的多半是短期记忆。所以掌握度分四档:0没碰、1见过、2答对一次、3不同天答对两次。答对后下次复习的间隔按1、3、7、14、30天往后推,答错就3天后重测。
放弃的是好看的进度条。系统刚建好,各课「已掌握」的占比还是0,我没把它放进上面的数字里。这个数字要等几周之后才有意义。
为什么自建,不用Anki和Obsidian
我一开始就说了:要一个能交互的完整网页,不用Obsidian;闪卡不用Anki,放在对话和自己的网页里。
从仓库看,我能说出的理由有三个:
- 题目、错题、闪卡都带同一套frontmatter(课程、讲次、掌握度、下次复习、来源页码),
/review把它们排进同一个队列,错题优先,课程交错,一轮25分钟。 - 复习卡上的「我卡住了」按钮会逐级显示预写好的L1到L3提示,这一步要和题库连在一起。
- 专注计时、待办、晨报都读同一批文件,不用在几个软件之间搬数据。
代价也清楚:仪表盘是约4,600行Python,要自己维护;复习间隔是固定阶梯,没有和Anki的算法比过。
AI导师为什么分级提示,不直接给答案
协议里把提示分成三级:
L1 方向:只说用哪个概念、看课件哪一页,不给步骤
L2 关键一步:给出卡住那一步的做法,不给结果
L3 完整讲解:逐步讲清每一步为什么
我直接要答案时,Claude先问「你卡在哪一步」,让我说清已知什么、要求什么、试过什么。同一处连续卡两次才给L3。给了L3,这题算「当例题」,不升掌握度,还要我关掉解答在白纸上重推一遍,1到3天后用一道同构题冷测。
每道题的三级提示在出题时就写进题目文件,写完要自检:只看L1和L2,能不能直接抄出答案?能就改。仪表盘上的「我卡住了」显示的是同一份。
另一条:我问「我的理解对吗」,Claude不先评判,先让我举一个具体例子验证。代码报错也一样,它只解释报错的意思,不替我写修复。
协议里的时间锚点(同一步卡15分钟给L1,单题30到40分钟换策略)是经验值,文件里自己标了「不是实验最优」。
放弃的是速度,直接给答案快得多。协议里的分工是:计算和画图Claude做,判断和解释我做。
自动化怎么分工
| 在哪里跑 | 做什么 | 为什么放在这里 |
|---|---|---|
| 云端定时任务 | 每天早上5点24分克隆仓库,跑晨报,推回GitHub | 不依赖我的电脑开机,每次从干净仓库开始 |
| 我自己的服务器 | 仪表盘;收GitHub的webhook后自动拉取;答题和评分自动提交推回 | 一直开着,手机也能打开 |
| 我的Mac | Claude会话、Moodle同步、git push |
要登录态和本地文件 |
GitHub私有仓库是中心。服务器收到webhook就 pull --rebase,另有一个10分钟的定时拉取兜底。
晨报是一条小流水线:先把没做完的待办顺延并重排,再由 brief.py 生成当天的事实清单(只用标准库,云端不用装依赖),存成 today.json,最后 render_brief.py 渲染成Markdown和HTML邮件。
两个小约定:
- 每个文件只有一个写入方。专注记录只由仪表盘写,Claude只读,避免git冲突。
- 自动提交用各自的机器人身份,会话里的提交用我的身份,翻git记录就能看出是谁改的。
专注模块
仪表盘有一个专注页:学习块计时,卡住时记一条(后来是自己解决,还是看了几级提示,还是停车换题),一天累计够25分钟算一个学习日,算连续天数。断了不批评,按「最小可行日」恢复:做一个25分钟的块就行。补签卡每周2张,只能补前一天是学习日的那天,不能连空两天。
这部分在做一个两周的实验:第1周只加轻微的阻力,配合卡点协议,第2周上午的学习块再加硬模式。刚开始,还没满14天。
往年卷统计
一门课有6套往年卷。我让Claude逐套拆出题型,合成一张12行的题型表,并给每道题建一条索引,一共57条。这门课的卷子题型很固定,所以 /mock 按题型分布出限时模拟卷。
题面、分值和各章出现频率是课程材料派生的,这里不发。
结果
数字都在页顶,出处是仓库里的文件和git记录,2026-10-15的统计,核对过。
使用数据还太少:仓库里目前只有1条复习记录和1条专注记录。所以这页不写「省了多少时间」「成绩提高多少」。用满一个月之后再补。
没做好的地方
- 才用3天。上面所有设计都还没经过一个完整学期的检验。
- 资料灌入刚开始。目前只有两门课入过库,讲次页3个,其余课只有目录或知识地图。
- Claude写的提示第一版泄过题。验收时发现有些提示直接带出了答案,改了一轮,并把「合格和不合格的写法」补进了
/ingest的说明里。这也是为什么我坚持要有自检那一步。 - 复习间隔是固定阶梯,没有用SM-2或FSRS,也没和别的工具比过。
- 仪表盘约4,600行代码要自己维护。
接下来
- 把其余课程的讲义灌进来,每讲24小时内
/ingest。 - 两周专注实验满14天后,按事先写好的规则给结论:指标改善,设置全部常开;第2周的硬模式没带来增量,就只留给考试周。
- 一个月后补上真实的使用数据:复习了多少轮,错题关了多少,晨报每天看没看。
怎么复现
仓库私有,不放链接。四层目录的约定、CLAUDE.md的规则和9条命令的写法,以后可能会整理成一个不带任何课程资料的模板。
更正记录
暂无。
想聊这个项目,欢迎发邮件或在小红书私信我。