--- name: 课评检查 description: 检查指定课次的学生课评完成情况、班级总结完成情况、学生画像完整性。支持API出勤记录与本地课评交叉核对,自动发现时间/课程编号/学生不一致问题。 type: skill agent_created: 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获取指定日期范围内橙子老师的所有课程和学生出勤记录: ```bash 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:扫描本地课评文件 在匹配的本地班级目录下扫描: 1. **主目录学生**:`.claude/memory/class/[班级]/[学生]/feedback/` 2. **补课目录学生**:`.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名单学生本地无目录(可能新增/转班): 廖梓琪 ### 三、本地课评检查 (接续模式一的报告格式) ``` --- ## 检查完成后 根据检查结果,询问用户是否需要: 1. 补全缺失的课评/请假记录 2. 生成缺失的班级总结 3. 修正异常文件名 4. 处理API核对发现的学生异动(新增/转班)