8.0 KiB
8.0 KiB
name, description, type, agent_created
| name | description | type | agent_created |
|---|---|---|---|
| 课评检查 | 检查指定课次的学生课评完成情况、班级总结完成情况、学生画像完整性。支持API出勤记录与本地课评交叉核对,自动发现时间/课程编号/学生不一致问题。 | skill | true |
课评检查技能
功能说明
自动检查指定课次的课评完成情况,生成完整的检查报告。
支持两种模式:
- 课次模式:按课次检查(如"检查第11课")
- 日期模式:按日期范围检查,自动调用API出勤记录与本地课评交叉核对(如"检查5月15日到5月17日")
使用方式
模式一:按课次检查
检查第X课
模式二:按日期范围检查(自动API核对)
检查 2026-05-15 到 2026-05-17
检查 5月15日到5月17日
检查流程
模式一:按课次检查
1. 读取班级学生名单
从 CLAUDE.md 中读取所有班级和学生名单,作为检查基准。
2. 检查学生课评文件
遍历每个班级的每个学生,检查其 feedback/ 目录下是否有对应课次的文件:
有效文件类型:
| 文件名特征 | 状态判定 |
|---|---|
YYYYMMDD_课程编号-X.md |
正常课评 |
YYYYMMDD_课程编号-X(请假).md |
请假记录 |
YYYYMMDD_课程编号-X(补课-去XX班).md |
补课/调课记录 |
YYYYMMDD_课程编号-X(补课).md |
补课记录 |
| 无任何匹配文件 | 缺失 |
注意事项:
- 文件名中的课次编号必须与查询的课次一致(如查第10课,匹配
-10.md) - 日期格式应为8位数字(
YYYYMMDD),如发现202605010等异常格式,标注
3. 检查班级总结
检查每个班级的 summaries/ 目录下是否有对应课次的班级反馈文件:
- 匹配文件名包含课次编号的文件(如
*X_班级反馈.md或*X*) - 无匹配文件则标注 缺失
4. 检查学生画像
检查每个学生目录下是否有 profile.md:
- 有则
- 无则
5. 特殊情况处理
检查过程中需关注以下情况并标注:
- 停课学生:已停课的学生不计入应完成总数
- 进度慢的学生(如一对一):不看课次编号,而是看其最新课评的日期是否与其他学生被检查课次的日期在同一周。如果在同一周,视为正常上课(进度慢),不报告缺失
- 新增/删除学生:以
CLAUDE.md最新名单为准
进度慢学生判断示例:
李梓宁最新课评:20260509_AICODE03-07.md(日期 05-09)
其他学生第10课日期:20260509 ~ 20260510
判断:05-09 与 05-10 在同一周 → 正常,不缺失
模式二:按日期范围检查(含API出勤核对)
当用户提供日期范围时,自动执行以下增强流程:
步骤1:调用API获取出勤记录
调用公司API获取指定日期范围内橙子老师的所有课程和学生出勤记录:
node scripts/check-api-vs-local.js <开始日期> <结束日期>
API数据源:
- 接口:
GET /reports/teaching-schedule - 参数:
teacher_name=橙子(程城),teaching_date=YYYY-MM-DD - 返回:每节课的日期、时间、班级名称、学生名单、出勤汇总
步骤2:API数据解析
从API返回中提取以下关键信息:
| API字段 | 说明 | 示例 |
|---|---|---|
teaching_date |
授课日期 | 2026-05-16 |
teaching_time_period |
授课时间段 | 08:30-10:30 |
class_name |
班级名称 | AICODE03AI编程创新课03 |
student_names |
学生名单 | ["李梓宁", "王子墨"] |
student_count |
应到人数 | 5 |
attendance |
出勤汇总 | {attended:4, on_leave:1} |
课程编号提取:从 class_name 中提取前缀,如 AICODE03AI编程创新课03 → AICODE03
本地目录映射:根据API数据推断本地班级目录名称:
API class_name: AICODE03AI编程创新课03
API teaching_date: 2026-05-16 (周六)
API teaching_time_period: 19:00-20:30 → 时间码: 1900
本地匹配目录: AICODE03橙子周六1900
大小写兼容:API可能返回 KITTEN04,本地目录为 Kitten04,匹配时不区分大小写。
步骤3:扫描本地课评文件
在匹配的本地班级目录下扫描:
- 主目录学生:
.claude/memory/class/[班级]/[学生]/feedback/ - 补课目录学生:
.claude/memory/class/[班级]/补课/[学生]/feedback/
匹配该日期(YYYYMMDD)和课程编号(如 AICODE03)的 .md 文件。
步骤4:交叉比对规则
逐项比对API记录与本地课评,发现问题:
| 核对项 | 比对规则 | 问题等级 |
|---|---|---|
| 本地目录存在性 | API有课 → 本地应有对应班级目录 | ❌ 严重 |
| 学生人数一致性 | API student_count vs 本地学生目录数(含补课) |
⚠️ 警告 |
| 学生名单一致性 | API名单中的学生,本地应有目录 | ⚠️ 警告 |
| 课评文件完整性 | API显示出勤/补课的学生,本地应有课评文件 | ⚠️ 警告 |
| 文件日期正确性 | 本地文件名日期(前8位)必须等于API teaching_date |
⚠️ 警告 |
| 课程编号正确性 | 本地文件名必须包含正确的课程编号 | ⚠️ 警告 |
| 本地多余课评 | 本地有课评但API名单中无该学生 | ⚠️ 警告 |
特殊情况说明:
- 体验课:API中可能显示为
AICODE01等,但本地使用体验课/目录单独管理,无匹配目录属正常 - 补课学生:在其他班级补课的学生,课评保存在
补课/目录下,脚本会自动扫描 - 新增/转班学生:API名单中有但本地无目录的学生,标注为"可能新增/转班"
- 已转走学生:本地有目录但API名单中无此人的学生,标注为"可能已转班/停课"
步骤5:执行本地课评检查
在完成API核对后,继续执行模式一的本地检查流程(课评文件检查、班级总结检查、学生画像检查)。
输出报告格式
模式一报告(课次检查)
## 课评完成情况检查报告 — 第X课
### 一、个人课评
| 班级 | 学生 | 状态 | 说明 |
|---|---|---|---|
| AICODE03周六1900 | 陈嘉博 | | 正常课评 |
| AICODE03周六1900 | 王子墨 | | 缺失 |
| ... | ... | ... | ... |
**统计**:共X人,完成X人,缺失X人
### 二、班级总结
| 班级 | 状态 | 说明 |
|---|---|---|
| AICODE03周六1900 | | 无第X课班级反馈 |
| ... | ... | ... |
### 三、学生画像
| 班级 | 学生 | 状态 |
|---|---|---|
| ... | ... | ... |
**统计**:共X人,有画像X人,缺失X人
### 四、异常/需关注
- ⚠️ 黄俊博:文件名日期格式错误(`202605010` 应为 `20260510`)
- ...
模式二报告(日期范围 + API核对)
## API出勤记录 vs 本地课评核对报告 — 2026-05-15 至 2026-05-17
### 一、核对汇总
| 日期 | 时间 | 课程 | 本地目录 | API人数 | 本地课评数 | 状态 |
|------|------|------|----------|---------|------------|------|
| 2026-05-16 | 08:30-10:30 | CSP03信息学奥赛03 | CSP03橙子周六0830 | 6 | 6 | |
| 2026-05-16 | 14:00-16:00 | CSP03信息学奥赛03 | CSP03橙子周六1400 | 5 | 4 | ⚠️ |
| ... | ... | ... | ... | ... | ... | ... |
**统计**:总X节课,核对通过X节,存在问题X节,无本地目录X节
### 二、API核对问题详情
#### 2026-05-16 14:00-16:00 - CSP03信息学奥赛03
- 本地目录: CSP03橙子周六1400
- API学生: 廖梓琪, 张雨禾, 苏俊宇, 郑子煜, 魏铭轩
- 本地学生: 张雨禾, 苏俊宇, 郑子煜, 魏铭轩
- ⚠️ 学生人数不一致: API5人 vs 本地4人
- ⚠️ API名单学生本地无目录(可能新增/转班): 廖梓琪
### 三、本地课评检查
(接续模式一的报告格式)
检查完成后
根据检查结果,询问用户是否需要:
- 补全缺失的课评/请假记录
- 生成缺失的班级总结
- 修正异常文件名
- 处理API核对发现的学生异动(新增/转班)