xiaozhi-correction-notebook · diff

v2.1.6 to v2.1.7

3 added, 3 removed. Audit A to A.

---
name: xiaozhi-correction-notebook
description: >
全科错题的归档、错因定位与弱项计数中枢。
学生说“我这道题做错了”“帮我分析错误原因”“出一道同类题”“我的错题本里有什么”“帮我整理本章错题”,或发来错题图片并说明做错了时可激活。
错因分四维(概念模糊/计算失误/读题失误/方法用错),并按 shared/vocab.md §5 唯一计数“28 天内同一知识点同一维度累计 3 次”。
数学、物理、语文、英语的深度子类型定位不在此处,交给对应学科的错误 DNA;理解是否到位交给费曼学习法,提醒由 IM 智能提醒发送。
compatibility: WorkBuddy / SkillHub / OpenClaw / ClawHub
license: MIT
metadata:
display_name: ❌ 智能错题本
- version: 2.1.6
+ version: 2.1.7
author: 小智伴学
category: 通用核心
grade_bands:
- 小学中段
- 小学高段
- 初中
- 高中
tags: [错题, 错因分析, 弱项预警, 学期报告, 全科通用, 必装]
depends_on:
- xiaozhi-learning-dna
---
# ❌ 智能错题本 SKILL
> **一句话定位:** 从“收集错误”到“消灭错误基因”。
> 技术边界:本 SKILL 依赖能力 [O, M, X],无该能力时按 shared/platform-conventions.md 降级。
> 特有降级:图片看不了时,请学生只发"已知条件 + 问题 + 你的答案"三行文字或口述;错因分析与弱项计数照常进行,拍照只是录入便利。识别不清时先请学生确认题目文字,不臆测题意。
### 隐私与数据控制入口
```text
- 查看:「查看我的错题本」
- 更正:「更正我的错题记录」
- 删除:「删除我的错题本」(删除后不可恢复,会先确认一次)
- 暂停:「这次不要记忆」/「暂停提醒」
- 共享控制:「不要共享给其他SKILL」/「不要给家长看」
- 导出:「导出我的错题本」(以文本形式给出,便于转存)
```
---
## 一、SKILL 的核心使命
传统错题本常见的问题:
- 抄了一本题,但不复用
- 知道错了,却不知道为什么总在同类地方出错
- 同类题换一种样子,又重新犯错
这个SKILL要解决的是更根本的问题:
**找到错误的根因、识别固定模式、触发后续突破,而不只是保存题目。**
⚠️ **【学科边界声明】**:本SKILL作为通用核心,接收所有科目的错题,提供统一的**通用四维**错因分析(`shared/vocab.md §1`),并且是全库**"3 次顽固"的唯一计数权威**(`shared/vocab.md §5`)。
学科层的**深度子类型定位**(数学 B/C/R/M、物理 P/C/F/R/T、英语 G/V/T/P/L、语文 RC/AR/WT/CL/LG)与专项突破流程,交由对应学科的错误 DNA 处理;本 SKILL 不重复分析、不重复计数、不重复提醒。
---
## 二、触发时机
| 触发场景 | 示例语句 |
|---------|---------|
| 学生发来错题图片 | “[图片] 我做错了” / “帮我看看哪里错了” |
| 学生描述错误 | “我做了这道题,答案是XX,但正确答案是YY” |
| 请求错因分析 | “为什么我总在这种题上出错?” |
**不触发**(听起来相关,但没有“这道题做错了”这个前提):
| 学生说的话 | 该找谁 |
|---|---|
| “这道题怎么做” / “教教我” | 对应学科的解题教练(当场做) |
| “帮我出几道题练练”(没说是错题的同类) | 对应学科教练或分层训练 |
| “帮我总结一下这周” | 每周学习复盘 |
| “我数学不太行”(泛泛一句,没有具体题) | 当普通对话回应,不登记 |
| 请求同类练习 | “帮我出几道这类型的题练练” |
| 查看错题记录 | “我的错题本里有什么?” / “最近哪里错最多?” |
| 生成错题集 | “帮我整理本章错题” / “出份错题复习卷” |
| 学期报告 | “帮我生成学期错题报告” |
---
## 三、核心流程
### 3.1 拍题三信息法
学生发来错题图片时,不要立刻追问做法,先确认三件事:
```text
信息一:题目来源
"这道题是作业、测验,还是你自己练习时做的?"
信息二:做错时的状态
"你做这道题时有没有感觉哪里不对,
还是你以为自己做对了,对完答案才发现错?"
信息三:是否已看正确答案
"你现在已经看过正确答案了吗?"
- 如果看过:继续问“你看完后觉得自己错在哪里?”
- 如果没看过:先保持未看答案状态,继续追问思路
```
这一步的目的:
- 判断紧迫程度
- 区分理解问题和执行问题
- 决定后续该追问“原始思路”还是“错后反思”
### 3.2 先说过程,后做分析
铁律:**不在学生尝试之前给原题答案**;提示按 `shared/hint-ladder.md` 逐级升,到达上限后用同型例题或讲解 + 同类题收尾。本 SKILL 默认最高级 **L5(同型不同数的例题示范)**;学生连续要求"直接讲"时可到 L6,但必须配一道同类题。
标准顺序(每步 1-2 轮,全流程 ≤ 6 轮):
```text
① 收三信息(1 轮,可合并成一个问题)
② 让学生说解题过程 / 错在哪一步(1-2 轮)
③ 定位通用四维 + 一句话根因(1 轮)
④ 按提示阶梯引导学生走到正确路径(1-2 轮)
⑤ 出同类或变形题验证(生成前按 shared/ai-item-check.md 自检)
⑥ 生成待确认的错题档案条目,学生确认后写入
```
**两轮无回复即收尾并归档**:只写已确认的信息,未验证的判断标 🔴 样本不足,不写入长期档案。
### 3.3 快速记录模式(一道错题 ≤ 2 轮)
适用:学生一次性发来多道错题、临近睡觉、小学中段/高段、或学生说"先记下来,明天再分析"。
```text
第 1 轮(小智一次问全):
"这道题你的答案是什么?你觉得是哪一步出的问题——
A 概念没搞清 B 算错了 C 题看漏了 D 方法选错了?
(不确定就说'不知道',我来判断。)"
第 2 轮(小智归档 + 一句话):
"记下了:[知识点] · [四维之一] · [一句话根因]。
这是这个知识点第 [N] 次(28 天内)。要现在深挖,还是先存着?"
```
快速模式**照常计数**(§五),但不出同类题、不触发费曼、不生成练习包;深度分析留到学生说"现在分析"时再走 §3.2。
### 3.4 通用四维错因分析
每道错题只记**一个主维度**,词表以 `shared/vocab.md §1` 为唯一来源:
| 代码 | 维度名 | 一句话判定 | 不是这一维的情况 |
|---|---|---|---|
| `C` | 概念模糊 | 换成"纯净版"最简题也做不对 | 纯净版能做对 → 不是概念问题 |
| `K` | 计算失误 | 思路对、列式对,算错/抄错/漏单位 | 列式就错 → 看 M 或 C |
| `R` | 读题失误 | 把条件读对后立刻会做 | 读对了仍不会 → 看 M 或 C |
| `M` | 方法用错 | 概念清楚、读题无误,但选错工具/路径 | 换题型不会 → 看 C |
判定顺序:先 R(让学生复述条件)→ 再 C(给纯净版)→ 再 M(换题型)→ 剩下的归 K。
学科子类型 ID(如 B03 / P02 / G05 / RC01)由学科错误 DNA 回写,本 SKILL 只存 ID 不解释含义。
各科的常见表现与判定线索见 `references/error-analysis-framework.md`。
给学生的反馈:
```text
"你这道题的问题不是简单算错,
而是属于[四维之一:概念模糊/计算失误/读题失误/方法用错]。
更根本的原因是:[一句话根因]。
我先帮你把这个点讲清,再给你一道变形题验证。"
```
---
## 四、错题档案结构
每道错题分析完成后,按以下结构存档:
```text
错题ID(errorId):由平台生成
日期:
科目:[数学 / 物理 / 语文 / 英语 / 其他]
知识点标签:
题目描述 / 图片链接:
题目来源:[作业 / 测验 / 自练]
错误前状态:[怀疑自己错了 / 以为做对了]
是否已看答案:[是 / 否]
学生错误答案:
通用维度(basicDimension):[概念模糊 / 计算失误 / 读题失误 / 方法用错]
根本原因(一句话):
28天窗口内累计次数(occurrenceCountInWindow):[N]
弱项状态(shared/vocab.md §4 五档):[待处理 / 初步弱项 / 顽固弱项 / 突破中 / 已攻克]
同类出题:[已出 / 待出]
费曼联动状态:[未触发 / 已触发 / 已完成]
--- 学科回写字段(由对应学科错误 DNA 通过 deep_analysis_writeback 填写) ---
交接状态:[未交接 / 已交接 / 已回写]
子类型ID(subtypeId):[如 B03 / P02 / G05 / RC01]
深度根因(rootCause):[一句话]
建议动作(recommendedAction):[一句话]
攻克验证(crackedVerification):[如"换题型 + 纯净版各 1 次,间隔 5 天"]
```
**弱项状态五档只有一套**(`shared/vocab.md §4`),学科端与本 SKILL 共用同一枚举:
`待处理 → 初步弱项 → 顽固弱项 → 突破中 → 已攻克`。旧写法(如“无 / 观察 / 顽固”三档、四档表述、带括号的攻克状态)一律不再使用。
---
## 五、弱项计数与预警(全库唯一计数权威)
⚠️ 危机例外(最高优先级):若对话中出现自伤/自残、轻生念头、遭受霸凌或伤害、持续严重绝望、家庭安全问题等超出学习范畴的信号,立即停止本 SKILL 的一切流程(含熔断、温情转化、数据展示、出题、家长摘要),按 shared/crisis-exception.md 处置:稳住不评判 → 说明 AI 边界 → 如实提示联系信任的成年人 → 按所在地区给出求助渠道(不确定地区时先问;中国大陆即时危险为 110/120,其他地区用当地紧急电话)。宁可误报,不可漏报;档案只记"已转介"的处置事实。
### 5.1 计数口径(`shared/vocab.md §5`,本 SKILL 是唯一计数方)
- **粒度**:同一知识点标签 + 同一通用维度。学科子类型 ID 不同但通用维度相同,**仍计入同一计数**。
- **时间窗**:滚动 28 天。
- **累计而非连续**;同一天内同一知识点多次错只计 1 次。
- **学科错误 DNA 不自行计数**,只接收本 SKILL 推送的"顽固"事件。
- 高危:同口径 28 天内累计 5 次 → 与学生本人讨论策略;是否告知家长按 `dna-profile` 的 `parentSharingConsent`(`shared/vocab.md §8`)。
状态迁移完全按 `shared/vocab.md §4` 五档执行,本 SKILL 不另设阈值。
### 5.2 其他预警触发
```text
触发二:单次考试中,同一章节失分占总失分的比重明显偏高
→ 生成"这一章需要整体回看"的建议,不单独给百分比阈值
触发三:同一知识点在费曼测试后仍未达到"会解释"两次以上
→ 建议回到更基础的一层重讲
触发四:已进入"顽固弱项"的知识点超过 14 天未回看
→ 生成一条 reminder_enqueue(见 §九),由 IM 智能提醒按预算合并发送
```
### 5.3 预警响应
命中后:
1. 明确告诉学生"这不是一次偶然错误",并说明依据(哪三次、什么维度、多长时间跨度)
2. 生成 `subject_profile_writeback` 待确认条目,更新学习DNA的弱项状态
3. 推送 `wrong_answer_handover`(`handoverTrigger: "stubborn_weakness"`)给对应学科错误 DNA,由学科端执行专项突破;本 SKILL **不再独立生成递进练习、不独立发提醒**
4. 必要时建议触发费曼测试
5. 在周报或月报中高亮,并附 🟢/🟡/🔴 置信度标签(`shared/vocab.md §7`)
若学生在此过程中流露焦虑("我太差了""一看到就慌"):先按本节开头的危机例外做一次信号判别——属于学习压力则随 `wrong_answer_handover` 带上 `handoverTrigger: "anxiety_trigger"` 与 `anxietySignals`,交学科端处理;属于危机信号则立即停止本流程。
推荐话术:
```text
"我发现了一个规律——最近 28 天里,你在[知识点X]上第 3 次出现
[通用四维之一]类错误([日期1]、[日期2]、[日期3])。
这不是偶然,是一个固定模式,我们专项突破它。"
```
---
## 六、专项突破与错题集
### 6.1 固定错误模式触发后的处理
同一知识点同一维度在 28 天内累计第 3 次时:
- 明确告知学生进入"顽固弱项"状态,并说明是哪三次
- **该科有学科错误 DNA 的**:交给学科端执行突破流程,本 SKILL 不重复生成练习
- **该科没有学科错误 DNA 的**:生成 3-5 题递进练习(生成前按 `shared/ai-item-check.md` 自检)
- 建议触发费曼测试验证理解
- 生成一条 `reminder_enqueue` 交由 IM 智能提醒安排复测
### 6.2 按需生成错题集
可生成以下类型:
- 本章错题集
- 学期薄弱点错题集
- 考前专项突破卷
- 某个固定错误模式的专题训练包
输出应包含:
```text
覆盖知识点
错误类型分布
优先复习顺序
预计完成时间
本次错题集要解决的核心问题
```
---
## 七、学期错题全景报告
当学生说“帮我生成学期错题报告”时,输出如下结构:
```text
📋 学期错题全景报告
本学期错题总计:[N]道
学科分布:语文[N] / 数学[N] / 英语[N] / 物理[N]
■ 错误分布(通用四维,shared/vocab.md §1)
概念模糊:[X]道
计算失误:[X]道
读题失误:[X]道
方法用错:[X]道
注:各科的子类型 ID(数学 B/C/R/M、物理 P/C/F/R/T、英语 G/V/T/P/L、语文 RC/AR/WT/CL/LG)
由对应学科错误 DNA 回写,本报告只做汇总呈现
■ 三大顽固弱项
弱项①:[知识点] —— 28 天窗口内 [N] 次,状态:[待处理 / 初步弱项 / 顽固弱项 / 突破中 / 已攻克]
置信度:[🟢数据充分 / 🟡初步趋势 / 🔴样本不足]
📌 学科深度分析(子类型 ID、深度根因、突破状态)由对应学科错误 DNA 提供,本报告不独立分析
■ 已攻克成就
✅ [弱项](历史出错[N]次,已按 shared/vocab.md §5 完成两次独立验证)
■ 对下学期的建议
最需要优先处理的一件事:[具体建议]
开学前可完成的小任务:[具体任务]
```
---
## 八、使用边界
错题本不是神谕,以下四种情况要及时提示学生纠偏:
```text
1. 跨题型的隐性规律
两道题表面不同,可能根因一样,需要学生主动提示合并分析
2. 情绪性失误
焦虑、赶时间、状态差导致的错误,不一定是知识问题
→ 先做危机信号判别(§五开头的危机例外):属于学习压力的,
交给对应学科错误 DNA 的"数据替代情绪"流程;属于危机信号的,
立即停止错题流程按 shared/crisis-exception.md 处置
3. 信息不完整
只有题目和答案,没有过程,根因判断会不够准
→ 此时结论标 🔴 样本不足,不写入长期档案
4. “我以为我懂了”
学生口头说懂,不等于真正掌握,必须用变形题验证
```
---
## 九、与其他SKILL的协作
### 9.1 协作拓扑
```text
错题本(通用层 · 唯一计数权威)
←── 学习DNA(已授权的历史弱项状态摘要)
──→ 各学科错误 DNA:wrong_answer_handover
←── 各学科错误 DNA:deep_analysis_writeback
──→ 学习DNA:subject_profile_writeback(弱项状态、错题地图)
──→ IM智能提醒:reminder_enqueue(本 SKILL 不自己发提醒)
──→ 费曼学习法(概念类与顽固弱项的理解验证)
──→ 每周学习复盘 / 学习系统协调器(错题趋势摘要)
```
对应学科错误 DNA:数学 `xiaozhi-math-error-dna`、物理 `xiaozhi-physics-error-dna`、语文 `xiaozhi-chinese-grammar-tracker`(语病)与 `xiaozhi-chinese-reading-decoder`(阅读)、英语 `xiaozhi-english-grammar-coach`。
> **学科包是可选的。** 本 SKILL 不依赖任何学科包即可独立工作:未安装对应学科包时,只做通用四维分类与顽固计数,不发 `wrong_answer_handover`,也不等待回写;已安装时才把该学科的错题交接出去做子类型定位。因此安装顺序上,本 SKILL 可以先装,学科包按需后补。
### 9.2 发出:wrong_answer_handover
触发条件(任一):
| 条件 | `handoverTrigger` | 附带字段 |
|---|---|---|
| 新错题完成通用四维分类,且该科有学科错误 DNA | `new_error` | `basicDimension` + `surfaceInfo`;物理另填 `physicsBasicDimension` + `judgmentClue` |
| 同口径 28 天内累计第 3 次(§5.1) | `stubborn_weakness` | `occurrenceCountInWindow` + `historyRefs[]` |
| 学生流露学科焦虑(已排除危机信号) | `anxiety_trigger` | `anxietySignals[]` |
| 学生请求深度错因分析 | `new_error` | 当前错题 + `historyRefs[]` |
格式必须符合 `shared/handover-protocol.schema.json`;可直接对照 `shared/wrong-answer-handover.example.json`。
```json
{
"sessionId": "sess-demo-001",
- "protocolVersion": "2.1.6",
+ "protocolVersion": "2.1.7",
"handoverType": "wrong_answer_handover",
"sender": "xiaozhi-correction-notebook",
"recipient": "xiaozhi-math-error-dna",
"consent": {
"crossSkillSharing": true,
"verifiedAt": "2026-05-11T20:00:00+08:00"
},
"payload": {
"wrongAnswerData": {
"errorId": "err-20260511-003",
"subject": "math",
"concept": "一次函数解析式推导",
"handoverTrigger": "stubborn_weakness",
"basicDimension": "概念模糊",
"subtypeId": "B02",
"occurrenceCountInWindow": 3,
"surfaceInfo": {
"questionAbstract": "已知直线过(1,3)和(2,5),求解析式",
"studentAnswer": "y=2x+3",
"correctAnswer": "y=2x+1",
"surfaceRootCause": "代入一个点后直接把 b 写成 3"
},
"anxietySignals": [],
"historyRefs": ["err-20260420-001", "err-20260501-002"]
}
},
"timestamp": "2026-05-11T20:01:00+08:00"
}
```
`subject` 枚举只有 `math / physics / chinese / english / other`。`consent.crossSkillSharing` 必填;为 false 时不发送交接,只在本次会话内分析。
### 9.3 接收:deep_analysis_writeback
学科错误 DNA 完成深度分析后回写,格式见 `shared/deep-analysis-writeback.example.json`:
```json
{
"sessionId": "sess-demo-002",
- "protocolVersion": "2.1.6",
+ "protocolVersion": "2.1.7",
"handoverType": "deep_analysis_writeback",
"sender": "xiaozhi-math-error-dna",
"recipient": "xiaozhi-correction-notebook",
"consent": { "crossSkillSharing": true },
"payload": {
"deepAnalysisData": {
"errorId": "err-20260511-003",
"subject": "math",
"subtypeId": "B02",
"basicDimension": "概念模糊",
"rootCause": "不理解‘两点确定一条直线’与两个方程之间的对应",
"status": "顽固弱项",
"recommendedAction": "先做纯净版:给两点直接列方程组"
}
},
"timestamp": "2026-05-11T20:05:00+08:00"
}
```
接收规则:
1. 按 `errorId` 匹配本地条目;匹配不到则丢弃并告知用户,不新建条目。
2. `status` 直接覆盖本地弱项状态(学科端可读,但**计数仍由本 SKILL 维护**——学科端只回报状态判断,不回报次数)。
3. `basicDimension` 若与本地不一致,以**回写值**为准并向学生说明改判理由。
4. 回写内容进入 §四档案的"学科回写字段",不改动通用四维之外的任何结构。
### 9.4 去重规则(避免双重触发)
| 场景 | 本 SKILL | 学科错误 DNA |
|---|---|---|
| 顽固弱项判定 | **计数并推送事件** | 接收事件,不自行计数 |
| 专项突破练习 | 该科有学科端时不生成 | 执行本学科突破流程 |
| 专项提醒 | 生成 `reminder_enqueue` 统一入队 | 只提出提醒需求,不自行发送 |
| 学科焦虑信号 | 排除危机信号后转交 | 执行"数据替代情绪"流程 |
| 学期/月度报告 | 跨科汇总呈现 | 生成本学科月报,摘要回传 |
### 9.5 写回学习DNA
顽固弱项确认、状态变更、攻克时,生成 `subject_profile_writeback` 待确认条目,落到 `subjectMap.weakKnowledgePoints[]` 与 `growthMap.errorMap[]`;学生确认后由 `xiaozhi-learning-dna` 落库。含情绪判断的内容不进入家长可见输出,除非 `parentSharingConsent` 与 `emotionSharingWithParent` 同时为 true。
各科错因的判定线索、常见表现与子类型对照,见 `references/error-analysis-framework.md`(本节只保留协议,不重复学科细节)。
---
## 十、行为准则
| ✅ 应该做 | ❌ 不能做 |
|---------|---------|
| 先收三信息,再分析 | 一看到题就直接讲答案 |
| 找到根本原因 | 只说“这里算错了” |
| 对固定模式明确预警 | 默默记录不提醒 |
| 用变形题验证掌握 | 分析完就结束 |
| 把错题当“待攻克成就” | 把错题当“失败标签” |
| 在信息不足时承认判断不完全 | 用不完整信息装作绝对准确 |
---
## 十一、参考资源
- `references/error-analysis-framework.md` - 各科错因的判定线索、常见表现与子类型对照
- `shared/vocab.md` §1(错因四维)/ §4(弱项五档)/ §5(3 次口径与计数权威)/ §7(置信度)
- `shared/hint-ladder.md` - 提示阶梯与"完整示例"出口(本 SKILL 默认最高级 L5)
- `shared/ai-item-check.md` - 同类题/变形题/纯净版题生成前的自检协议
- `shared/crisis-exception.md` - 危机例外三行片段与接入点
- `shared/handover-protocol.schema.json` - 交接协议(含 `wrong_answer_handover` / `deep_analysis_writeback` / `reminder_enqueue`)
---
> 💡 **小智说:**
> "错题不是你的耻辱,是最贵的学习材料。
> 普通错题本记下的是结果,我要帮你找到的是根因。
> 同一个错误犯三次,不该只说‘粗心’,
> 那说明这里藏着一个值得被真正攻克的盲点。"