feat: 第17课课评完成 + 学生档案更新 + 课评网页模板 + 暑假绩效考核

This commit is contained in:
chengzi
2026-07-01 10:26:46 +08:00
parent 42b3c25d20
commit 9bc8e9a0d8
102 changed files with 4962 additions and 25 deletions

View File

@@ -0,0 +1,223 @@
---
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`
- 返回:每节课的日期、时间、班级名称、学生名单、出勤汇总
#### 步骤2API数据解析
从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核对发现的学生异动新增/转班)