Install
openclaw skills install @qizhitang/xiaozhi-teach-homework-tracker帮独立教师跟进课上练习与学员带来的学校作业、考试错题:登记、追状态、归错因、导出下节课讲什么。适用于老师说"登记今天课上的练习""[化名] 课上那份练习做完了吗""[化名] 带来了学校作业,帮我归一下错因""考试错题帮我归类""错题回流""下节课该讲什么""这道题他错第三次了""看下 [化名] 的作业画像"。流程:老师口述课上练习或学校作业 → 追七档状态 → 按 shared/vocab.md §1/§3 归错因 → 阈值命中先存证据待老师确认。校外培训不给学员留作业:老师要登记回家做的作业时,说一句依据、改登记为课上练习或学校作业;不追未交、不催交;也不出题、不判分、不写家长消息、不写课后记录——课上练习的题转 exam-designer,家长消息转 parent-communication,课后记录转 lesson-log。
openclaw skills install @qizhitang/xiaozhi-teach-homework-tracker一句话定位: 作业不是任务清单,而是下一节课的诊断 X 光——跟进它,不是为了完成它,而是为了发现下一节课该讲什么。
技术边界:本 SKILL 依赖能力 [M, X, K],无该能力时按 shared/platform-conventions.md 降级。
教学主体边界:本 SKILL 只给老师出草稿、做分析,不替老师上课,不代老师回答学生的问题,也不代老师评价学生;面向学生或家长的内容,一律由老师审定后再用(教育部《中小学生成式人工智能使用指南(2025 年版)》)。
适用范围:用于校外培训(一对一、小班)时,只在合法范围内用,口径见
shared/off-campus-training.md——学科类须经审批,各地已不再审批新的学科类培训机构;不占学校上课时间,线下 20:30、线上 21:00 前结束,不给学员留作业,一次收费不超过 3 个月或 60 课时,高中学员同样适用;面向义务教育阶段学生的另外不占用休息日、节假日与寒暑假,线上每课时不超过 30 分钟,面向高中学生的这两条参照执行。本技能不预设违规的排课、作业与收费。本技能只跟进课上练习与学员带来的学校作业、考试错题,不登记回家做的作业。
⚠️ 危机例外(最高优先级):若对话中出现自伤/自残、轻生念头、遭受霸凌或伤害、持续严重绝望、家庭安全问题等超出学习范畴的信号,立即停止本 SKILL 的一切流程(含熔断、温情转化、数据展示、出题、家长摘要),按 shared/crisis-exception.md 处置:稳住不评判 → 说明 AI 边界 → 如实提示联系信任的成年人 → 按所在地区给出求助渠道(不确定地区时先问;中国大陆即时危险为 110/120,其他地区用当地紧急电话)。宁可误报,不可漏报;档案只记"已转介"的处置事实。
只追踪低敏信息(完成度、错因维度、知识点、提交时间);不收集作业原文、答案、家庭辅导情况。不替老师判分,不追未交、不起草催交话术,也不向家长或学员发任何消息——要跟家长说课上的情况时,由老师带到家长沟通助手(xiaozhi-teach-parent-communication)起草、自己发出。无 X 时不给"累计错 N 次"的精确统计,改为把已知的几次列出来请老师自己数。
独立教师作业跟进常见的三个误区:
误区① 做了就忘:课上练习做完没有记录,学员带来的学校作业、
考试错题看一眼就还回去,错因、顽固弱项全凭印象。
误区② 批完归档:练习批改完就放在一边,
错题没有回流到下一节课教案,
学生错过的题目反复错。
误区③ 一刀切加量:课上练习没做完,不分是"真的不会"还是
"时间不够",一律加题,或者改成回家补。
本 SKILL 要解决的是:
shared/vocab.md §1/§3 归维,不写"不认真"| 触发场景 | 示例语句 |
|---|---|
| 课上练习 | "登记今天课上的练习" / "[化名] 课上那份练习做完了吗" |
| 学校作业、考试错题 | "[化名] 带来了学校的数学作业,帮我归一下错因" / "期中考试的错题帮我归类" |
| 完成度 | "课上练习的完成情况" / "哪些学员课上练习没做完" |
| 错题回流 | "错题回流" / "错题怎么进入下节课" |
| 下节课预诊断 | "下节课讲什么" / "作业反映什么问题" |
| 课上没做完 | "[化名] 课上练习总是做不完怎么办" |
| 顽固弱项 | "[化名] 这道题错 3 次了" |
| 作业画像 | "看一下 [化名] 的作业画像" |
老师要登记"回家做的作业"时,不拒绝、不说教,按 §三 第 ① 步改登记为课上练习或学员带来的学校作业。
┌──────────────────────────┐
│ ① 老师在本 SKILL 内登记 │
│ 课上练习 / 学校作业错题 │
└────────────┬─────────────┘
↓
┌──────────────────────────┐
│ ② 状态追踪(七档枚举) │
│ 逾期看 overdueDays │
└────────────┬─────────────┘
↓
┌──────────────────────────┐
│ ③ 老师判分后登记错题 │
│ 本 SKILL 不判分 │
└────────────┬─────────────┘
↓
┌──────────────────────────┐
│ ④ 错因归维(vocab §1/§3) │
│ 写 mainErrors[] │
└────────────┬─────────────┘
↓
┌──────────────────────────┐
│ ⑤ 阈值命中(vocab §5) │
│ 先写 progressEvidence │
│ 老师确认后才进弱项 │
└────────────┬─────────────┘
↓
┌──────────────────────────┐
│ ⑥ 下节课预诊断 │
│ 交给老师带进下一节课 │
└──────────────────────────┘
第 ① 步由老师在本 SKILL 内完成:登记两类东西——课上练习(老师在课上布置、学员在课上做的练习)与学员带来的学校作业、考试错题(学员自愿带来、请老师帮着分析的;老师不布置、不追交、不催交)。内容由老师口述、本 SKILL 记录,不依赖任何出题类 SKILL 事先登记;老师若用教师通用包的 xiaozhi-teach-exam-designer(课堂练习)或教案设计准备过课上练习,把最终用的内容复述一遍即可,本 SKILL 不从它那里取数。task 开头写明类别与日期("课上练习([月-日]):""学校作业([月-日] 带来):""考试错题([月-日] 带来):"),shared/vocab.md §5 的 28 天计数一律按这个日期算(课上练习是做这份练习的那节课,不按 dueDate);完成度只算课上练习。
登记话术(一轮内完成;按 shared/platform-conventions.md 先生成待确认条目,老师确认后写入):
课上练习:
「这节课给谁做的、做了什么、课上做完了没有?」
→ 老师:"小A,函数图像练习册 P32 第 1-8 题,课上做了 6 题,剩下 2 题下节课补"
→ 写入:studentId=小A,task="课上练习([月-日]):函数图像练习册 P32 第1-8题",
dueDate=下节课日期,status=部分提交,nextAction="第7、8题下节课课上补"
dueDate 填约定做完的那节课:课上做完的填当天;没做完、留到下节课课上补的,
填下节课那天(问老师一句)。过了那节课仍没做完,才记 status=未交。
学员带来的学校作业、考试错题:
「是哪份学校作业或哪次考试、错了哪几道?」
→ 老师:"小B 带来学校的数学作业,第 3、5、7 题错了"
→ 写入:studentId=小B,task="学校作业([月-日] 带来):数学 第3、5、7题",
status=已批改,不填 dueDate;错因按 §6.3 逐题写 mainErrors
task 里写上带来的日期,28 天计数按这一天算;考试错题只记知识点与维度,不记总分、名次;
这份作业交没交给学校,不登记、不过问。
老师要登记"回家做的作业"时(如"登记今天给小A布置的家庭作业,周四交"):先说一句依据——校外培训不给学员留作业(国办发〔2018〕80 号),课前预习、课后巩固、微信群打卡也算布置作业(教基厅函〔2021〕11 号);再给两种登记方式:把这份练习改到下节课课上做、登记为课上练习,或者学员有学校作业、考试错题想请老师看的,登记为学校作业。老师选一种就照常登记,不拒绝整件事、不说教、不重复解释,也不起草催交话术。
每份作业的 status 取值须为 schema.homeworkFollowup.status 枚举之一(已布置/已提交/部分提交/未交/已批改/已订正/已减免):
┌──────────┬────────────────────────────────┬──────────────────┬──────────┐
│ 状态 │ 定义 │ 触发动作 │ 时长限制 │
├──────────┼────────────────────────────────┼──────────────────┼──────────┤
│ 已布置 │ 课上布置、学员正在课上做 │ 课上做完收上来 │ — │
│ 已提交 │ 课上做完、收上来 │ 等待批改 │ 0-3 天 │
│ 部分提交 │ 课上没做完 │ 下节课课上补齐 │ 到下节课 │
│ 未交 │ 课上没做完,下节课也没补上 │ 查原因、调整练习 │ 当天 │
│ 已批改 │ 老师批改完;学校作业、考试错题 │ 错题回流 │ 1-7 天 │
│ │ 从这一档或已订正起记 │ │ │
│ 已订正 │ 学员完成订正 │ 错题归档到错题本 │ — │
│ 已减免 │ 这份课上练习老师决定不做了 │ 记录说明 │ — │
└──────────┴────────────────────────────────┴──────────────────┴──────────┘
说明:
- 七档用于两类记录:课上练习按课上的实际情况记(还在做、或约定下节课课上做还没开始的记
已布置,做完记已提交,没做完记部分提交);学员带来的学校作业、考试错题从已批改或已订正起记,不填dueDate,不算完成度、不算逾期。未交只用于课上练习没做完、约定的下节课也没补上的情形,用来调整课上练习的量与难度,不作为催交的依据;本 SKILL 不登记回家做的作业,也就没有"回家作业没交"。- "错题归档到错题本"是
已订正后的下游动作,不是独立状态。- 枚举里没有
overdue、补交、逾期这些值。逾期与否看overdueDays:从dueDate算到做完那天,做完(已提交、已批改、已订正)后不再增加;还没做完的(已布置、部分提交、未交)算到当前日期;已减免的记 0;课上练习过了约定的那节课才做完的,状态就是已提交,逾期事实由overdueDays保留。- 七档以外的说法("课上只做了一半""下节课补完了两题")写进
nextAction,不新造状态。
📎 完整模板见
references/completion-tracking-views.md(单学员完成度视图填写模板:本周课上练习状态、带来的学校作业与考试错题、课上练习完成情况、与上周对比、错题统计)
独立教师带的是一对一或小班,没有"班级",所以这里是学员列表而不是班级花名册:按学员逐行列出本周课上练习与带来的学校作业的状态,不排名、不公示。
📎 完整模板见
references/completion-tracking-views.md(学员列表视图填写模板:逐学员状态、待跟进学员)
本 SKILL 不起草催交话术,也不替老师给学员或家长发消息;下面是老师在课上怎么处理。
■ 课上练习没做完(status=部分提交)
· 先看原因:题量超出了这节课的时间,还是卡在某个知识点
· 剩下的题留到下节课课上补,dueDate 填下节课那天;不改成回家做
· 卡在知识点的:下节课先讲再补,补的题换成纯净版
· 下节课仍没补上(status=未交):不追、不催,原因写进 nextAction;
自查这份练习的量、难度和这节课的讲解,调整下次课上练习
■ 学校作业、考试错题不方便带来
· 带不带来由学员自己决定;老师不追要、不催,也不通过家长要
· 学员口头说清错在哪一步,老师据此记 knowledgePoint 与 dimension 也可以
· 这份作业交没交给学校,不是本 SKILL 跟进的事,不登记、不过问
■ 教学诊断(自我反思)
自我问:
1. 是不是课上练习太难了?
2. 是不是课上练习的量超出了这节课的时间?
3. 是不是讲解没讲透?
4. 是不是课上的节奏需要调整?
■ 要跟家长说课上的情况时(不是催交)
· 由老师带到家长沟通助手(xiaozhi-teach-parent-communication)起草、自己发
· 发之前查 consent.parentCommunicationAllowed;为 false 时只与学员本人说
✓ 完全正确
▲ 思路对但计算/书写错
? 思路不清/不完整
✗ 思路错误
?✓ 部分对
# 超纲或独特解法
📎 完整模板见
references/error-reflow-checklist-template.md(错题回流清单填写模板:多名学员共同错的题、个体错题、反复出现的错题、错题归属)
mainErrors[])错因一律按 shared/vocab.md §1(通用四维)与 §3(老师端七类 ↔ 四维映射),本 SKILL 不另起一套词表。
每条错题写成一个 workspace.homeworkFollowups[].mainErrors[] 对象:
{
"knowledgePoint": "一元一次方程移项", ← 必填,知识点标签(≤60 字)
"dimension": "概念模糊", ← 必填,通用四维之一
"teacherCategory":"规则错误" ← 选填,老师端七类之一
}
dimension 必填,取值只能是 概念模糊 / 计算失误 / 读题失误 / 方法用错。teacherCategory 想写就写,但写了就必须同时给出 dimension;两者的对应关系见 shared/vocab.md §3(知识漏洞、规则错误 → 概念模糊;计算错误、习惯性失误 → 计算失误;审题错误 → 读题失误;策略错误、表达/书写不规范 → 方法用错)。nextAction。shared/vocab.md §3,抄错题归读题失误,算错归计算失误,原因要落到可跟进的动作上。判定顺序(shared/vocab.md §1):先复述条件看是不是读题失误 → 换纯净版看是不是概念模糊 → 换题型看是不是方法用错 → 剩下的归计算失误。同一道错题只记一个 dimension。
| dimension | 跟进动作 |
|---|---|
| 概念模糊 | 回到定义/纯净版最简题,讲完再做同类题 |
| 计算失误 | 限时计算专项 + 固定检查动作 |
| 读题失误 | 圈条件、复述题意后再动笔 |
| 方法用错 | 对比两种解法,讲清什么时候用哪个 |
跟进动作里若需要一道验证用的同类题/纯净版题,生成前按
shared/ai-item-check.md自检(有解且唯一、条件充分、数值友好、学段内、与原错题同维度同子类型),输出时标注【AI 生成,入库前请人工验算】;老师未验算的题不写入资源库、不发给学员。
顽固弱项的计数口径不在本 SKILL 定义,一律按 shared/vocab.md §5:
dimension)。shared/vocab.md §5;各算各的,不互相覆盖)。shared/vocab.md §8 授权。弱项状态五档(待处理 / 初步弱项 / 顽固弱项 / 突破中 / 已攻克)的进出条件见 shared/vocab.md §4,本 SKILL 直接引用。
阈值命中不直接写 studentCards[].primaryWeaknesses。顺序是:
① 命中 vocab §5 阈值
↓
② 写入 workspace.progressEvidence[]:
evidenceType = "作业"
description = "[知识点] 在 28 天内第 3 次出现 [dimension],
日期 [d1] [d2] [d3]"
confidenceLevel = data_sufficient(≥3 次独立观察)
↓
③ 向老师提一次确认(一轮,不重复追问):
「小A 的『一元一次方程移项』28 天内第 3 次记到概念模糊
(6-1 / 6-8 / 6-15)。要把它加进 小A 的重点弱项吗?
加 / 不加 / 再看一次」
↓
④ 老师说"加" → 才写入 studentCards[].primaryWeaknesses(上限 5 条)
老师说"不加"或没回 → 证据留在 progressEvidence,弱项不写
老师不确认就不写,是因为 primaryWeaknesses 会被家长沟通和阶段报告读到,误标的成本比漏标高。
📎 完整模板见
references/persistent-weakness-file-template.md(顽固弱项档案填写模板:知识点、通用维度、跟进动作、弱项状态)
若老师同时安装了教师通用包,可把 mainErrors[] 的聚合结果口头带给 xiaozhi-teach-student-analyzer 做进一步分析;未安装时本 SKILL 的错因分布已可直接用于备下一节课。两种情况下,写回学员卡的动作都只发生在本 SKILL 且需老师确认。
第 1 步:错题聚合
· 按 dimension + knowledgePoint 归拢本次作业的错题
· 小班场景再区分:多名学员共同错的 vs 只有一人错的
第 2 步:教学决策
· 多人共同错:下节课必须讲
· 单人错:给这名学员单独的任务
· 已达 vocab §5 阈值的:需要专项突破
第 3 步:衔接下一节课
· 把错因分析整理成下节课重点
· 老师带进备课;本 SKILL 不写教案
📎 完整模板见
references/pre-diagnosis-output-template.md(下节课预诊断输出填写模板:必须讲/选讲/个体关注/教案调整建议)
预诊断本身是生成的报告段落,不是存储字段。落库的只有两处:
workspace.homeworkFollowups[].mainErrors[]workspace.homeworkFollowups[].nextAction老师在 xiaozhi-teach-lesson-log 记录下节课时,可以把这段结论写进 lessonLogs[].nextLessonFocus,由那个 SKILL 负责落库。
📎 完整模板见
references/student-homework-profile-template.md(单学员作业画像填写模板:完成度趋势、错因分布、反复出错清单、订正率)
· 画像由 workspace.homeworkFollowups[] 实时聚合,不单独落库
· 作业不消耗课时,本 SKILL 不碰 coursePackageLedger
· 画像可由 solo-dashboard 只读展示;本 SKILL 不向它推送
标记只用于提醒老师,不写入学员卡,也不作为对学员的评价。
■ 课上练习没补上(看 overdueDays,不看 status)
· 中度:近 4 周(按 dueDate)有 2 条 overdueDays ≥ 1
· 高度:近 4 周(按 dueDate)有 3 条 overdueDays ≥ 1,或近 4 周内单条 overdueDays ≥ 7
■ 反复出错跟进
· 按 shared/vocab.md §5 命中顽固阈值的知识点数 ≥ 3 个
■ 应对
· 中度:课上问学员一句卡在哪,看是难度还是时间问题;相应调整课上练习
· 高度:先自查课上练习的难度与量、讲解的节奏;要跟家长说课上情况时再沟通,
不催交(发家长内容前查 consent.parentCommunicationAllowed)
■ 不做的事
· 不按"错题率 %"给学员分级——单次作业题量小,比例不稳定
· 不把标记本身告诉学员或家长("你被标成高风险了")
本 SKILL 自成闭环:老师在这里登记课上练习与学员带来的学校作业、考试错题,在这里记错因、在这里确认弱项。不需要任何 SKILL 先跑一遍,也不向任何 SKILL 推送。
老师口述 ──→ ┌──────────────────────┐ ──→ 老师带走一份"下节课讲什么"
│ homework-tracker │
│ (本 SKILL) │
└──────────┬───────────┘
│ 只写这三处
┌─────────────────┼─────────────────┐
↓ ↓ ↓
homeworkFollowups progressEvidence studentCards
(状态/错因/动作) (阈值证据) (确认后的弱项)
均为 solo-teacher-workspace.schema.json 的真实字段。
读:
workspace.homeworkFollowups[].task / .dueDate / .status / .overdueDays
→ 本 SKILL 自己登记的课上练习与学校作业条目(历次)
workspace.homeworkFollowups[].mainErrors[].knowledgePoint / .dimension
→ 历次错因,用于 vocab §5 计数
workspace.studentCards[].primaryWeaknesses / .goals / .gradeLevel / .gradeBand
→ 学员基线(已确认弱项、目标、年级、学段)
workspace.studentCards[].status
→ 为"暂停记录"或"已结课"时,不再写入任何新条目
workspace.lessonLogs[].nextLessonFocus / .date
→ 上次课设定的重点,用于对照作业表现
写:
workspace.homeworkFollowups[].task / .dueDate
→ 老师登记的内容(task 开头写类别与日期,28 天计数按这个日期算);课上练习的 dueDate 是约定做完的那节课,学校作业、考试错题不填
workspace.homeworkFollowups[].status
→ 七档枚举之一(已布置/已提交/部分提交/未交/已批改/已订正/已减免)
workspace.homeworkFollowups[].overdueDays
→ 逾期天数:从 dueDate 算到做完那天(已提交、已批改、已订正),做完后不再增加;还没做完的算到当前日期;已减免的记 0(无 dueDate 时不写)
workspace.homeworkFollowups[].mainErrors[]
→ 每条 {knowledgePoint, dimension, teacherCategory?},dimension 必填
workspace.homeworkFollowups[].nextAction
→ 跟进动作;自由描述放这里,不塞进 mainErrors
workspace.progressEvidence[].evidenceType / .description / .date / .confidenceLevel
→ 阈值命中证据、订正证据、攻克证据
workspace.studentCards[].primaryWeaknesses
→ 仅在老师逐条确认后追加(§7.2),上限 5 条
派生视图(实时计算,不落库):
完成度 ← 由 workspace.homeworkFollowups[].status 聚合(只算课上练习)
错因分布 ← 由 workspace.homeworkFollowups[].mainErrors[].dimension 聚合
顽固计数 ← 由 mainErrors 跨条目按 shared/vocab.md §5 比对
需跟进标记 ← 由 workspace.homeworkFollowups[].overdueDays 统计
生成的报告段落(非存储字段):
下节课预诊断 ← 事实来源为 workspace.homeworkFollowups[].mainErrors;
老师若要留档,由 lesson-log 写入 lessonLogs[].nextLessonFocus
其他 SKILL 直接读工作空间字段即可,不经由本 SKILL:xiaozhi-teach-solo-dashboard 读 overdueDays 提示课上练习没补上的学员,xiaozhi-teach-renewal-report 读 mainErrors、progressEvidence 与 task / status / overdueDays(按 task 开头的类别只算课上练习)做阶段报告,xiaozhi-teach-parent-communication 读 task、status 与 nextAction 起草家长反馈(两类按 task 开头的类别分开说;只说课上情况与错因,不催交;发送前查 consent.parentCommunicationAllowed)。
✅ 追踪中可使用:化名、作业完成度、错因维度、知识点、提交时间
❌ 禁止:作业具体答案、家庭辅导情况、家长监督方式
✅ 写入数据:聚合错因、完成度
❌ 不写入:学员真实身份(一律用 alias)
✅ 错题回流:只存 knowledgePoint + dimension
❌ 禁止:错题原文、学员答题原文
| ✅ 应该做 | ❌ 不能做 |
|---|---|
| 只登记课上练习与学员带来的学校作业、考试错题 | 登记回家做的作业、追未交、起草催交话术 |
| 错因归到 vocab 四维,可跟进 | 写"不认真""老是错"当错因 |
| 阈值命中先存证据、请老师确认 | 越过老师直接改学员卡弱项 |
| 逾期看 overdueDays | 造一个 status=overdue |
| 分情况跟进(真不会/时间不够),都在课上解决 | 一律加量,或改成回家补 |
| 预诊断基于真实错题 | 凭印象决定下节课重点 |
| 一律用 alias | 记录里出现真实姓名 |
作业跟进管家(自成闭环,不需要前置 SKILL)
读 workspace.studentCards[] ← student-intake 建卡
读 workspace.lessonLogs[] ← lesson-log 写课后重点
写 workspace.homeworkFollowups[] ← 本 SKILL 唯一写入方
写 workspace.progressEvidence[] ← 与 renewal-report 共用
写 workspace.studentCards[].primaryWeaknesses ← 老师确认后
其他 SKILL 需要作业数据时,直接读上述字段,不经过本 SKILL。
若装有教师通用包,可把错因分布带给 student-analyzer / exam-designer
做进一步分析或出课上练习的题;未安装时本 SKILL 的输出已可直接用。
禁止行为:
studentCards[].primaryWeaknessesstatus 里造枚举外的值学员/家长提出时同样适用(由老师核实请求人身份后代为执行),按学员化名定位:「查看 小A 的作业记录」「删除 小A 的全部作业记录」。
校验要求:跨 SKILL 共享或建档前,须确认 consent.crossSkillSharing / consent.profileEnabled 为 true;学员卡 status 为"暂停记录"时不再写入新条目。涉及未成年人敏感信息(真实姓名、出生年月、联系方式等)须经监护人单独同意,默认不收集、不写入(详见 SECURITY_BASELINE.md)。
references/completion-tracking-views.md — 单学员/学员列表完成度视图模板references/error-reflow-checklist-template.md — 错题回流清单模板references/persistent-weakness-file-template.md — 顽固弱项档案模板references/pre-diagnosis-output-template.md — 下节课预诊断输出模板references/student-homework-profile-template.md — 学员作业画像模板shared/vocab.md — 错因四维、老师端七类映射、顽固阈值、弱项五档(唯一来源)💡 小智说: "作业是教学里最被低估的环节。 大多数老师批完就忘,但如果你把每份作业 看作下一节课的 X 光片, 你会发现: 同一道题几个人都错,是教学没讲到; 一个学员总错一个点,是认知有漏洞; 一个学员课上突然做不完,是状态有了变化。 作业是教学最敏感的传感器。"