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核对发现的学生异动新增/转班)

View File

@@ -0,0 +1,997 @@
---
name: 课评生成
description: 快速生成个性化课评,你只需提供学生本节课的表现,自动匹配班级风格生成高质量课评
type: skill
agent_created: true
---
# 🎯 课评生成器技能包
## 🌟 功能说明
本技能专为穹狼科创编程课程设计,**使用超简单:你只需要告诉我学生的基本信息和本节课表现,我就能自动生成符合班级风格的个性化课评**。
✅ 支持四大课程C++/AICODE/Kitten/体验课
✅ 自动匹配班级专属风格AICODE03温暖鼓励型/K4温和鼓励型/CSP03要求型/体验课转化型
**CSP班级必须查询OJ做题数据**自动调用API获取A包答题情况
## 💡 使用方式
### 方式一:交互式问答(推荐)
输入 `/课评生成`,我会使用**选择题**的方式问你所有问题:
```
📝 问题1课堂录音文件路径是什么.docx格式
- [ ] 稍后提供
- [ ] 还没有录音
📝 问题2这是哪个班级的课
- [ ] AICODE03橙子周六1900需要作品文件夹
- [ ] AICODE03橙子周日0845
- [ ] AICODE03橙子周日1400
- [ ] CSP03橙子周六0830需要OJ数据
- [ ] CSP03橙子周六1400
- [ ] CSP03橙子周日1030
- [ ] K4橙子周五1900
- [ ] K4橙子周日1900
📝 问题3这是第几课题目是什么
- [ ] 稍后提供
- [ ] 还不确定
📝 问题4作品文件夹路径仅AICODE班需要
- [ ] 稍后提供
- [ ] 不需要CSP/K4班
```
你选择或填写完所有问题,我就会自动完成整个课评生成流程!
### 方式二:直接提供信息
如果你已经知道所有信息,可以直接告诉我:
```
课堂录音文件第11课录音转写.docx
班级AICODE03橙子周六1900
课次第11课
题目《AI训练师》
出勤:来了陈嘉博、王子墨,请假谭俊研
作品文件夹D:\作品\第11课
```
---
## 🔄 自动完成的工作
你提供信息后,我会自动完成:
### 第1阶段课评准备
1. 获取API出勤数据
2. 使用python-docx读取录音转写文件
3. AI分析录音文本识别"发言人1,2,3"对应的学生
4. **AICODE班**:查看作品文件夹,分析每个学生作品的创意和亮点
5. 读取课程计划获取5个知识点
6. 读取每个学生的画像
7. **CSP班**调用OJ API查询A包做题数据
### 第2阶段课评生成
1. 读取班级风格指南
2. 为每个学生生成个性化课评约200字
- 引用录音中的具体例子
- **AICODE班**:描述作品创意和亮点
- **CSP班**包含OJ做题数据
3. 生成班级总结
4. 展示给你确认
### 第3阶段课评收尾
1. 课评质检CSP班调用证据审计员
2. 丰富度评分(告诉你每个学生的分数)
3. 保存归档(个人课评 + 周汇总 + 班级总结)
4. 更新学生画像
5. 输出完成报告
---
## 📂 从课堂录音批量生成课评(推荐工作流)
橙子提供课堂录音转写文件(`.docx`格式),文件路径会直接告诉我,我会自动完成以下流程:
### 🤖 交互式问答流程
当橙子输入 `/课评生成` 时,使用 **AskUserQuestion** 工具一次性问完所有问题:
**第1轮收集基本信息**
- 问题1录音文件路径文本输入
- 问题2班级单选AICODE03/CSP03/K4的各个时间段
- 问题3课次和题目文本输入
- 问题4出勤情况单选全部到齐/有人请假)
**第2轮根据班级类型追问**
- 如果是AICODE班追问作品文件夹路径
- 如果是CSP班无需追问OJ数据自动获取
- 如果是K4班无需追问
**收集完成后**自动调用三个阶段的agent完成课评生成。
### 🔄 智能体流水线模式
课评生成已拆分为3个独立智能体按流水线方式协作完成
```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 课评准备阶段 │ ──→ │ 课评生成阶段 │ ──→ │ 课评收尾阶段 │
│ (Agent 1) │ │ (Agent 2) │ │ (Agent 3) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
收集所有数据 生成课评内容 质检+保存+归档
• API授课数据 • 读取风格指南 • 课评质检
• 录音解析(AI分析) • 读取课评模板 • 保存课评
• 课程计划匹配 • 生成个人课评 • 保存班级总结
• 学生画像读取 • 生成班级总结 • 更新学生画像
• OJ数据获取 • 质量自检 • 更新学生画像
```
**优势**
- 每个阶段职责清晰,便于调试和优化
- 可以单独重跑某个阶段(如只重跑质检)
- 阶段间数据传递标准化,减少错误
---
### 输入文件格式
橙子提供的课堂录音转写文件为 `.docx` 格式,包含整节课的完整录音转写文本。
**录音转写文件特点**
- 自由文本格式,包含老师和学生的对话
- 只有"发言人1"、"发言人2"、"发言人3"这样的标识,没有具体姓名
- 可能包含时间戳(如"[00:05:30]"
- 内容为整节课的完整记录需要AI分析识别发言人
**示例内容**
```
[00:00:15] 发言人1同学们今天我们来学习循环嵌套...
[00:02:30] 发言人2老师我有个问题...
[00:05:45] 发言人1问得很好大家注意看...
[00:10:20] 发言人3老师我这个程序运行不出来...
```
**AI识别说明**
- 发言人1通常是老师讲解知识、提问、点评
- 发言人2、3等通常是学生回答问题、提问、讨论
- 需要根据对话内容判断每个发言人对应的学生
**Word文档格式**
- 同样包含表格,记录学生姓名、出勤状况和课评描述
- 使用 `python-docx` 库自动读取,无需手动转换
### 工作流程
```
获取API授课数据 → 读取录音转写(docx) → AI分析识别发言人 → 获取课程知识点 → 读取学生画像 → 润色生成 → 确认修改 → 课评质检 → 保存
```
### 0. 获取API授课数据必须第一步执行
**⚠️ 这是强制步骤,必须在读取笔记之前执行!**
在开始处理任何课评之前,**必须先调用公司API获取橙子老师近期的授课数据**,用于:
1. 确认橙子老师实际带了哪些班级
2. 获取每个班级的**真实授课日期**`teaching_date`),用于课评文件名
**执行命令**Python
```python
import urllib.request
import json
from datetime import datetime, timedelta
API_BASE_URL = "https://api.qonnwolf.com/api/v1"
AUTHORIZATION = "Bearer <从.env文件读取>"
# 计算最近7天的日期范围
end_date = datetime.now()
start_date = end_date - timedelta(days=7)
# 查询橙子老师的出勤数据
dates_to_query = []
current = start_date
while current <= end_date:
dates_to_query.append(current.strftime('%Y-%m-%d'))
current += timedelta(days=1)
results = []
for date in dates_to_query:
url = f"{API_BASE_URL}/reports/teaching-schedule?teaching_date={date}"
req = urllib.request.Request(url)
req.add_header('Authorization', AUTHORIZATION)
try:
with urllib.request.urlopen(req) as response:
data = json.loads(response.read().decode('utf-8'))
for item in data['data']['items']:
teacher = item.get('teacher_name', '')
if '橙子' in teacher or '程城' in teacher:
results.append({
'teaching_date': item['teaching_date'], # API返回的真实授课日期
'class_name': item['class_name'],
'time': item['teaching_time_period'],
'lesson': item['lesson_name'],
'student_count': item['student_count'],
'attendance': item['attendance'],
'students': item.get('student_names', [])
})
except Exception as e:
print(f"查询 {date} 失败: {e}")
# 输出结果
for r in results:
print(f"日期:{r['teaching_date']} 班级:{r['class_name']} 时间:{r['time']} 课程:{r['lesson']}")
```
**返回数据说明**
| 字段 | 说明 | 用途 |
|------|------|------|
| `teaching_date` | API返回的真实授课日期 | **必须用此日期作为课评文件名中的YYYYMMDD** |
| `class_name` | 班级名称 | 用于确认班级目录名 |
| `time` | 上课时间段 | 用于确认班级如19:00-20:30对应晚上班 |
| `lesson_name` | 课程名称 | 用于匹配课程计划 |
| `student_count` | 学生数 | 用于确认班级人数 |
| `attendance` | 出勤统计 | 到课/请假/缺课人数 |
| `students` | 学生名单 | 用于确认学生 |
**日期规则(重要)**
-**必须使用API返回的 `teaching_date`** 作为课评文件名中的日期
- ✅ 如果笔记中的日期与API返回的 `teaching_date` 不一致,**以API为准**
- ✅ 文件名格式:`{API返回的teaching_date}_课程编号-课次.md`
**班级匹配规则**
根据API返回的 `class_name``time` 匹配笔记中的班级:
| API返回的class_name | 对应班级目录 | 识别依据 |
|---------------------|-------------|----------|
| AICODE03... | AICODE03橙子周六1900 / AICODE03橙子周日0845 / AICODE03橙子周日1400 | class_name含"AICODE03" + time判断 |
| CSP03... | CSP03橙子周六0830 / CSP03橙子周六1400 / CSP03橙子周日1030 | class_name含"CSP03" + time判断 |
| KITTEN04... | K4橙子周五1900 / K4橙子周日1900 | class_name含"KITTEN04" + time判断 |
### 1. 读取课堂录音转写文件
解析用户提供的课堂录音转写文件(`.docx` 格式):
**使用python-docx库读取**
```python
from docx import Document
def read_recording_docx(file_path):
"""读取课堂录音转写的docx文件"""
doc = Document(file_path)
content = []
for para in doc.paragraphs:
text = para.text.strip()
if text:
content.append(text)
return '\n'.join(content)
# 使用示例
file_path = r"课堂录音转写文件路径" # 例如第15课录音转写.docx
recording_text = read_recording_docx(file_path)
```
**录音文本特点**
- 整节课的完整录音转写,包含老师和学生的对话
- 可能包含时间戳(如"[00:05:30]"
- 可能包含说话人标识(如"老师:"、"学生:"
- 内容为自由文本,不是结构化的表格
**AI分析提取学生表现**
由于录音是自由文本格式需要使用AI分析提取每个学生的表现信息
```python
# 分析提示词
analysis_prompt = f"""
分析以下课堂录音转写文本,提取每个学生的表现信息。
班级学生名单:{student_list}
请为每个学生提供:
1. 出勤状况:正常上课 / 请假 / 未到
2. 课堂表现摘要100-200字
- 参与度如何
- 哪些知识点掌握得好
- 遇到什么问题
- 有什么亮点表现
录音文本:
{recording_text}
请以JSON格式输出。
"""
```
> **日期规则**:批量流程中,所有日期(文件名 `YYYYMMDD`、授课日期)**统一以API返回的teaching_date为准**,不使用录音文件中的日期。
### 2. 匹配课程计划
根据班级标题中的关键词匹配对应课程计划:
| 班级标题关键词 | 课程计划路径 | 课程编号 |
|---|---|---|
| AICODE03 | `.claude/lesson/AICODE/课程计划.md` | AICODE03 |
| CSP03 | `.claude/lesson/CSP03/课程计划.md` | CSP03 |
| Kitten04 / K4 | `.claude/lesson/Kitten04/课程计划.md` | Kitten04 |
从课程计划中提取对应课次的:
- **课程名称**(如《进制转换》)
- **教学目标 5个知识点**
> **重要**:教案中的"教学目标"5条直接作为课评的5个知识点不得修改或编造。
### 3. 读取学生画像
对每个学生,读取其个人画像档案:
**路径**`.claude/memory/class/[班级]/[姓名]/profile.md`
### 4. 润色生成课评
对录音中提取的**每一个学生**,根据出勤状况处理,确保每个人都有对应记录:
| 出勤状况 | 处理方式 | 保存位置 |
|---|---|---|
| 正常上课 | 读取画像 + 润色表现摘要 → 生成完整课评 | 本班学生feedback目录 |
| 请假 | 生成请假记录 | 本班学生feedback目录 |
| 未上课 | 生成未到课记录 | 本班学生feedback目录 |
| 补课-来自XX班 | 读取画像 + 润色表现摘要 → 生成完整课评 | **补课班级**的`补课/[姓名]/feedback/`目录 |
**润色规则**(对正常上课和补课学生):
- 保留录音中提取的所有事实(不能遗漏任何信息)
- 根据学生画像调整语气和侧重(如内向学生多鼓励,活泼学生提专注)
- 套用对应班级的固定开头5个知识点和结尾风格
- 将100-200字的表现摘要扩展为约200字的完整家长信格式课评
- **绝不编造**录音中没有提到的内容
**⚠️ CSP班级专属必须执行**
对每个CSP学生**在生成课评之前**必须先查询OJ做题数据
```bash
python scripts/get_student_oj.py \
--homework-id <作业ID> \
--student "<学生姓名>"
```
将返回的OJ数据Markdown拼接到课评内容中。**没有OJ数据的CSP课评是不完整的**
**输出示例**
```markdown
家长好,本周学习的内容是《魔幻俄罗斯方块(下)》:
1. 理解"自动化测试"的概念
2. 理解"测试覆盖":每条规则都应有对应测试
3. 功能扩展的增量思维
4. 增量需求文档的编写方法
5. 测试脚本生成与结果解读
嘉博今天表现特别棒~对增量需求文档的理解很到位,能够自己写出清晰的测试用例~
和AI协作完成俄罗斯方块的调试遇到困难没有放弃特别有韧性
要是可以在写需求文档的时候再仔细检查一下边界条件就更好啦~
老师会继续关注嘉博的表现,期待看到更多精彩!🌟💡
```
### 6. 生成班级总结(所有班级)
录音中提取的**每一个班级**都会生成本节课的班级总结,不局限于特定班级:
**内容来源**
- 课程名称 + 5个知识点来自课程计划
- 该班级所有学生的整体表现(基于录音中提取的表现摘要汇总)
- 亮点学生、共性问题、课堂趣事
**保存路径**`.claude/memory/class/[班级]/summaries/YYYYMMDD_课程编号-课次_班级反馈.md`
**格式**:使用对应班级自己的模板(`.claude/memory/class/[班级]/summaries/群发文案模板.md``班级反馈模板.md`
### 7. 确认流程(橙子检查)
所有课评和班级总结生成后,**先展示给橙子看,不保存**
- 按班级分组展示:个人课评 + 班级总结
- 等待橙子确认或提出修改意见
- 如有修改,即时调整后再次展示,直到橙子满意
### 8. 课评质检(橙子确认修改后执行)
**橙子确认课评内容无误后**,自动调用课评质检系统进行最终质检:
**触发条件**:橙子说"可以了"、"没问题"、"确认"等表示确认的语句
**质检流程**
1. 调用「课评质检调度器」Agent
2. 输入:橙子确认后的班级总结 + 所有学生的个人课评
3. 调度器自动协调9个质检Agent证据审计员、质量评审员、5位家长、终稿编辑
4. 输出:质检报告 + 修订稿(如有问题)
**三档放行规则**
- **直接发送**≥85分且无硬伤保持原稿附质检报告供参考进入保存流程
- **修订后发送**70-84分或有改进点展示质检报告和修订稿给橙子橙子确认后进入保存流程
- **必须重写**<70分或触发硬伤展示质检报告给橙子橙子决定如何修改
**质检报告格式**
```
📋 课评质检报告
【总分】XX / 100
【结论】直接发送 / 修订后发送 / 必须重写
【一、证据审计】
- 已核实:...
- 存疑/风险:...
【二、硬伤检查】
- 触发:无 / 第X项说明
【三、主要问题】(按严重程度排)
1. ...
【四、修订稿】
(若结论为"修订后发送"或"必须重写",给出完整修订后的课评)
【五、修改说明】
- 改了什么、为什么改
```
**质检报告位置**:质检报告附在课评后面,供橙子参考,但不发给家长。
**质检后流程**
- 如果质检通过(直接发送):自动执行保存操作
- 如果质检发现问题:展示给橙子,橙子确认后再保存
**⚠️ CSP课评质检优先使用 Agents 系统**
CSP课评必须使用 `.claude/agents/` 目录下的质检Agent系统进行质检该系统包含
| Agent | 路径 | 功能 |
|-------|------|------|
| **课评质检调度器** | `.claude/agents/课评质检调度器/agent.md` | 协调9个质检Agent的工作流程 |
| **课评证据审计员** | `.claude/agents/课评证据审计员/agent.md` | 事实核对OJ数据、知识点等 |
| **课评质量评审员** | `.claude/agents/课评质量评审员/agent.md` | 100分制评分 + 硬伤检查 |
| **课评终稿编辑** | `.claude/agents/课评终稿编辑/agent.md` | 根据反馈生成修订稿 |
| **家长-忙碌实用型** | `.claude/agents/家长-忙碌实用型/agent.md` | 快速扫读体验 |
| **家长-结果导向型** | `.claude/agents/家长-结果导向型/agent.md` | 信息缺口检查 |
| **家长-细节核对型** | `.claude/agents/家长-细节核对型/agent.md` | 文内一致性检查 |
| **家长-焦虑保护型** | `.claude/agents/家长-焦虑保护型/agent.md` | 情绪风险检查 |
| **家长-成长陪伴型** | `.claude/agents/家长-成长陪伴型/agent.md` | 成长性反馈 |
**CSP质检执行方式**
```
调用 课评质检调度器 → 调度器自动协调9个Agent → 输出质检报告 + 修订稿
```
**核心原则**来自Agents系统
1. **事实以证据审计员为准**:家长视角的数字意见一律忽略
2. **不做学生横向比较**:揪出"最高/最快/分水岭/紧随XX"等比较词
3. **术语家长能懂**OLE/CE/WA/SJF/AC这类缩写要解释或换成白话
4. **结合学生性格**:完美主义型先肯定韧性再谈方法;佛系型正向收尾不施压
5. **老师是最终决策者**:给建议和修订稿,老师决定用不用
### 9. 保存归档
橙子最终确认后,执行以下保存操作:
1. 保存到学生个人单次课评文件
2. **保存到统一周课评汇总**`E:/cc/4work_project/ClassFeedback/output/课评汇总/`**后写的课评放在最前面**
3. 保存班级总结
4. 更新学生画像
### 10. 更新学生画像(自动)
保存课评的同时,根据本节课表现**适当更新**学生画像 `profile.md`
**更新原则**
- 只记录**新发现**或**明显变化**,不重复已有信息
- 更新位置:在 profile.md 的"近期表现"或"课堂观察"部分追加
**触发更新的典型情况**
- 展现出新的兴趣点(如"首次表现出对XX的浓厚兴趣"
- 能力有明显进步(如"打字速度比上学期快了很多"
- 性格/态度变化(如"从内向变得愿意主动提问"
- 需要持续关注的问题(如"近两次课专注力有所下降"
- 特殊事件(如"第一次独立完成完整作品"
**不更新的情况**
- 表现和画像中已有描述一致
- 只是常规课堂表现,无特殊变化
- 一次性的小问题(如"今天迟到"
更新格式示例:
```markdown
**2026-05-14 第11课观察**
- 对增量需求文档的理解力有提升,能自己写出测试用例
- 遇到困难时不再马上求助,会先尝试独立调试
```
---
## 📊 课评质量评分标准(生成时必须遵循)
> 总分 95 分 = 规范性40 分) + 丰富度55 分)
> **生成课评时必须按照此标准自检,确保每条课评都达到高质量要求!**
### 一、规范性(自动检测,合计 40 分)
| 评分项目 | 分值 | 满分判定规则 | 扣分规则 |
|----------|------|--------------|----------|
| **字数合规** | 10 | 正文字数区间180350 字 | 低于 150 字扣 6-10 分;低于 180 字扣 3-5 分;超 400 字扣 1-3 分 |
| **禁用词** | 10 | 全文无禁用词汇 | 每出现 1 个禁用词扣 2 分,扣完本项为止 |
| **结构完整** | 10 | 评语必须包含三要素:知识点总结 + 学情反馈 + 教师签名 | 缺任一要素扣 4-6 分;三要素齐全但比例失衡扣 1-3 分 |
| **Emoji 使用** | 5 | 全篇使用数量 35 个 | 0 个扣 5 分1 个扣 3 分2 个扣 1 分;超 8 个扣 1-2 分 |
| **称呼规范** | 5 | 使用去掉姓氏的小名直呼学生 | 用全名扣 3 分;用"同学"后缀扣 2 分;称呼不统一(前后不一致)扣 1-2 分 |
**禁用词清单**(生成时必须避免):
- 笼统空泛词:表现不错、继续努力、很好、很棒(无具体细节时)
- 敷衍词:还可以、一般、还行、差不多
- 批评词:太差、不认真、不用心、态度有问题、懒
- 比较词:最(最认真/最快/最好)、比其他同学、全班第一
- AI味浓词总体来说、综上所述、相信在未来的学习中
**自检要点**
-**字数**课评正文不含知识点和OJ数据在 180350 字之间。低于 150 字严重不足,低于 180 字偏短
-**禁用词**:不使用上述禁用词,用具体描述代替笼统评价;不做学生横向比较
-**结构**:必须有知识点总结(固定开头)+ 学情反馈(主体)+ 教师签名(结尾)。缺少任何一个要素都是严重扣分项
-**Emoji**:全篇 35 个,分布在夸奖、建议、结尾等位置。没有 Emoji 是重扣分项(扣 5 分),这是本维度最容易拿的回分项
-**称呼**:三字姓名去掉姓氏(如"陈圆振"→"圆振"),两字姓名直呼名字,课评全文称呼保持一致。这是当前最短板,务必重视
### 二、丰富度AI 语义分析,合计 55 分)
| 评分项目 | 分值 | 高分评判标准 |
|----------|------|--------------|
| **具体化程度** | 15 | 评语包含具体行为细节、课堂互动片段、原话引用,有画面感,不笼统空泛 |
| **课后建议质量** | 10 | 给出可落地、可执行的个性化课后练习 / 提升方案,不是套话建议 |
| **个性化纵向对比** | 15 | 结合学生过往学情画像,对比本次表现,体现进步 / 退步追踪,有具体参照点 |
| **专业知识点体现** | 15 | 紧扣课程核心知识点点评,用专业术语诊断学生卡点,体现授课专业度 |
**丰富度提升技巧**
**具体化程度15分—— 当前得分 11.0,核心提升项**
- 不只是写"表现不错",要让家长「看到」孩子在课堂上的样子。
- **课堂行为描写三要素**(每条课评至少包含 2 项):
1. **具体动作**:做了什么、说了什么、写了什么代码
2. **互动细节**:问了什么问题、回答了什么问题、和同学怎么协作
3. **情绪状态**:遇到困难时的反应、攻克后的小表情、专注时的状态
- ❌ "嘉博今天表现不错"笼统0分
- ✅ "嘉博今天自己一字一字打字和AI聊了一节课特别专注"(具体动作 + 状态12分
- ✅ "嘉博今天主动问老师'内层循环每执行完一次,外层循环的变量会变吗?'问完之后自己打开IDE验证验证成功时回头冲我笑了一下"(原话引用 + 动作 + 情绪15分
- 技巧:引用学生在录音中的原话,或描述具体行为,让家长看到孩子真实的课堂表现
**课后建议质量10分—— 当前得分 8.1,稳中提升**
- ❌ "继续加油"、"多练习"套话0分
- ✅ "课后可以试着用AI生成一个故事然后自己改编结尾锻炼创意表达"可执行10分
- 技巧:给出"做什么" + "怎么做" + "达到什么效果",三步缺一不可
**个性化纵向对比15分—— 当前得分 8.7,重点提升项**
- 不只是和上节课比,要给出具体的参照点。
- **纵向对比三层次**(每条课评至少包含 1 层):
1. **能力对比**:之前不会 XX本节课掌握了 XX
2. **习惯对比**:之前上课容易分心,本节课能全程专注
3. **心态对比**:之前不敢问问题,本节课主动提问 N 次
- ❌ 不提过往表现0分
- ❌ "比之前有进步"模糊对比3分
- ✅ "上节课讲到循环时还需要老师反复提醒,这节课自己主动说'老师我能用两层循环做吗',独立思考的意愿明显增强了"(有参照点 + 有具体行为15分
- 技巧:读取学生画像,找到至少 1 个明确的对比参照点,写进课评
**专业知识点体现15分—— 当前得分 11.9,稳定优势项**
- ❌ "今天学了新知识"泛泛0分
- ❌ "对循环嵌套有一定了解"只有一个知识点名词5分
- ✅ "对角色设置+限制条件+输出格式的系统提示词优化,有一定了解"(专业术语 + 具体应用12分
- ✅ "本节课的 substr 和 find 函数,子煜能准确说出两者的参数含义和返回值类型,在课堂练习中处理字符查找的场景时直接用了 find没有走弯路"(术语精准 + 行为印证15分
- 技巧:紧扣本节课教案中的知识点,用专业术语点评,并用学生的实际操作来印证理解程度
---
## ⚙️ 核心生成逻辑(自动完成,你不需要操作)
```
1. 读取参考资料 → 2. AICODE班分析作品/CSP班拉取OJ数据 → 3. 生成个性化课评 → 4. 橙子确认修改 → 5. 自动质检 → 6. 自动保存
```
### 1. 自动读取参考资料
我会自动找到以下资料用于生成课评:
- **学生画像**`.claude/memory/class/[班级]/[姓名]/profile.md`(了解学生性格特点和适用风格)
- **班级风格指南**:根据课程类型读取对应规则(`.claude/rules/[课程].md`
- **课评格式模板**:根据课程类型选择对应模板(`.claude/templates/[课程].md`),包含标准版和极简版
- **本节课教案**:到 `.claude/lesson/` 目录下查找对应班级、对应课次的教案,确保课评内容与实际教学一致,不编造内容
- **过往课评**:读取该学生的历史课评,避免重复用词
- **课堂录音转写**`.docx`格式使用python-docx库读取AI分析提取学生表现
- **AICODE班作品**:查看作品文件夹,分析每个学生作品的创意和亮点
> 💡 **模板库路径**`../../templates/`
> - `AICODE.md`AICODE创意编程课评模板标准版 + 极简版)
> - `CSP.md`C++/CSP课程课评模板
> - `KITTEN.md`Kitten课程课评模板
> - `课评汇总网页.html`家长版课评汇总HTML网页模板翻页浏览、温暖画册风格
### 2. AICODE班级专属查看作品文件夹必须执行
**⚠️ 这是强制步骤AICODE课评必须包含作品创意描述**
**执行时机**在生成每个AICODE学生的课评**之前**,先查看该学生的作品文件夹。
**执行流程**
1. 识别出AICODE班级的学生
2. 查看作品文件夹(橙子提供的本地路径)
3. 分析每个学生作品的:
- 创意点:有什么独特的想法
- 技术点:用了什么技术实现
- 亮点:有什么特别出彩的地方
4. 将作品分析**用中文写进课评**中
**示例**生成陈嘉博的AICODE课评
```
嘉博今天表现特别棒~主动问老师关于循环嵌套的问题,说明在认真思考~
自己完成了课堂练习,特别专注!作品是一个猜数字游戏,用了独特的渐变色背景,
还添加了音效和暂停功能,创意很棒!
老师会继续关注嘉博的表现,期待看到更多精彩!🌟💡
```
### 3. CSP班级专属自动获取OJ做题数据必须执行
**⚠️ 这是强制步骤CSP课评必须包含OJ数据**
**执行时机**在生成每个CSP学生的课评**之前**先查询该学生的OJ数据。
**查询命令**对每个CSP学生执行
```bash
python scripts/get_student_oj.py \
--homework-id <作业ID> \
--student "<学生姓名>"
```
**执行流程**
1. 识别出CSP班级的学生
2. 对每个CSP学生运行上述命令获取OJ数据
3. 命令会输出该学生的OJ数据Markdown包含A包每道题的完成情况
4. 将返回的OJ数据Markdown**直接拼接**到该学生的课评内容中
**示例**生成杨林轩的CSP课评
```bash
# 第1步获取OJ数据
python scripts/get_student_oj.py \
--homework-id 6a2bbd65aeff4da880b8f01d \
--student "杨林轩"
# 第2步把返回的OJ数据整合到课评中
```
**返回格式示例**
```markdown
## 【OJ做题数据】
**完成情况**: 4/5 (共8次提交)
| 题目 | 状态 | 提交次数 | 错误类型 |
|------|------|----------|----------|
| CSP0309A1 银行叫号模拟 | ✅ 通过 | 1 | — |
| CSP0309A2 模拟发牌 | ✅ 通过 | 2 | WA×1 |
...
**📊 分析**: 完成4题第5题有尝试但尚未通过...
```
**注意事项**
- 作业ID需要从OJ系统获取`6a2bbd65aeff4da880b8f01d`
- 如果学生姓名在OJ系统中不匹配会返回空数据
- 返回的Markdown直接拼接到课评正文后面不要修改格式
**docx文件处理注意事项**
- 确保已安装python-docx库`pip install python-docx`
- docx文件中的表格会自动转换为Markdown表格格式
- 文件编码问题已解决,无需担心乱码
### 3. 自动生成课评(统一格式,所有课程通用)
**固定格式(必须严格遵守)**
```markdown
【学生姓名】家长好我们本周上课的课程是《XXX》
课程目标:
1. 【知识点1】
2. 【知识点2】
3. 【知识点3】
课评反馈:
【具体课评内容约200字包含优点、建议、期望】
老师签名:橙子
```
生成规则:
- 课程目标从本节课教案中提取真实知识点,禁止编造
- 课评反馈包含:优点表扬 + 温和建议 + 鼓励期望
- **表情包丰富原则**课评正文中适当穿插表情符号让文字更生动有温度每个课评至少使用3-5个表情分布在夸奖、建议、结尾等位置
- **CSP班级专属要求**必须查询OJ系统的**A包作业完成情况**进行详细分析包含完成率、思考模式、错误分布、改进建议【OJ做题数据】板块放在课评反馈的最后部分
- 称呼规则:三字姓名默认去掉姓氏,直呼后两个字(如"陈圆振"→"圆振"),更亲切
- 内容完全基于从录音中提取的表现信息和教案知识点,不编造内容
- **⚠️ 质量自检(必须执行)**:每条课评生成后,按照「课评质量评分标准」自检:
- 字数:正文 180350 字 ✓
- 禁用词:无笼统空泛词 ✓
- 结构:知识点总结 + 学情反馈 + 教师签名 ✓
- Emoji35 个 ✓
- 称呼:去掉姓氏直呼名字 ✓
- 具体化:有具体行为细节 ✓
- 建议质量:可落地执行的个性化建议 ✓
- 纵向对比:结合画像对比过往表现 ✓
- 专业点评:紧扣课程知识点 ✓
---
### 📋 生成后确认流程(必须遵守)
1. 一批课评全部生成后,我会先把所有课评展示给你,不保存
2. 等待你确认没问题后,再执行保存操作
3. 如果你需要修改,我会根据你的要求修改后再次给你确认,直到你满意再保存
---
## 🎨 各班级风格规范(自动匹配)
### AICODE03班 - 家长信格式·温暖鼓励型
- 固定开头:"家长好,本周学习的内容是《...》" + 5个知识点与 CSP03 一致)
- 课程目标后空一行,再写"课评反馈:"正文
- 多用"很棒"、"特别棒"、"超棒"和波浪号""
- 描述具体行为:"一字一字打字"、"和AI聊了一节课"
- 温和建议用"要是...就更好啦~"
- **必须描述作品创意和亮点**:用中文描述学生作品的创意、技术点、亮点
- **表情包使用**:课评正文中适当穿插表情,让文字更生动温暖
- 夸奖时:🌟✨🎉👍
- 鼓励时:💪🔥🚀
- 温和建议时:😊💡🌸
- 结尾固定:"老师会继续关注【姓名】的表现,期待看到更多精彩!🌟💡"
**⚠️ AICODE03班强制要求**
- **必须查看作品文件夹**,了解每个学生作品的创意和亮点
- **必须用中文描述作品**,写进课评中
- 描述技巧:
- ❌ "嘉博的作品做得不错"(笼统)
- ✅ "嘉博的作品是一个猜数字游戏,用了独特的渐变色背景,还添加了音效和暂停功能,创意很棒!"(具体描述)
#### AICODE03班作品描述示例
```markdown
嘉博今天表现特别棒~对循环嵌套的理解很到位,能快速理解并动手尝试~
自己完成了课堂练习,特别专注!作品是一个猜数字游戏,用了独特的渐变色背景,
还添加了音效和暂停功能,创意很棒!
要是可以在代码注释上再详细一点就更好啦~
老师会继续关注嘉博的表现,期待看到更多精彩!🌟💡
```
### K4班 - 家长信格式·温和鼓励型
- 固定开头:"家长好,本周学习的内容是《...》" + 5个知识点
- 肯定创意:"能够有自己的创意"
- 温和指出:"不过老师发现...专注力有些下降"
- **表情包使用**K4班学生年龄小多用可爱活泼的表情增加亲和力
- 表扬创意时:🎨🌈✨🌟
- 鼓励坚持时:💪🐱🚀
- 提醒专注时:👀💡😊
- 结尾可用:"继续加油哦!🌟"、"相信你会把程序做得更完整!🚀"
### CSP03班 - 家长信格式·要求型
- 固定开头:"家长好,本周学习的内容是《...》" + 5个知识点
- 表扬积极:"状态在线"、"早早到校等候超积极"
- 期望要求:"希望多思考"、"理解为什么这么写,不只是抄完就好~"
- **表情包使用**CSP班学生偏大表情偏励志和认可风格
- 表扬状态时:💪✨🎯🔥
- 肯定进步时:📈👏🌟
- 提出期望时:💡📝😊
- 结尾固定:"加油呀!💪✨"
**⚠️ CSP03班强制要求**
- **必须查询OJ做题数据**没有OJ数据的CSP课评是不完整的
- 执行命令:`python scripts/get_student_oj.py --homework-id <作业ID> --student "<姓名>"`
- OJ数据板块放在课评正文后面格式见下方模板
#### CSP03班 OJ数据板块格式自动生成
**OJ作业包定位说明**
- A包 = 课堂练习(**包含5道具体题目必须全部列出**
- B包 = 必须完成的课后家庭作业(未完成会明确提醒家长督促)
- C包 = 拓展训练(学有余力的同学可挑战)
```markdown
## 【OJ做题数据】
**A包课堂练习完成情况**: 4/5 (共8次提交)
| 题目 | 类型 | 状态 | 提交次数 | 思考模式 | 错误类型 |
|------|------|------|----------|----------|----------|
| CSP03-XXA1 | 基础题 | ✅ 通过 | 1 | 一气呵成 | — |
| CSP03-XXA2 | 基础题 | ✅ 通过 | 1 | 一气呵成 | — |
| CSP03-XXA3 | 基础题 | ✅ 通过 | 2 | 调试改进 | WA×1 |
| CSP03-XXA4 | 提高题 | ✅ 通过 | 2 | 调试改进 | WA×1 |
| CSP03-XXA5 | 提高题 | ❌ 未通过 | 2 | 遇到困难 | CE×1, WA×1 |
---
| CSP03-XXB | 课后作业(必做) | ✅ 已完成 | 3 | 反复调试 | WA×2 |
| CSP03-XXC | 拓展训练(选做) | ⬜ 未提交 | 0 | — | — |
**📊 分析**: A包5道题完成了4道基础题全部掌握提高题第5道考察的是边界条件处理还需要加强B包必做课后作业已完成知识点巩固得不错C包拓展题未提交学有余力可以尝试挑战。
**错误分布**: 编译错误1次答案错误4次主要是边界条件考虑不周全建议课后多练类似题目。
```
**自动判断规则**
- ✅ A包所有5道题必须全部列出不管是否完成不能只显示1个A包
- ✅ 如果B包未完成/未通过:明确标注"【重要提醒】B包是必须完成的课后家庭作业麻烦家长督促孩子在本周内完成提交"
- ✅ 如果B包已完成表扬"课后作业完成及时,知识点巩固得不错"
- ✅ 如果C包完成了重点表扬"主动完成拓展训练,探索精神值得鼓励"
- ✅ 如果C包未完成不做硬性要求只提"学有余力可以尝试挑战"
- ✅ 对A包中未完成的题目给出具体的知识点建议帮助孩子针对性提高
### 体验课 - 家长信格式·转化导向型
- 固定开头:"家长好,今天体验的是《...》课程" + 课程价值介绍
- 突出"第一次":强调新体验,降低焦虑,突出潜力
- 建立愿景:描述继续学习后孩子能达到的水平
- 自然引导报课:用期待和相信引导,不硬推销
- **表情包使用**:体验课要展示活力和吸引力,表情丰富但不过度
- 欢迎首次体验时:🎉👋✨🌟
- 展示潜力时:💡🚀🎯💪
- 建立愿景时:📈🌈🔮
- 结尾固定:"期待在正式课堂上再次见到【姓名】!💻✨"
---
## 💾 保存规则(你确认后自动执行)
你确认课评没问题后我会自动保存到多个位置严格遵守课评规范V1.0要求:
### 📌 命名规范(必须严格遵守)
- **课程编号规则**C++竞赛班统一用`CSP`AI编程班统一用`AICODE`,不得使用`AI``C++`等缩写
- **文件名规则**`YYYYMMDD_课程编号-课次.md`(如`20260418_CSP05-07.md``20260330_AICODE03-02.md`
- **日期要求**:文件名中的`YYYYMMDD`必须与校宝`teaching_date`完全一致,不得使用编写/提交日期
- **特殊状态文件**
- 请假:`YYYYMMDD_课程编号-课次(请假).md`
- 未上课:`YYYYMMDD_课程编号-课次(未到).md`
- 补课:正常文件名 `YYYYMMDD_课程编号-课次.md`,放在补课班级下的 `补课/` 目录中
### 1. 保存到学生个人单次课评文件(必须,用于自动化统计)
为每位学生生成单独的单次课评文件,这是课评完成率统计的依据:
**路径**`.claude/memory/class/[班级]/[姓名]/feedback/YYYYMMDD_课程编号-课次.md`
**格式**
```markdown
# 课程名称:[课程名称]
**授课日期**: [YYYY-MM-DD]
**课评内容**
[生成的课评正文]
---
**老师签名:橙子**
```
### 2. 保存到统一周课评汇总(后写的放上面)
同时保存到统一的课评汇总目录,同一周的课评放在同一个文件里,新生成的放在最顶部:
**根目录**`E:/cc/4work_project/ClassFeedback/output/课评汇总/`
**文件名规则**`202X年第X周课评汇总.md`比如「2026年第18周课评汇总.md」
**排序规则**:最新生成的课评放在文件的最前面,旧的课评在后面,倒序排列
**班级分组**:同一个班级的课评放在一起,按班级分组展示
### 4. 补课学生处理
> 核心原则:学生来哪个班补课,课评就保存在**那个班的 `补课/` 目录下**。
- **保存路径**`.claude/memory/class/[补课班级]/补课/[学生姓名]/feedback/`
- **文件名**`YYYYMMDD_课程编号-课次.md`
- 这里的**课程编号**使用补课班级本身的编号如去CSP03班补课就用 `CSP03`
- 文件内容正常写课评,无需特殊标记
### 5. 班级总结保存
为每个班级保存本节课的班级总结:
**路径**`.claude/memory/class/[班级]/summaries/YYYYMMDD_课程编号-课次_班级反馈.md`
**格式**使用课评规范V1.0中的班级群发文案模板
### 6. 未到课记录生成
学生请假或未上课(人没到且无请假),都要生成记录文件:
**请假**
- **路径**`.claude/memory/class/[班级]/[姓名]/feedback/YYYYMMDD_课程编号-课次(请假).md`
- **格式**使用课评规范V1.0中的请假记录模板
**未上课**
- **路径**`.claude/memory/class/[班级]/[姓名]/feedback/YYYYMMDD_课程编号-课次(未到).md`
- **格式**:简要记录本次未到课,无课评内容
---
### 7. 生成课评汇总网页(新增)
为每个班级生成本节课的**家长版课评汇总HTML网页**,方便橙子直接发给家长浏览。
**执行时机**在所有课评保存完成后执行无论是否已有Markdown汇总
**判断逻辑**
1. 计算本节课所属的教学周次第X周
2. 构造文件名:`第{X}周{星期时间}{课程编号}课评.html`
- 星期时间从API数据中提取如"周日下午"、"周六早上"
- 课程编号如 `AICODE03``CSP03``K4`
- 示例:`第14周周日下午AICODE03课评.html`
3. 检查 `output/课评汇总/` 目录下是否已存在该文件
4. 如果**已存在****跳过不覆盖**(避免误删橙子手动修改过的网页)
5. 如果**不存在**基于模板生成新的HTML文件
**模板路径**`.claude/templates/课评汇总网页.html`
**生成规则**(基于模板,替换以下动态内容):
| 模板位置 | 替换内容 | 数据来源 |
|---------|---------|---------|
| `<title>`、顶部标题 | 第X周 · [课程编号]班课评 | 周次 + 课程编号 |
| 顶部副标题、封面日期 | YYYY年M月D日 · 《课程名称》 · 橙子老师 | API的teaching_date + 课程计划 |
| 封面大标题 | 《课程名称》 | 课程计划 |
| 封面副标题 | 课程领域 · 第X课 | 课程计划 |
| 封面信息区 | 📅日期、⏰时间、👩‍🏫老师 | API数据 |
| 知识点列表 | 5条知识点 | 课程计划中的教学目标 |
| 学生卡片 | 每张卡片一个学生 | 本节课所有学生的课评 |
| 状态标签 | 正常上课/补课/请假/未到 | 出勤记录 |
| 页脚 | 穹狼科创 · [课程编号]班 · 橙子老师 | 课程编号 |
| JS totalCards | 学生总数 | 实际学生数量 |
| 进度点 | N个对应N个学生 | 学生数量 |
| 导出内容 | 课程信息和知识点 | 同上 |
**学生卡片生成规则**
- 为**每个学生**生成一张 `.student-card`
- 第一张卡片必须有 `active` 类,其余没有
- 课评正文中的换行符 `\n` 替换为 `<br>`
- 评价指标根据班级风格选取2~4个
- AICODE班课堂互动、专注度、作品完成、知识点掌握
- CSP班课堂互动、专注度、OJ完成情况、知识点掌握
- K4班课堂互动、创意表达、作品完成、专注度
- 请假/未到课的学生也要生成卡片,课评内容写简短说明,状态标签用 `badge-absent`
**保存路径**
```
output/课评汇总/第{X}周{星期时间}{课程编号}课评.html
```
**保存完成后额外提示**
```
✅ 课评汇总网页已生成output/课评汇总/第X周[星期时间][课程编号]课评.html
可直接用浏览器打开,发给家长浏览
```
**如果文件已存在则提示**
```
⏭️ 课评汇总网页已存在第X周[星期时间][课程编号]课评.html跳过生成
如需更新,请手动删除后重新生成
```
---
### 保存完成后我会告诉你:
✅ 已保存X条课评
✅ 周汇总已更新:[周数]周汇总文件已更新,新课评已放在最顶部
✅ 课评汇总网页output/课评汇总/第X周[星期时间][课程编号]课评.html如已存在则跳过
---
## 📝 示例课评(参考)
**从课堂录音转写生成课评示例**
```
用户提供第15课录音转写.docx任意路径
系统自动检测到docx格式 → 使用python-docx读取录音文本 → AI分析提取学生表现
后续流程:匹配课程计划 → 读取学生画像 → 生成课评
```
**AICODE课程 - 鼓励型**
> 李明今天虽然是第一次接触AI绘画但我看到了你眼里的好奇这就是最好的开始。你的描述很有画面感"想要一个会眨眼的可爱猫咪"这就是好的Prompt。虽然操作还有点生疏但老师注意到你一直在尝试这份坚持比做对题目更珍贵。下次可以把想法先写在便签纸上分点列出跟AI沟通会更顺畅。记住编程最大的门槛不是英文或数学是敢于尝试的勇气你已经有了。继续和你的"AI搭档"对话吧,它会越来越懂你的。
**CSP03班 - 家长信格式·要求型含OJ数据**
> 家长好,本周学习的内容是《字符串处理》:
> 1. string 类型的声明与使用
> 2. 字符串的输入输出cin / getline
> 3. 字符串的拼接与比较操作
> 4. 常用字符串函数size / substr / find
> 5. 培养独立调试与耐心排查错误的能力
>
> 子煜状态在线,课堂互动积极,能够跟上老师的节奏。对于字符串的基本操作掌握得不错,在讲解 substr 和 find 函数时能迅速理解并动手尝试。
>
> ## 【OJ做题数据】
>
> **A包课堂练习完成情况**: 4/5 (共8次提交)
>
> | 题目 | 类型 | 状态 | 提交次数 | 思考模式 | 错误类型 |
> |------|------|------|----------|----------|----------|
> | CSP03-07A1 | 基础题 | ✅ 通过 | 1 | 一气呵成 | — |
> | CSP03-07A2 | 基础题 | ✅ 通过 | 1 | 一气呵成 | — |
> | CSP03-07A3 | 基础题 | ✅ 通过 | 2 | 调试改进 | WA×1 |
> | CSP03-07A4 | 提高题 | ✅ 通过 | 2 | 调试改进 | WA×1 |
> | CSP03-07A5 | 提高题 | ❌ 未通过 | 2 | 遇到困难 | CE×1, WA×1 |
>
> ---
> | CSP03-07B | 课后作业(必做) | ✅ 已完成 | 3 | 反复调试 | WA×2 |
> | CSP03-07C | 拓展训练(选做) | ⬜ 未提交 | 0 | — | — |
>
> **📊 分析**: A包5道题完成了4道基础题全部掌握提高题第5道考察的是字符串边界处理还需要加强B包必做课后作业已完成知识点巩固得不错C包拓展题未提交学有余力可以尝试挑战。
> **错误分布**: 编译错误1次答案错误4次主要是边界条件考虑不周全建议课后多练类似题目。
>
> A包前4题完成得都不错说明课堂知识点吸收得很好。第5题虽然没做出来但也尝试了2次调试能力在进步。希望课后能抽时间把第5题搞明白理解边界条件的处理方法而不是放着不管加油呀💪✨

View File

@@ -0,0 +1,102 @@
# 交互式课评生成示例
## 场景演示:从笼统到具体的课评生成过程
### 初始信息(不够具体)
```
学生:嘉博
班级周六晚上1900AI03班
课程:个人网页完善
课次第8课
表现:超棒、很专注、有创意
```
### 交互式提问过程
#### 第一次提问(获取具体行为)
> **AI**:您提到嘉博表现"超棒",能具体说说他在哪个环节表现最突出吗?
**用户回复**:他在修改网页颜色和添加小花的时候特别用心,主动调整了好几次才满意。
#### 第二次提问(获取细节)
> **AI**:能描述一下他修改网页的具体过程吗?比如遇到了什么问题,怎么解决的?
**用户回复**:他说"我觉得颜色太暗了"然后尝试了3种颜色方案最后选了一个淡紫色的背景。添加小花的时候他调整了花的大小和位置说"要让小花看起来更自然"。
#### 第三次提问(获取成长信息)
> **AI**:相比上节课,嘉博在哪些方面有明显进步?
**用户回复**:上节课他还需要老师提醒才记得保存,这节课主动保存了好几次。打字速度也有进步,能更流畅地表达自己的想法了。
#### 第四次提问(获取家庭配合建议)
> **AI**:家长最关心孩子哪方面的能力?在家可以做什么配合?
**用户回复**:家长希望培养孩子的设计思维,可以多观察生活中的好设计。在家可以让孩子尝试设计其他网页内容。
### 生成的高质量课评(基于具体信息)
# 课程名称AI大作家
**授课日期**2026-05-03
**课评内容**
嘉博今天对自己的个人网页特别用心上课很开心看到原始页面觉得颜色太暗主动尝试了3种颜色方案最终选择了淡紫色背景还仔细调整了小花的大小和位置追求"看起来更自然"的效果~这种对细节的执着和审美意识让老师很惊喜!
相比上节课嘉博明显进步了——记得主动保存文件多次打字速度也更流畅能更清楚地表达自己的创意想法。能详细地把自己的兴趣爱好、梦想告诉AI表达得很清楚
你对网页细节的关注说明你很有设计眼光,继续发挥创意,你的网页会越来越精彩的!
---
## 📋 家长视角(本期重点)
**🎯 本节课核心知识**
- 网页设计基础掌握HTML/CSS的基本结构能独立修改网页样式
- 创意表达:能将自己的创意通过代码实现,培养设计思维
- 人机协作学会用AI辅助创作提高表达效率
**📚 必学内容清单**
- **基础技能**:能独立创建个人网页,包含文字、图片和样式
- **设计能力**:能运用色彩搭配和布局原则,设计美观的界面
- **技术掌握**理解HTML标签和CSS样式的作用能进行简单修改
**🏠 家庭配合建议**
1. **每日练习**15分钟鼓励孩子继续完善个人网页可以添加更多内容如家庭照片、爱好介绍等
2. **能力培养**:重点关注孩子的设计思维和审美能力,鼓励多观察生活中的优秀设计
3. **亲子互动**:和孩子一起浏览优秀网页,讨论"为什么这个网页好看",培养审美鉴赏能力
**📝 课后作业要求**
- **必做**完善个人网页添加至少3个新内容板块如家庭介绍、兴趣展示、未来计划
- **选做**:尝试添加动画效果或交互功能,让网页更生动有趣
- **提交**:下周上课前完成,家长可以和孩子一起欣赏作品,讨论改进方向
---
## 📈 孩子成长亮点
### 已达成的进步
**设计意识**:嘉博展现出良好的审美和设计思维,能主动调整页面效果
**自主学习**:能主动保存文件,减少对老师的依赖
**表达能力**能更流畅地表达自己的想法与AI沟通更高效
### 值得关注的潜力
🎯 **技术深度**可以学习更多网页高级功能如JavaScript交互
🎯 **创作广度**:可以将设计思维应用到其他创作项目中
### 长期发展建议
- 建议未来可以学习JavaScript让网页具有更多交互功能
- 可以参加网页设计比赛,将兴趣转化为成就感
- 继续培养审美能力,这对未来的任何创作都有帮助
---
## 💬 给家长的话
嘉博在个人网页设计中展现出了很好的创作天赋。他对颜色和布局的敏感度表明他有很强的设计潜力。建议家长:
1. **多提供创作机会**:让孩子参与家庭网页设计,如电子相册、家庭介绍页面等
2. **培养观察力**:引导孩子观察生活中的优秀设计,分析为什么设计得好
3. **鼓励尝试**:支持孩子尝试新的设计元素和技术,不怕犯错
嘉博的进步让我们看到了他在创意设计方面的潜力,继续保持这份热情,他会在编程创作领域走得更远。

View File

@@ -0,0 +1,54 @@
# 学生画像模板
> 填写指南:根据学生的实际表现选择对应的类型,主要从性格特点、学习状态、能力水平三个维度判断
---
## 🌱 鼓励型学生
### 内向谨慎型
- **表现**:安静、敏感、害怕出错
- **语言**:很少主动说话、声音小、问"对不对"
- **策略**:多鼓励、创造低压力环境
### 信心不足型
- **表现**:常说"不会"、"做不到"
- **行为**:遇到问题先放弃、需要引导
- **策略**:分解任务、创造小成功体验
### 新手入门型
- **表现**:刚接触编程、充满好奇
- **问题**表达不清晰、易被bug卡住
- **策略**:放慢节奏、及时肯定每个小进步
---
## 🔥 激励型学生
### 聪明浮躁型
- **表现**:反应快、但不够深入
- **语言**"我会了"、"太简单"
- **策略**:给挑战、追求极致
### 潜力待挖型
- **表现**:能完成任务但缺乏探索
- **心理**:容易被满足、缺乏内驱力
- **策略**:展示更高可能性、激发向往
### 容易满足型
- **表现**:做完基本要求就停了
- **心态**"够用了"、不想更进
- **策略**:对比激发、挑战胜负欲
---
## 📝 快速判断
| 课堂表现 | 学生类型 | 推荐风格 |
|----------|----------|----------|
| 不敢说话、害怕出错 | 内向谨慎型 | 鼓励型 |
| "我不会"、"我做不好" | 信心不足型 | 鼓励型 |
| 第一次学、什么都新鲜 | 新手入门型 | 鼓励型 |
| "我会了"但不深入 | 聪明浮躁型 | 激励型 |
| 能完成但不探索 | 潜力待挖型 | 激励型 |
| "够用了"、不想更进 | 容易满足型 | 激励型 |

View File

@@ -0,0 +1,274 @@
# 课程记录文档模板
这是批量生成课评时,用户需要提供的课程记录文档模板。
## 使用说明
1. 复制本模板,修改周次、日期范围和学生信息
2. 按班级分组,记录每个学生的课堂表现
3. 保存为 md 文件后提供给 AI即可批量生成课评
---
# 第X周课程记录
**日期范围**2026-04-17 至 2026-04-19
---
## 【周五下午 1700 AI03班】1人上课
### 李梓宁
- **课程**AI大作家
- **日期**2026-04-17
- **课次**第7课
- **表现**:对自己的小说特别上心,不断调试修改,主动要求更好的效果,精益求精
- **状态**:✅ 出勤
---
## 【周五晚上 1900 K4班】4人上课
### 陈圆振
- **课程**:彩虹生成器
- **日期**2026-04-17
- **课次**第7课
- **表现**:思维敏捷,掌握分支嵌套知识点,认真完成作品,课堂积极性高
- **状态**:✅ 出勤
### 彭煜腾
- **课程**:彩虹生成器
- **日期**2026-04-17
- **课次**第7课
- **表现**:掌握循环嵌套结构,迅速完成作品,出现 bug 能主动拉着老师讨论
- **状态**:✅ 出勤
### 郭艺嘉
- **课程**:彩虹生成器
- **日期**2026-04-17
- **课次**第7课
- **表现**:掌握分支嵌套知识点,反应超快,认真完成作品,课堂热情活泼
- **状态**:✅ 出勤
### 王晨语
- **课程**:彩虹生成器
- **日期**2026-04-17
- **课次**第7课
- **表现**:迅速完成基础内容,主动添加"火球乱飞"创意效果,想法天马行空
- **状态**:✅ 出勤
---
## 【周六早上 0830 CSP03班】5人上课
### 杨林轩
- **课程**:字符串处理
- **日期**2026-04-18
- **课次**第7课
- **表现**:状态在线,表现积极,对字符串知识掌握不错
- **状态**:✅ 出勤
### 欧俊宇
- **课程**:字符串处理
- **日期**2026-04-18
- **课次**第7课
- **表现**:状态在线,能和同桌积极讨论问题,帮助同桌找错误
- **状态**:✅ 出勤
### 汪子杰
- **课程**:字符串处理
- **日期**2026-04-18
- **课次**第7课
- **表现**:早早到校,一进教室就先打开题目准备做题,学习主动性强
- **状态**:✅ 出勤
### 谭锦程
- **课程**:字符串处理
- **日期**2026-04-18
- **课次**第7课
- **表现**:状态在线,能和同桌互相纠错,对之前知识点还有印象
- **状态**:✅ 出勤
### 谢明泓
- **课程**:字符串处理
- **日期**2026-04-18
- **课次**第7课
- **表现**:状态在线,能发现 string::npos 的具体含义,善于观察和思考
- **状态**:✅ 出勤
---
## 【周六下午 1400 CSP03班】4人上课1人请假
### 张雨禾
- **课程**:字符串处理
- **日期**2026-04-18
- **课次**第7课
- **表现**:上课对知识掌握不错,下课积极完成作业,但过去七天很多知识点不太记得
- **状态**:✅ 出勤
### 魏铭轩
- **课程**:字符串处理
- **日期**2026-04-18
- **课次**第7课
- **表现**:状态在线,对字符串知识掌握很棒,课堂分神次数明显下降
- **状态**:✅ 出勤
### 苏俊宇
- **课程**:字符串处理
- **日期**2026-04-18
- **课次**第7课
- **表现**:状态在线,能了解字符串语法,上课认真,紧跟老师节奏
- **状态**:✅ 出勤
### 廖梓琪
- **课程**:字符串处理
- **日期**2026-04-18
- **课次**第7课
- **表现**:状态在线,对数组知识能迅速反应,理解力强,但注意力还需要加强
- **状态**:✅ 出勤
### 郑子煜
- **课程**:字符串处理
- **日期**2026-04-18
- **课次**第7课
- **状态**:⏸ 请假
- **备注**:请家长督促在家复习本周字符串相关知识点,包括 getline()、substr()、size()、find() 函数
---
## 【周六晚上 1900 AI03班】4人上课1人请假
### 王子墨
- **课程**AI大作家插图生成
- **日期**2026-04-18
- **课次**第7课
- **表现**:上课特别积极,遇到问题主动请教,和 AI 围绕"红狼"角色进行有趣辩论,不放弃直到达成目标
- **状态**:✅ 出勤
### 谭俊研
- **课程**AI大作家插图生成
- **日期**2026-04-18
- **课次**第7课
- **表现**:安静专注完成任务,能独立写提示词生成图片,作品完成度高
- **状态**:✅ 出勤
### 黄彦棋
- **课程**AI大作家插图生成
- **日期**2026-04-18
- **课次**第7课
- **表现**:状态超棒,生成插图速度快,只看演示一次就能独立完成,学习效率超高
- **状态**:✅ 出勤
### 李承泽
- **课程**AI大作家插图生成
- **日期**2026-04-18
- **课次**第7课
- **表现**:顺利完成插图生成,和同学们热烈讨论小说情节,但聊小说时有点过于兴奋
- **状态**:✅ 出勤
### 陈嘉博
- **课程**AI大作家插图生成
- **日期**2026-04-18
- **课次**第7课
- **状态**:⏸ 请假
- **备注**:请家长安排时间,督促在家了解本周小说插图生成相关知识点
---
## 【周日早上 0845 AI03班】3人上课1人缺勤
### 卢皓霖
- **课程**AI大作家插图生成
- **日期**2026-04-19
- **课次**第7课
- **表现**:紧跟老师完成插图生成,插图精美,对风格有自己的主见,主动要求换成中式插图
- **状态**:✅ 出勤
### 杨翊弘
- **课程**AI大作家插图生成
- **日期**2026-04-19
- **课次**第7课
- **表现**:紧跟老师完成插图生成,认真听讲,一步一步跟着操作,大方表达自己的想法
- **状态**:✅ 出勤
### 朱浩铭
- **课程**AI大作家插图生成
- **日期**2026-04-19
- **课次**第7课
- **表现**:没有迟到,早早到课室,紧跟老师节奏,遇到版权问题时主动问老师并自己解决
- **状态**:✅ 出勤
### 黄俊博
- **课程**AI大作家插图生成
- **日期**2026-04-19
- **课次**第7课
- **状态**:❌ 未上课
- **备注**:去其他老师班级上课,未到本班上课,请家长确认课程安排
---
## 【周日早上 1030 CSP03班】3人上课
### 王佳琳
- **课程**:字符串处理
- **日期**2026-04-19
- **课次**第7课
- **表现**:状态在线,表现积极,但对之前学过的知识有些遗忘,课后复习需要加强
- **状态**:✅ 出勤
### 卢华琛
- **课程**:字符串处理
- **日期**2026-04-19
- **课次**第7课
- **表现**:状态在线,表现积极,状态愈加改善,已能完全进入学习状态
- **状态**:✅ 出勤
### 唐钎宸
- **课程**:字符串处理
- **日期**2026-04-19
- **课次**第7课
- **表现**:状态在线,对知识点有了解,但课堂上容易开小差,注意力不太能集中
- **状态**:✅ 出勤
---
## 【周日下午 1400 AI03班】4人上课
### 贺楚悦
- **课程**AI大作家插图生成
- **日期**2026-04-19
- **课次**第7课
- **表现**:完成得非常不错,生成的插图和作品风格很相似,贴合度特别高,一开始不太明白流程,教导几次后就能熟练掌握
- **状态**:✅ 出勤
### 林俊宇
- **课程**AI大作家插图生成
- **日期**2026-04-19
- **课次**第7课
- **表现**:一直跟着老师节奏完成任务,完美生成所有图片,主动重新修改封面,对作品有要求
- **状态**:✅ 出勤
### 余浩宸
- **课程**AI大作家插图生成
- **日期**2026-04-19
- **课次**第7课
- **表现**:能够把自己的任务做出来,前面一直跟着老师节奏,还会转过身认真听课,后面状态稍有下滑但整体完成
- **状态**:✅ 出勤
### 吴浩睿
- **课程**AI大作家插图生成
- **日期**2026-04-19
- **课次**第7课
- **表现**:生成的插图十分恐怖,和小说风格十分合适,氛围感拉满,对生图、插图、标注知识点都掌握得不错
- **状态**:✅ 出勤
---
## 状态说明
| 状态符号 | 含义 |
|---------|------|
| ✅ 出勤 | 学生正常上课 |
| ⏸ 请假 | 学生请假 |
| ❌ 未上课 | 学生未上课(缺勤/调班等) |

View File

@@ -0,0 +1,95 @@
# 课评示例
## 示例1Kitten课程 - 鼓励型
**学生**:小明 | **班级**三年级A班 | **课次**第3课
小明今天虽然是第一次接触循环积木,但我看到了你眼里的好奇,这就是最好的开始。你的故事很有想象力,"小猫去太空探险"这个创意太棒了!虽然积木用得还不太熟练,但你能说清楚自己想要什么效果,这就是编程思维的开始。程序没跑通没关系,重要的是你愿意一次次调整积木,这份坚持最珍贵。下次我们可以试着先把故事在纸上画出来,再一块块搭积木,这样会更有条理。记住,每一款伟大的游戏都是从第一个积木开始的,继续创造吧!
---
## 📋 家长视角(本期重点)
**🎯 本节课核心知识**
- 循环积木:掌握重复执行的基本概念,能独立完成简单动画
- 条件判断:理解如果...就...的逻辑,能制作简单的交互效果
- 创意表达:培养创意思维,能把自己的想法通过积木实现
**📚 必学内容清单**
- **基础操作**:熟练使用重复积木完成连续动作
- **创意设计**:能设计简单的动画故事或游戏
- **问题解决**:遇到积木错误能尝试不同的解决方案
**🏠 家庭配合建议**
1. **每日练习**15分钟用积木搭建一个简单的动画比如小猫走路或花儿开放
2. **能力培养**:重点关注孩子的创意表达,鼓励自由发挥,没有对错之分
3. **亲子互动**:和孩子一起玩"编程猜谜"游戏,描述一个动作让孩子用积木实现
**📝 课后作业要求**
- **必做**:完成"小猫探险"作品包含至少3个场景和简单交互
- **选做**:给作品添加音效或者背景故事,让作品更生动
- **提交**:下周上课前完成,可以和孩子一起欣赏他的创作成果
---
## 示例2AIGC课程 - 激励型
**学生**:小红 | **班级**四年级B班 | **课次**第5课
小红以你的聪明程度今天这个AI绘画应该20分钟搞定咱们来挑战一下你的反应超快老师刚说需求你就能组织出清晰的Prompt这种表达能力是天赋。这个页面的动画效果很惊艳你偷偷研究了不少技巧吧审美在线但别只满足于实现功能去问问AI"这段代码还能怎么优化",追求极致性能。你的天花板远不止于此,别让"够用"成为你的绊脚石!
---
## 📋 家长视角(本期重点)
**🎯 本节课核心知识**
- Prompt工程掌握清晰描述需求的方法能写出高质量的提示词
- AI绘画理解AI绘画的基本原理能独立创作创意图片
- 动画设计:学会制作简单动画效果,培养审美和创意能力
**📚 必学内容清单**
- **基础技能**能独立编写有效的Prompt准确表达创意想法
- **技术掌握**熟悉AI工具的使用方法能解决常见问题
- **创新应用**:能结合多种技术创作出完整的作品
**🏠 家庭配合建议**
1. **每日练习**15分钟让孩子用AI工具完成一个小创作可以是写故事、设计图片或解决问题
2. **能力培养**:重点关注孩子的语言表达能力和创意思维,鼓励多描述自己的想法
3. **亲子互动**和孩子讨论AI生成的内容问问他"为什么AI会这样回答"培养批判性思维
**📝 课后作业要求**
- **必做**:完成"我的梦想世界"AI绘画作品包含至少3个场景和简单动画
- **选做**尝试使用不同的AI工具比如文字生成、音乐创作等
- **提交**:通过班级群提交作品,家长可以一起欣赏和讨论
---
## 示例3CPP课程 - 鼓励型
**学生**:小李 | **班级**五年级C班 | **课次**第8课
小李今天虽然是第一次接触递归但我看到了你眼里的好奇这就是最好的开始。你很善于倾听老师讲的时候你眼睛一直跟着屏幕这种专注是学好编程的基石。虽然代码还有bug但你的思路是对的下一步就是把它表达出来。遇到不懂的地方会标记下来而不是跳过去这种处理方式很务实。下次我们可以试着把思路先画在纸上再写代码这样会更顺畅。老师相信按这个节奏下去你很快就会找到编程的感觉。
---
## 📋 家长视角(本期重点)
**🎯 本节课核心知识**
- 递归概念:理解函数调用自身的基本原理,能写出简单的递归程序
- 边界条件:掌握递归的终止条件,避免无限循环
- 算法思维:培养分治思想,学会将复杂问题分解为简单子问题
**📚 必学内容清单**
- **语法规范**:掌握递归函数的正确写法,包括函数定义和调用
- **算法理解**:理解递归的执行过程,能跟踪函数调用栈
- **调试能力**:能独立排查递归中的常见错误,如栈溢出
**🏠 家庭配合建议**
1. **每日练习**20分钟在OJ系统练习递归题目重点关注边界条件
2. **能力培养**:培养孩子的耐心和细致,鼓励在写代码前先画递归树
3. **亲子互动**:和孩子讨论生活中的递归例子, like 俄罗斯套娃、分形图案等
**📝 课后作业要求**
- **必做**完成OJ系统的递归练习题3道代码必须包含详细注释
- **选做**:尝试用递归解决实际问题,如汉诺塔、斐波那契数列等
- **提交**通过OJ系统提交截止日期前完成家长可查看提交记录和得分情况

View File

@@ -0,0 +1,61 @@
# 课评示例 - 家长视角版
## 示例AI03课程 - 温暖鼓励型
**学生**:嘉博 | **班级**周六晚上1900AI03班 | **课次**第8课
嘉博今天对自己的个人网页特别用心上课很开心能够详细地把自己的兴趣爱好、梦想告诉AI表达得很清楚看到页面觉得颜色不太好看就主动修改卡片颜色还给背景添加了小花这种根据自己的审美进行优化的意识很棒你对网页细节的关注说明你很有设计眼光继续发挥创意你的网页会越来越精彩的
---
## 📋 家长视角(本期重点)
**🎯 本节课核心知识**
- 网页设计基础掌握HTML/CSS的基本结构能独立修改网页样式
- 创意表达:能将自己的创意通过代码实现,培养设计思维
- 人机协作学会用AI辅助创作提高表达效率
**📚 必学内容清单**
- **基础技能**:能独立创建个人网页,包含文字、图片和样式
- **设计能力**:能运用色彩搭配和布局原则,设计美观的界面
- **技术掌握**理解HTML标签和CSS样式的作用能进行简单修改
**🏠 家庭配合建议**
1. **每日练习**15分钟鼓励孩子继续完善个人网页可以添加更多内容如家庭照片、爱好介绍等
2. **能力培养**:重点关注孩子的设计思维和审美能力,鼓励多观察生活中的优秀设计
3. **亲子互动**:和孩子一起浏览优秀网页,讨论"为什么这个网页好看",培养审美鉴赏能力
**📝 课后作业要求**
- **必做**完善个人网页添加至少3个新内容板块如家庭介绍、兴趣展示、未来计划
- **选做**:尝试添加动画效果或交互功能,让网页更生动有趣
- **提交**:下周上课前完成,家长可以和孩子一起欣赏作品,讨论改进方向
---
## 📈 孩子成长亮点(家长期望达成情况)
### 已达成的进步
**创意表达能力**:嘉博能清晰表达自己的想法,并能通过网页实现
**审美能力**:主动优化颜色和布局,展现出良好的设计意识
**专注力**:能长时间投入创作,体现了对编程的兴趣
### 值得关注的潜力
🎯 **技术深度**可以进一步学习更复杂的网页功能如JavaScript交互
🎯 **创作思维**:鼓励将网页设计应用到其他项目,如电子相册、小游戏等
### 长期发展建议
- 建议未来可以学习JavaScript让网页具有更多交互功能
- 可以参加网页设计比赛,将兴趣转化为成就感
- 继续培养审美能力,这对未来任何创作都有帮助
---
## 💬 给家长的话
嘉博在AI03课程中展现出了很好的创作天赋和学习态度。他对个人网页的用心程度表明他有很强的表达欲望和审美能力。建议家长
1. **多鼓励创作**:嘉博喜欢把想法变成现实,可以提供更多创作机会
2. **关注设计思维**:嘉博已经展现出设计眼光,可以引导他观察生活中的优秀设计
3. **保持兴趣**:他对编程的兴趣是最好的老师,保持这份热情比追求技术更重要
通过家校配合,嘉博的创意表达能力会得到更好的发展,这对他未来的学习和工作都有重要价值。

View File

@@ -0,0 +1,134 @@
---
name: 课评质检
description: 对已有课评进行质量检查,输出质检报告和修订稿,支持自动触发和手动触发
type: skill
agent_created: true
---
# 课评质检技能
## 🌟 功能说明
本技能为课评提供质量检查,确保课评达到"准确、具体、有温度、有行动"的标准,可以放心发给家长。
✅ 支持班级群反馈和个人课评
✅ 9个专业质检Agent各司其职、互相校验
✅ 自动输出质检报告 + 修订稿
✅ 三档放行:直接发/修订后发/必须重写
## 📋 触发方式
### 方式1课评生成流程中自动触发
在课评生成技能中,生成完课评后会自动调用本技能进行质检,无需手动操作。
### 方式2手动触发
对AI说
```
用课评质检系统检查这份课评:
[粘贴课评内容]
```
```
质检这份课评:[粘贴课评内容]
```
## 🔧 执行流程
### 第1步并行调用核心质检Agent5个
同时调用以下Agent并行执行
| Agent | 职责 | 输出 |
|-------|------|------|
| 课评证据审计员 | 事实核对 | 数据准确性结论 |
| 课评质量评审员 | 100分制打分 + 硬伤检查 | 评分 + 硬伤结论 |
| 家长-忙碌实用型 | 手机阅读体验 | 长度/重点/行动建议 |
| 家长-结果导向型 | 信息完整性 | 信息缺口 + 行动清单 |
| 家长-细节核对型 | 文内一致性 | 错别字/术语/格式问题 |
### 第2步并行调用剩余家长Agent2个
同时调用以下Agent并行执行
| Agent | 职责 | 输出 |
|-------|------|------|
| 家长-焦虑保护型 | 情绪风险 | 刺痛点 + 建议改法 |
| 家长-成长陪伴型 | 成长性 | 陪伴感建议 |
### 第3步汇总所有反馈
将7个Agent的输出汇总为一份完整的质检意见。
### 第4步调用终稿编辑
调用**课评终稿编辑**,合并所有意见,产出修订稿。
### 第5步三档放行判断
| 条件 | 结论 | 处理 |
|------|------|------|
| 触发任一硬伤 或 总分<70 | 必须重写 | 返回修订稿,建议重写 |
| 无硬伤 且 70-84分 | 修订后发 | 使用终稿编辑的修订稿 |
| ≥85分 且 无硬伤 | 直接发 | 保持原稿,附质检报告 |
## 📊 质检报告格式
```markdown
📋 课评质检报告
【总分】XX / 100
【结论】直接发送 / 修订后发送 / 必须重写
【一、证据审计】
- 已核实:...
- 存疑/风险:...
【二、硬伤检查】
- 触发:无 / 第X项说明
【三、主要问题】(按严重程度排)
1. ...
2. ...
【四、修订稿】
(若结论为"修订后发送"或"必须重写",给出完整修订后的课评)
【五、修改说明】
- 改了什么、为什么改
```
## ⚠️ 核心原则
1. **事实以证据审计员为准**:家长视角的数字意见一律忽略
2. **不做学生横向比较**:揪出"最高/最快/分水岭/紧随XX"等比较词
3. **术语家长能懂**OLE/CE/WA/SJF/AC这类缩写要解释或换成白话
4. **结合学生性格**:完美主义型先肯定韧性再谈方法;佛系型正向收尾不施压
5. **老师是最终决策者**:你给建议和修订稿,老师决定用不用
## 🚀 快速模式
如果用户只想快速检查(如个人课评),可以只调用:
- 证据审计员 + 质量评审员跳过5位家长
- 输出简化版质检报告
## 📝 7个硬伤一票否决项
1. **没有数据**:全文只有"表现不错"等空话
2. **学生高度重复**:换名字就能复用
3. **没有个体差异**:分不出不同学生
4. **只夸不批**:全是"很好""继续保持"
5. **只批不夸**:通篇问题,像批评报告
6. **没有后续建议**:家长不知道下一步做什么
7. **专业误判**:把语法错误说成算法差、把多次提交说成态度差
## 📝 三段式检查
每个被点评的学生必须同时有:
- **数据表现**:完成题数/提交次数/AC/WA情况
- **能力判断**:从数据推断出什么能力卡点
- **下一步建议**:回家具体做什么