dsh-mastery-loop 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/package.json +1 -1
- package/skills/mastery-loop/SKILL.md +22 -21
- package/skills/mastery-loop/exam-templates.md +102 -0
- package/skills/mastery-loop/scripts/_lib.mjs +408 -0
- package/skills/mastery-loop/scripts/aggregate.mjs +155 -0
- package/skills/mastery-loop/scripts/graph.mjs +448 -0
- package/skills/mastery-loop/scripts/ledger.mjs +223 -0
- package/skills/mastery-loop/scripts/rewrite-links.mjs +81 -0
- package/skills/mastery-loop/scripts/scan.mjs +276 -0
- package/skills/mastery-loop/scripts/validate.mjs +115 -59
- package/skills/mastery-loop/templates.md +210 -62
- package/skills/mastery-loop-setup/SKILL.md +105 -76
- package/skills/mastery-loop-setup/seeds/config.json +39 -0
- package/skills/mastery-loop-setup/seeds/error-taxonomy.json +4 -0
- package/skills/mastery-loop-setup/seeds/errors.jsonl +1 -0
- package/skills/mastery-loop-setup/seeds/graph.json +13 -0
- package/skills/mastery-loop-setup/seeds/ledger.jsonl +2 -0
- package/skills/mastery-loop-setup/seeds/moc.md +15 -0
- package/skills/mastery-loop-setup/seeds/note.md +33 -0
- package/skills/mastery-loop-setup/seeds/paper-format.json +15 -0
- package/skills/mastery-loop-setup/seeds/state.jsonl +2 -0
- package/skills/mastery-loop-setup/seeds/config.md +0 -34
- package/skills/mastery-loop-setup/seeds/error-taxonomy.md +0 -17
- package/skills/mastery-loop-setup/seeds/errors.md +0 -48
- package/skills/mastery-loop-setup/seeds/index.md +0 -25
- package/skills/mastery-loop-setup/seeds/ledger.md +0 -26
- package/skills/mastery-loop-setup/seeds/paper-format.md +0 -30
|
@@ -1,132 +1,161 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mastery-loop-setup
|
|
3
|
-
description:
|
|
3
|
+
description: >-
|
|
4
|
+
一次性初始化或迁移 mastery-loop 的知识库:探测材料与既有笔记,问清「按什么分类」「范围」「素材」「语言」「卷面格式」,把 kb/(内容区)与 sys/(机器区)建起来,或把已有库按契约重建结构(内容原样保留),最后跑校验。首次使用 mastery-loop 之前跑一次。
|
|
5
|
+
/ One-time setup or migration for mastery-loop: explore materials and existing notes, ask about classification, scope, sources, language and exam format, then scaffold kb/ + sys/ (or rebuild an existing library's structure without touching its content) and verify it.
|
|
4
6
|
disable-model-invocation: true
|
|
7
|
+
user-invocable: true
|
|
5
8
|
---
|
|
6
9
|
|
|
7
10
|
# mastery-loop 初始化
|
|
8
11
|
|
|
9
|
-
|
|
12
|
+
> **本文件是初始化 / 迁移流程。** 契约正文(*库长什么样、每个文件干什么*)在
|
|
13
|
+
> [`../mastery-loop/templates.md`](../mastery-loop/templates.md) —— **它是权威,改契约只改那里**,本文件只讲「怎么建」。
|
|
10
14
|
|
|
11
|
-
|
|
15
|
+
**产出:两个并列文件夹**
|
|
12
16
|
|
|
13
|
-
|
|
|
17
|
+
| 路径 | 是什么 |
|
|
14
18
|
| --- | --- |
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
18
|
-
| `
|
|
19
|
-
| `
|
|
20
|
-
| `
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
| `kb/knowledge/` | 知识点笔记(一篇一个知识点) |
|
|
20
|
+
| `kb/MOC/` | 聚合产物,镜像分类层级(每层一份索引 + 叶子层讲次 MOC) |
|
|
21
|
+
| `sys/config.json` | 设定:路径 / 分类 / 语言 / 确认标记 |
|
|
22
|
+
| `sys/graph.json` | 关系图(前置关系的真值) |
|
|
23
|
+
| `sys/ledger.jsonl` | 账本(逐知识点复习统计,真值) |
|
|
24
|
+
| `sys/errors.jsonl` | 错误原因表 |
|
|
25
|
+
| `sys/error-taxonomy.json` | 失分原因分类(初始为空,agent 维护) |
|
|
26
|
+
| `sys/paper-format.json` | 卷面参数 |
|
|
27
|
+
| `sys/state.jsonl` | 状态(哈希 / schema 版本 / 检查时间) |
|
|
28
|
+
| `sys/changes.jsonl` | 变更流水 —— **只在没有 git 且用户不装 git 时才建** |
|
|
29
|
+
|
|
30
|
+
> 这是 **prompt-driven skill,不是确定性脚本**。探索、把发现摆出来、问、确认,然后才写。
|
|
23
31
|
|
|
24
32
|
---
|
|
25
33
|
|
|
26
34
|
## 0 · 硬规矩
|
|
27
35
|
|
|
28
|
-
- **材料目录只读。**
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
36
|
+
- **材料目录只读。** 不改、不移、不改名用户给的任何课程材料。
|
|
37
|
+
- **结构可重建,内容原样搬运。** 重建的只是 frontmatter 字段集、正文固定小节、链接写法、MOC / 索引;**内容是用户的**(一句话 / 核心内容 / 易错点 / 讲义出处),一个字节不动。
|
|
38
|
+
- **改什么先给清单。** 动手前先把「哪篇要动、动什么」摆给用户过目。
|
|
39
|
+
- **幂等。** 第二次跑必须零改动 —— 合规的文件**不重写**。
|
|
40
|
+
- **问出来的信息要留痕**:`(用户于 <YYYY-MM-DD HH:MM> 确认)`,就地只留最新一条。
|
|
41
|
+
- **不含任何真实路径进 skill 包** —— 真实路径只写进用户的 `sys/config.json`。
|
|
42
|
+
- **不自动 `commit`、绝不 `push`。**
|
|
32
43
|
|
|
33
44
|
---
|
|
34
45
|
|
|
35
46
|
## 1 · Explore(先看,别假设)
|
|
36
47
|
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
- **是否已经初始化过**:`
|
|
40
|
-
- **git
|
|
48
|
+
- **材料**:先列用户给的目录里**实际有什么**,不套固定清单(各课结构不同,有的课压根没有往年卷)。
|
|
49
|
+
- **既有笔记库**:有没有已经成形的知识库?知识点在哪个目录?frontmatter 有哪些字段?正文有哪些小节?
|
|
50
|
+
- **是否已经初始化过**:`sys/` 在不在?**在就先停下问用户**「要重新初始化,还是只补缺的」。
|
|
51
|
+
- **git**:工作区是不是 git 仓库?(决定用 git 还是回退到 `sys/changes.jsonl` 记历史)
|
|
41
52
|
|
|
42
|
-
|
|
53
|
+
### 1.1 合规扫描(**agent 做,不能脚本化** —— 初见的库状态无法预料)
|
|
43
54
|
|
|
44
|
-
|
|
55
|
+
逐篇看三件事,产出清单:
|
|
45
56
|
|
|
46
|
-
|
|
|
47
|
-
| --- | --- |
|
|
48
|
-
|
|
|
49
|
-
|
|
|
57
|
+
| 看什么 | 合规 |
|
|
58
|
+
| --- | --- |
|
|
59
|
+
| frontmatter 字段集 | `类型` / `归属`(来源文件,多值)/ `aliases` / `标签`;**没有** `课程:` / `主题:` / `难度:` |
|
|
60
|
+
| 正文小节 | `一句话 / 核心内容 / 前置知识 / 后置知识 / 易错点 / 考点 / 讲义出处`;**没有 `## 平行关联`** |
|
|
61
|
+
| 链接写法 | 带路径、相对工作区根、带后缀、带别名 |
|
|
62
|
+
|
|
63
|
+
**合规的 → 一行不动**;不合规的 → 只改结构、内容原样搬。清单交给用户确认后再动(§6)。
|
|
50
64
|
|
|
51
|
-
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 2 · 分类与范围(**必问,不默认推荐**)
|
|
52
68
|
|
|
53
|
-
|
|
54
|
-
2. **类里有内容、但没有默认成员** → **不算缺**,只需问一句「用类里另一样顶吗」
|
|
69
|
+
**分类是全库级定义**,层数和每层有几个类都不固定。
|
|
55
70
|
|
|
56
|
-
|
|
71
|
+
1. **先扫一遍材料**,给出一版候选建议(例如「你这里看起来是按『课程 → 讲次』分的」);
|
|
72
|
+
2. **问用户「按什么分类」** —— 用户可能不是按上课学的(比如「书 → 章」),**不要预设课程**;
|
|
73
|
+
3. **问用户「每一层具体怎么认」** —— 得到**解析规则**(例:课程 = 来源路径第一层文件夹名;讲次 = 文件名里的 `W1L3`);
|
|
74
|
+
4. 用户校正后,把**层级 + 每条解析规则 + 每层类值(+ ASCII slug)**写进 `sys/config.json`,并带确认标记;
|
|
75
|
+
5. **范围**:用户说「整理某部分」时,**从分类里选**(一个或多个类值)。不同范围**共用同一套分类**。
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 3 · 素材:两个类别
|
|
80
|
+
|
|
81
|
+
**必需的只有两个类别**,不是两个确定的文件:
|
|
57
82
|
|
|
58
|
-
|
|
83
|
+
| 类别 | 用来 | **默认成员** | 类里其他合格成员 |
|
|
84
|
+
| --- | --- | --- | --- |
|
|
85
|
+
| **建库参考** | 建知识库 | **讲义** | 教学大纲 / exam_topics / 课件 / 教科书章节 |
|
|
86
|
+
| **出题参考** | 出题与判分 | **往年试卷** | 往年卷答案 / Lab sheet / Worksheet / Assessment 结构 |
|
|
59
87
|
|
|
60
|
-
|
|
88
|
+
**判定分两级**:① **某一类整类为空** → 真缺,告诉用户缺什么、去哪找;② **类里有内容但没默认成员** → **不算缺**,问一句「用类里另一样顶吗」。
|
|
61
89
|
|
|
62
|
-
|
|
90
|
+
**换成员必须问**,定了记进 `sys/config.json`(带确认标记),之后不再问。同时问一句:**「有没有你不想让我读的?」**
|
|
63
91
|
|
|
64
|
-
|
|
65
|
-
2. 出的题(题干 / 选项)
|
|
66
|
-
3. 批改与解析
|
|
67
|
-
4. 记录性文件(`ledger.md` 等)
|
|
68
|
-
5. 产出(复习清单 / 考前 list)
|
|
69
|
-
6. 机制层(frontmatter 字段名 / `config.md`)
|
|
92
|
+
---
|
|
70
93
|
|
|
71
|
-
|
|
72
|
-
> 📌 **不要预设双语。** 有人要法文、有人只要中文,问出来。
|
|
94
|
+
## 4 · 语言标准
|
|
73
95
|
|
|
74
|
-
|
|
96
|
+
**按 6 个产物类别分别问**(用户可以用自然语言回答,如「全都中英双语对照」):① 知识点笔记(正文 / 标题 / `aliases` / MOC)② 出的题 ③ 批改与解析 ④ 记录性文件 ⑤ 产出(复习清单 / 考前 list)⑥ 机制层(字段名 / config)。
|
|
75
97
|
|
|
76
|
-
|
|
98
|
+
> ⚠️ **`sys/errors.jsonl` 里的错误原因默认用英文** —— 它要套 ASD-STE100 的规则,不跟别的类别走。
|
|
99
|
+
> 📌 **不要预设双语。**
|
|
77
100
|
|
|
78
|
-
|
|
79
|
-
- **字段冲突** → **并存 + 映射**,不要轻易改名(改名会打烂用户已有的查询/模板/Dataview)。有 `章节:` 就保留它,另加 `主题:`,值从它映射过来。
|
|
80
|
-
- **`主题` 推不出来**(压根没有讲次/章节概念)→ **先推一版草案**(按目录结构或笔记命名规律聚类),摆给用户改。**别直接问「你的主题是什么」** —— 那问题用户答不上来。
|
|
81
|
-
- **不动笔记正文**。新字段是**加**上去的。
|
|
101
|
+
---
|
|
82
102
|
|
|
83
|
-
## 5 ·
|
|
103
|
+
## 5 · 卷面格式
|
|
84
104
|
|
|
85
|
-
|
|
105
|
+
**每个课程的每场考试各一条**(期中 / 期末 / in-class / coursework 形状不同,必须分开),落进 `sys/paper-format.json`:时间 / 总分 / 题数 / 题型 / 分值分布,并**记住来源**(抄自哪份文件)。
|
|
86
106
|
|
|
87
|
-
|
|
107
|
+
**没有往年卷时**:先问用户;用户没更好的主意 → 用**默认出卷法 = 判断题 + 每题说明理由**,并在该条写明。
|
|
88
108
|
|
|
89
|
-
|
|
90
|
-
用户没有更好的主意 → 用**默认出卷法 = 判断题 + 每题说明理由**,并在该条目里写明「无往年卷 → 用默认出卷法」。
|
|
109
|
+
---
|
|
91
110
|
|
|
92
|
-
## 6 ·
|
|
111
|
+
## 6 · 重建(合规检查 → 清单 → 动手)
|
|
93
112
|
|
|
94
|
-
|
|
113
|
+
1. **先按 §1.1 逐篇判定**,把清单摆给用户(哪篇要动、动什么、为什么);
|
|
114
|
+
2. 用户点头后,**按分类分层一块一块做**(例:先 DL L1,做完跑校验,再下一块);
|
|
115
|
+
3. **安全网**:有 git → 提示用户先 commit;没有 git → 先把 `kb/` + `sys/` 复制一份到工作区外的备份目录再动手;
|
|
116
|
+
4. 重建内容:frontmatter 字段集 · 正文小节顺序 · 链接改写 · MOC / 索引;
|
|
117
|
+
5. **`## 平行关联` 里的链接不要丢** —— 转成 `sys/graph.json` 里的边(判据仍按契约第二节)。
|
|
95
118
|
|
|
96
|
-
|
|
119
|
+
---
|
|
97
120
|
|
|
98
|
-
|
|
99
|
-
- [index.md](./seeds/index.md) —— 索引
|
|
100
|
-
- [errors.md](./seeds/errors.md) —— 错误原因表
|
|
101
|
-
- [paper-format.md](./seeds/paper-format.md) —— 卷子格式
|
|
102
|
-
- [error-taxonomy.md](./seeds/error-taxonomy.md) —— 失分原因分类(**保持为空**)
|
|
103
|
-
- [config.md](./seeds/config.md) —— 配置
|
|
121
|
+
## 7 · 落盘
|
|
104
122
|
|
|
105
|
-
|
|
123
|
+
写进**工作区根**,按契约第一节的布局。**顺序写死,不许反向**:
|
|
106
124
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
- `config.md`:路径、每门课的成员选择、语言标准填满
|
|
125
|
+
```
|
|
126
|
+
① kb/knowledge/(知识点) + sys/graph.json(关系图)
|
|
127
|
+
② kb/MOC/ 的机器区(由 aggregate.mjs 从「归属 + 图」聚合)
|
|
128
|
+
③ kb/MOC/ 的手写区(agent / 人写:主线、脉络、考点提示)
|
|
129
|
+
```
|
|
113
130
|
|
|
114
|
-
|
|
131
|
+
种子模板(`seeds/`)→ 填好草稿、给用户过目、再写:
|
|
115
132
|
|
|
116
|
-
|
|
133
|
+
| 种子 | 填什么 |
|
|
134
|
+
| --- | --- |
|
|
135
|
+
| `seeds/config.json` | 路径、分类(层级 / 解析规则 / 类值 / slug)、语言、git |
|
|
136
|
+
| `seeds/graph.json` | `用途` / `规则` / `coverage` / `edges` |
|
|
137
|
+
| `seeds/ledger.jsonl` | 先铺**本次范围内全部知识点**,`是否学习过 = 否`、`做对/总共出过 = 0`、`熟练程度 = null` |
|
|
138
|
+
| `seeds/errors.jsonl` | 只有头部说明行,**初始没有条目** |
|
|
139
|
+
| `seeds/error-taxonomy.json` | **保持为空** |
|
|
140
|
+
| `seeds/paper-format.json` | §5 收来的每条考试一格 |
|
|
141
|
+
| `seeds/state.jsonl` | 只有头部说明行 |
|
|
142
|
+
| `seeds/note.md` | 单篇知识点的骨架(frontmatter + 固定小节) |
|
|
143
|
+
| `seeds/moc.md` | 一份 MOC 的骨架(机器区标记 + 手写区) |
|
|
117
144
|
|
|
118
|
-
|
|
145
|
+
---
|
|
119
146
|
|
|
120
147
|
## 8 · 校验
|
|
121
148
|
|
|
122
|
-
跑校验脚本,确认 6 个文件真的建好了:
|
|
123
|
-
|
|
124
149
|
```bash
|
|
125
|
-
node scripts/validate.mjs
|
|
150
|
+
node <skill>/scripts/validate.mjs <工作区根> # 结构齐不齐
|
|
151
|
+
node <skill>/scripts/graph.mjs check <工作区根> # 六项图校验
|
|
152
|
+
node <skill>/scripts/scan.mjs <工作区根> # 五项扫库
|
|
126
153
|
```
|
|
127
154
|
|
|
128
|
-
|
|
155
|
+
**结构齐 + 图六项全过 = 初始化完成。** 缺哪个补哪个,别靠感觉。
|
|
156
|
+
|
|
157
|
+
---
|
|
129
158
|
|
|
130
159
|
## 9 · Done
|
|
131
160
|
|
|
132
|
-
告诉用户:初始化完了,`mastery-loop` 之后会读这些文件;想改直接编 `config.
|
|
161
|
+
告诉用户:初始化完了,`mastery-loop` 之后会读这些文件;想改直接编 `sys/config.json`;**只有要换素材来源、改分类、或从头再来时才需要重跑本 skill**。
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"用途": "本文件是这套知识库的设定:路径、分类(层级与解析规则)、语言标准、git。凡「问用户才得到」的值后面跟确认标记。",
|
|
3
|
+
"schema_version": "0.2.0",
|
|
4
|
+
"路径": {
|
|
5
|
+
"工作区根": ".",
|
|
6
|
+
"材料": ["<相对工作区根的目录,例:Deep Learning/doc>"],
|
|
7
|
+
"知识库": "kb",
|
|
8
|
+
"机器区": "sys"
|
|
9
|
+
},
|
|
10
|
+
"分类": {
|
|
11
|
+
"层级": ["<第 1 层,例:课程>", "<第 2 层,例:讲次>"],
|
|
12
|
+
"字段": "分类",
|
|
13
|
+
"分隔符": "/",
|
|
14
|
+
"说明": "每篇知识点在生成时就带上 分类 字段(一条一个类路径,用分隔符拼层级);脚本只读它,不解析路径。怎么算是哪个类,由 agent 看这个库后和用户确认,不预设形状。",
|
|
15
|
+
"类值": {
|
|
16
|
+
"<第 1 层>": [
|
|
17
|
+
{ "值": "<类值,例:深度学习>", "slug": "<ASCII,例:dl>" }
|
|
18
|
+
],
|
|
19
|
+
"<第 2 层>": []
|
|
20
|
+
},
|
|
21
|
+
"确认": "(用户于 <YYYY-MM-DD HH:MM> 确认)"
|
|
22
|
+
},
|
|
23
|
+
"范围": [
|
|
24
|
+
{ "名称": "<范围名>", "值": ["<分类里的一个或多个类值>"], "确认": "(用户于 <YYYY-MM-DD HH:MM> 确认)" }
|
|
25
|
+
],
|
|
26
|
+
"语言": {
|
|
27
|
+
"知识点笔记": "<正文 / 标题 / aliases / MOC 用什么语言>",
|
|
28
|
+
"出的题": "",
|
|
29
|
+
"批改与解析": "",
|
|
30
|
+
"记录性文件": "",
|
|
31
|
+
"产出": "",
|
|
32
|
+
"机制层": ""
|
|
33
|
+
},
|
|
34
|
+
"git": {
|
|
35
|
+
"使用": true,
|
|
36
|
+
"说明": "有 git 就用 git 承担历史(skill 不自动 commit、绝不 push);没有且用户不装 → 启用 sys/changes.jsonl"
|
|
37
|
+
},
|
|
38
|
+
"排除": ["<用户说不想让我读的>"]
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"kind":"header","用途":"本文件是错误原因表:逐知识点登记用户实际犯过的错,供复习时逐字复用。初始没有条目。"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"用途": "本文件是知识点关系图:只存边(from 是 to 的前置),节点就是 kb/knowledge/ 里的笔记本身。",
|
|
3
|
+
"规则": "判据:删掉 from,to 的核心内容就解释不通。只收直接前置;同一篇的前置集合内两两不可比。顺序按知识深度,不是资料时间。",
|
|
4
|
+
"导出": "后置 = 本表的反向(脚本算);没有「平行」段。",
|
|
5
|
+
"version": 1,
|
|
6
|
+
"updatedAt": "<YYYY-MM-DD HH:MM>",
|
|
7
|
+
"coverage": {
|
|
8
|
+
"<第 1 层类值,例:深度学习>": { "done": [], "todo": ["<例:L1>", "<例:L2>"] }
|
|
9
|
+
},
|
|
10
|
+
"edges": [
|
|
11
|
+
{ "from": "<前置知识点名>", "to": "<后置知识点名>", "reason": "<≤30 字:to 依赖 from 的那一步>" }
|
|
12
|
+
]
|
|
13
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# <类值> <下一层类值>(MOC)
|
|
2
|
+
|
|
3
|
+
> 本文件是聚合产物:机器区由 `aggregate.mjs` 从「知识点的 `归属` + `sys/graph.json`」生成并覆盖;手写区脚本永不碰。
|
|
4
|
+
|
|
5
|
+
<!-- AUTO:BEGIN -->
|
|
6
|
+
- [[<相对工作区根的知识点路径>.md|<知识点>]] —— <一句话,抄自该篇的 `## 一句话`>
|
|
7
|
+
<!-- AUTO:END -->
|
|
8
|
+
|
|
9
|
+
## 主线(手写区)
|
|
10
|
+
|
|
11
|
+
<这一讲的主线 / 脉络,agent 或人写>
|
|
12
|
+
|
|
13
|
+
## 脉络图(手写区)
|
|
14
|
+
|
|
15
|
+
<可选>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
类型: 知识点
|
|
3
|
+
分类: ["<类路径 1>/<类路径 2>"]
|
|
4
|
+
归属: ["[[<相对工作区根的来源文件路径>|<人类可读别名>]]"]
|
|
5
|
+
aliases: ["<英文名>"]
|
|
6
|
+
标签: [<标签>, <标签>]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# <中文名> <英文名>
|
|
10
|
+
|
|
11
|
+
## 一句话
|
|
12
|
+
|
|
13
|
+
<一句话说清它是什么>
|
|
14
|
+
|
|
15
|
+
## 核心内容
|
|
16
|
+
|
|
17
|
+
<正文>
|
|
18
|
+
|
|
19
|
+
## 前置知识
|
|
20
|
+
|
|
21
|
+
- [[<相对工作区根的知识点路径>.md|<前置知识点>]] —— <≤30 字理由,与 sys/graph.json 的 reason 逐字一致>
|
|
22
|
+
|
|
23
|
+
## 后置知识
|
|
24
|
+
|
|
25
|
+
_(由图反算,不手写)_
|
|
26
|
+
|
|
27
|
+
## 易错点 / 考点
|
|
28
|
+
|
|
29
|
+
- <易错点>
|
|
30
|
+
|
|
31
|
+
## 讲义出处
|
|
32
|
+
|
|
33
|
+
<哪份材料、第几页 / 第几张 slide>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"用途": "本文件是卷面参数表:每个课程的每场考试各一条(期中 / 期末 / in-class / coursework 形状不同,必须分开),出题时从这里抄。",
|
|
3
|
+
"考试": [
|
|
4
|
+
{
|
|
5
|
+
"课程": "<课程名>",
|
|
6
|
+
"考试": "<例:期中 / 期末 / in-class>",
|
|
7
|
+
"时长": "<抄自材料>",
|
|
8
|
+
"总分": "<抄自材料>",
|
|
9
|
+
"题数": "<抄自材料>",
|
|
10
|
+
"题型与分值分布": "<抄自材料>",
|
|
11
|
+
"来源": "<抄自哪份文件>"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"备注": "没有往年卷时用默认出卷法(判断题 + 每题说明理由),并在该条写明。"
|
|
15
|
+
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# mastery-loop 配置
|
|
2
|
-
|
|
3
|
-
> 由 `mastery-loop-setup` 在**首次初始化**时写入。
|
|
4
|
-
> 之后 `mastery-loop` **有变动时读** —— 路径按需直接读,读不到就问;**成员选择与语言标准定下就不再问**。
|
|
5
|
-
|
|
6
|
-
## 1 · 路径
|
|
7
|
-
|
|
8
|
-
- **材料根目录**:<绝对路径>
|
|
9
|
-
- **知识库根目录**:<绝对路径>
|
|
10
|
-
|
|
11
|
-
> 🔒 本文件含本机真实路径。**要不要提交进 git,你自己决定** —— 发布出去的 skill 包里不含任何真实路径。
|
|
12
|
-
|
|
13
|
-
## 2 · 每门课的类别成员选择
|
|
14
|
-
|
|
15
|
-
只有**没有默认成员**时才需要问(默认成员:建库参考 = **讲义**,出题参考 = **往年试卷**)。
|
|
16
|
-
|
|
17
|
-
| 课程 | 建库参考 | 出题参考 |
|
|
18
|
-
| --- | --- | --- |
|
|
19
|
-
| <课程名> | <讲义 / 教学大纲 / 课件 / 教科书章节> | <往年试卷 / 答案 / Lab sheet / Worksheet / Assessment 结构> |
|
|
20
|
-
|
|
21
|
-
## 3 · 语言标准
|
|
22
|
-
|
|
23
|
-
**按产物的 6 个类别分别定。** 用户可以用自然语言回答(「全都中英双语对照」这种也算)。
|
|
24
|
-
|
|
25
|
-
| 类别 | 含什么 | 标准 |
|
|
26
|
-
| --- | --- | --- |
|
|
27
|
-
| **1 知识点笔记** | 正文 / 标题 / `aliases` / MOC / 索引 | |
|
|
28
|
-
| **2 出的题** | 题干 / 选项 | |
|
|
29
|
-
| **3 批改与解析** | 给分表 / 解析 / 薄弱点定位 | |
|
|
30
|
-
| **4 记录性文件** | `ledger.md` / `errors.md` / `paper-format.md` / `error-taxonomy.md` | |
|
|
31
|
-
| **5 产出** | 复习清单 / 考前 list | |
|
|
32
|
-
| **6 机制层** | frontmatter 字段名 / 本配置文件 | |
|
|
33
|
-
|
|
34
|
-
> ⚠️ **`errors.md` 里的错误原因例外**:它**默认用英文**,因为要套 ASD-STE100 的规则。
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# 失分原因分类
|
|
2
|
-
|
|
3
|
-
> ⚠️ **这里不预设类别 —— 初始就是空的,这是对的。**
|
|
4
|
-
>
|
|
5
|
-
> `errors.md` 里那些**固定表述的错误原因本身**就是统计单位。
|
|
6
|
-
> 等某个知识点的错误原因多到看不完(默认 **> 60 条**)再回来**归纳**,把类别写在这里。
|
|
7
|
-
|
|
8
|
-
## 归纳出来的类别写在这下面
|
|
9
|
-
|
|
10
|
-
<!--
|
|
11
|
-
格式建议(等真的归纳时再用):
|
|
12
|
-
|
|
13
|
-
## <类别名>
|
|
14
|
-
- 含义:
|
|
15
|
-
- 涵盖哪些错误原因:
|
|
16
|
-
- 对应的补射方向:
|
|
17
|
-
-->
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# 错误原因表
|
|
2
|
-
|
|
3
|
-
> ⚠️ **本文件由 `mastery-loop` 维护。**
|
|
4
|
-
> 是**真值**(错误历史只在这里),**删掉无法重建**。
|
|
5
|
-
|
|
6
|
-
## 两条铁律
|
|
7
|
-
|
|
8
|
-
1. **表述必须逐字一致才能被统计。** 同一个偏移犯三次,三次必须命中**同一条**。
|
|
9
|
-
新增前先**在该知识点分组内全量检索**:语义相同 → **复用原句、只追加日期**,**不许重新措辞**。
|
|
10
|
-
2. **复合错误要拆分。** 一次作答里错了思维链又错了答案 → **两条**。
|
|
11
|
-
|
|
12
|
-
## 写法(错误原因用英文)
|
|
13
|
-
|
|
14
|
-
按 **ASD-STE100** 的规则写(`mastery-loop` 声称的是「尽可能按 STE 规则写」,**不是**「符合 ASD-STE100」):
|
|
15
|
-
|
|
16
|
-
- 句式优先 **`把 A 当成 B`**(概念混淆类);其余用 **`<动作> + <对象>`**
|
|
17
|
-
- **一句只写一个偏移** —— 出现 `and / but / because / so / then` 就是两个命题,必须拆
|
|
18
|
-
- **不超过 20 词**(Rule 5.1);**名词短语不超过 3 词**(Rule 2.1)
|
|
19
|
-
- **不写**:题号、具体数字、时间词(`today / last time`)、第一人称、情绪词(`careless`)
|
|
20
|
-
- **动词开头**,且**必须带对象**(禁 `wrong`、`didn't know` 这种空动词)
|
|
21
|
-
- **指代不悬空** —— `it / this / the former` 必须在同一行找得到所指
|
|
22
|
-
- **「概念混淆」必须写出 A 和 B** —— 只写 `concept confusion` 等于没写
|
|
23
|
-
|
|
24
|
-
## 结构(**先按知识点分组,再按错误原因分组**)
|
|
25
|
-
|
|
26
|
-
```markdown
|
|
27
|
-
# 错误原因表
|
|
28
|
-
|
|
29
|
-
## [[核技巧]]
|
|
30
|
-
|
|
31
|
-
### forgot to normalise before comparing
|
|
32
|
-
- 2026-10-09
|
|
33
|
-
- 2026-10-11
|
|
34
|
-
|
|
35
|
-
### treated explicit inner product as the kernel value
|
|
36
|
-
- 2026-10-11
|
|
37
|
-
|
|
38
|
-
## [[梯度]]
|
|
39
|
-
|
|
40
|
-
### took steepest ascent for steepest descent
|
|
41
|
-
- 2026-10-09
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## 维护规则
|
|
45
|
-
|
|
46
|
-
- **去重键 = 知识点 + 错误原因** → 同一句话在两个知识点上**各自成条**
|
|
47
|
-
- 重复出现 → **只在该条目下追加日期**,不新增条目
|
|
48
|
-
- **单个知识点上限 60 条**;超了就该回头归纳,把类别写进 `error-taxonomy.md`
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# 索引 —— 主题 → 知识点
|
|
2
|
-
|
|
3
|
-
> ✅ **本文件是派生缓存,删了可以重建**(真值在每篇知识点的 `主题` 字段里)。
|
|
4
|
-
> 它存在是为了**不必扫全库**。
|
|
5
|
-
|
|
6
|
-
## 更新顺序(写死,不许反向)
|
|
7
|
-
|
|
8
|
-
```
|
|
9
|
-
① 先改这里(索引)
|
|
10
|
-
② 再从索引刷新受影响 MOC 的「## 知识点清单」
|
|
11
|
-
③ 永不反向 —— 绝不因为有人手改了 MOC 清单就回写索引
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
派生链共三级:`主题` 字段(真值)→ **索引**(本文件,对 MOC 而言是真值)→ **MOC 清单**(索引的复制)
|
|
15
|
-
|
|
16
|
-
## 内容
|
|
17
|
-
|
|
18
|
-
每个主题一节,列出属于它的知识点:
|
|
19
|
-
|
|
20
|
-
## [[<主题名(MOC)>]]
|
|
21
|
-
|
|
22
|
-
- [[<知识点>]]
|
|
23
|
-
- [[<知识点>]]
|
|
24
|
-
|
|
25
|
-
> 📌 **如果这个知识库没有 MOC**,本文件就是那份清单本身 —— 第 ② 步自然消失。
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# 复习账本
|
|
2
|
-
|
|
3
|
-
> ⚠️ **本文件由 `mastery-loop` 维护。** 除了顶部的标记行和手工订正,日常不要手改。
|
|
4
|
-
> 它是**真值**(做题统计只在这里),**删掉无法重建** —— 与索引不同。
|
|
5
|
-
|
|
6
|
-
> 首次对齐:<YYYY-MM-DD> 完成 · schema v1 · 迁移 <N> 篇
|
|
7
|
-
|
|
8
|
-
| 知识点 | 是否学习过 | 做对 | 总共出过 | 熟练程度 | 最后复习日期 |
|
|
9
|
-
| --- | --- | --- | --- | --- | --- |
|
|
10
|
-
| [[<知识点>]] | 否 | — | — | NULL | — |
|
|
11
|
-
| [[<知识点>]] | 是 | 3 | 5 | 60% | <YYYY-MM-DD> |
|
|
12
|
-
|
|
13
|
-
## 列的含义
|
|
14
|
-
|
|
15
|
-
- **知识点** —— `[[wikilink]]`,纯名字,不带路径、不带 `.md`
|
|
16
|
-
- **是否学习过** —— 是 / 否(`否` 时后面几列都是 `—` / `NULL`)
|
|
17
|
-
- **做对** —— 次数。**判定口径**:思维链对 **且** 答案对,才记「做对」(**蒙对不算**)
|
|
18
|
-
- **总共出过** —— 次数
|
|
19
|
-
- **熟练程度** —— `做对 / 总共出过`,百分比展示;**没学过的写 `NULL`**(不是 0%)
|
|
20
|
-
- **最后复习日期** —— 用于 ① 复习清单排序 ② 10%「已掌握点」挑最久没碰的
|
|
21
|
-
|
|
22
|
-
## 达标规则(供回看)
|
|
23
|
-
|
|
24
|
-
- 单个知识点**达标** = `总共出过 ≥ 5` **且** `熟练程度 ≥ 本次目标正确率`
|
|
25
|
-
- `总共出过 < 5` → 标「**样本不足**」,继续出题,**不算达标、也不算失败**
|
|
26
|
-
- 达标是**逐点**判断的,不是单轮卷面分
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# 卷子格式
|
|
2
|
-
|
|
3
|
-
> ⚠️ **生成卷子时从这里查对应考试的那一条** —— `mastery-loop` **不再每轮从往年卷现抄参数**。
|
|
4
|
-
> 由 `mastery-loop-setup` 在首次初始化时生成;**有变动时读**。
|
|
5
|
-
|
|
6
|
-
## 结构:**每个课程的每个考试各一条**
|
|
7
|
-
|
|
8
|
-
(期中 / 期末 / in-class / coursework 形状不同,必须分开)
|
|
9
|
-
|
|
10
|
-
## <课程名>
|
|
11
|
-
|
|
12
|
-
### <考试名>
|
|
13
|
-
|
|
14
|
-
- **时间**:<分钟>
|
|
15
|
-
- **总分**:<分>
|
|
16
|
-
- **题数**:<题>
|
|
17
|
-
- **题型**:<判断 / 定义 / 计算 / 画图 / 证明 / 简答…>
|
|
18
|
-
- **分值分布**:<…>
|
|
19
|
-
- **来源**:<抄自哪份往年卷;或「**无往年卷 → 用默认出卷法**」>
|
|
20
|
-
|
|
21
|
-
### <考试名>
|
|
22
|
-
|
|
23
|
-
…
|
|
24
|
-
|
|
25
|
-
## 没有往年卷时:默认出卷法
|
|
26
|
-
|
|
27
|
-
**判断题 + 每题说明理由。**
|
|
28
|
-
(这也正好接上思维链要求 —— 「说出为什么」就是思维链。)
|
|
29
|
-
|
|
30
|
-
> 📌 优先**问用户**该怎么办;用户没有更好的主意时,用上面这个默认。
|