补全9月11日至13日课评:为13名学生创建请假文档,为5个班级创建总结文档

This commit is contained in:
chengzi
2026-09-13 19:34:34 +08:00
parent 167d832353
commit 21001eccf5
1322 changed files with 37510 additions and 4136 deletions

143
.dsh/AGENTS.md Normal file
View File

@@ -0,0 +1,143 @@
# AGENTS.md — DeepSeek Harness(DSH)工作指引
> 📌 **本文件是 DSH 环境的项目指引**(替代/并存 Claude Code 的 `CLAUDE.md` 与 Codex 的根 `AGENTS.md`)。
> 用户在 DSH(DeepSeek Harness)里处理本仓库时,以此文件为准。数据目录 `.claude/memory/class/` 与 Claude Code **完全共用**,切换工具不迁移数据。
## 项目概述
**穹狼科创 · 课评生成与课堂反馈管理系统**。给编程课老师(橙子)用的 AI 课评系统:
输入课堂情况 → 自动按班级风格生成约 200 字个性化家长信课评 → 自动质检 → 自动归档(个人课评 / 周汇总 / 班级总结 / 汇总网页 / 画像更新)。
覆盖课程:**CSP**(C++信奥)、**AIAGENT**(AI创意编程)、**Kitten**(图形化)、**GESP 暑假集训**、**AIAGENT 小龙虾夏令营**、**穹狼传奇**、**体验课**(新生转化)。
---
## 🚀 快速使用(三句话)
| 用户说 | 触发技能 | 干什么 |
|--------|---------|--------|
| 「写课评」「生成课评」 | `class-feedback-generate` | 交互问答 → 自动生成 → 质检 → 归档(全程自动) |
| 「检查第X课」「检查 X月X日 到 X月X日」 | `class-feedback-check` | 课次/日期双模式检查 + API出勤与本地课评交叉核对 |
| 「质检这份课评」「用课评质检系统检查」 | `class-feedback-qa` | 证据审计 + 100分制评分 + 7硬伤否决 + 家长视角 + 终稿修订 |
技能定义在 `.dsh/skills/<skill>/SKILL.md`,**写课评前必须加载** `class-feedback-generate`,质检自动联动 `class-feedback-qa`。
---
## 🔄 写课评标准工作流(DSH 执行方式)
> DSH 没有 Claude Code 的 `.claude/agents/` subagent 调度机制,4 个阶段由**主智能体按技能指令直接执行**;需要多视角并行时可自选用 `subagent` 工具模拟(如证据审计员 + 质量评审员 + 家长视角分组并行)。
```
┌─────────────┐ ┌─────────────┐ ┌───────────────┐ ┌─────────────┐
│ 准备阶段 │ → │ 生成阶段 │ → │ 质检+修订阶段 │ → │ 保存归档阶段 │
└─────────────┘ └─────────────┘ └───────────────┘ └─────────────┘
```
### 第1阶段 · 准备
1. 用 `ask_user_question` 交互确认:班级 / 课次 / 日期(CSP00/CSP04 问 OJ token;AIAGENT03 问作品文件夹路径)
2. 录音转写 `.docx`(`D:\03-下载` 最新文件)→ **python-docx 提取为 UTF-8 txt 再 Read**(避免乱码),AI 分析"发言人N"对应学生
3. 匹配课程计划提取 5 个知识点(不得编造):
- CSP00/CSP04 → `.claude/lesson/CSP/CSP03/课程计划.md`(沿用 CSP 教案)
- AIAGENT03 → `.claude/lesson/AIAGENT/AIAGENT-03/2026秋季课程计划.md`(2026秋季·班型三:萌宠快速版/秘密聊天室/你画我猜/卡牌对战 22课)
- 体验课 → `.claude/lesson/体验课/`
4. 逐个读取学生画像 `.claude/memory/class/[班级]/[姓名]/profile.md`
5. **GESP/CSP 必查 OJ 数据**:`python scripts/get_student_oj.py --homework-id <作业ID> --student "<姓名>"`
6. **AIAGENT 班必看作品文件夹**,用中文描述创意/技术点/亮点
### 第2阶段 · 生成
- 读班级风格指南 `.claude/rules/[课程].md` 与模板 `.claude/templates/[课程].md`
- 每人约 200 字家长信:固定开头(5 知识点)+ 课评反馈 + 教师签名(橙子)
- 质量自检:字数 180-350 / 禁用词 / 三要素结构 / Emoji 3-5 个 / 去姓直呼 / 具体化 / 可执行建议 / 纵向对比 / 专业知识点
### 第3阶段 · 质检+修订(自动,无需用户确认)
- 加载 `class-feedback-qa`:证据审计 → 100分制评分 → 7 硬伤一票否决 → 5 家长视角 → 终稿修订
- **三档放行**:≥85 且无硬伤→保存原稿;70-84→保存修订稿;<70 或硬伤→保存修订稿
- 核心原则:事实以证据审计为准;不做横向比较;术语家长能懂(CE/WA/AC 要解释);老师是最终决策者
### 第4阶段 · 保存归档(自动)
| 产物 | 路径 |
|------|------|
| 个人课评 | `.claude/memory/class/[班级]/[姓名]/feedback/YYYYMMDD_课程编号-课次.md` |
| 周汇总 | `output/课评汇总/202X年第X周课评汇总.md`(**新课评放最前**) |
| 班级总结 | `.claude/memory/class/[班级]/summaries/YYYYMMDD_课程编号-课次_班级反馈.md` |
| 汇总网页 | `output/课评汇总/第X周课评汇总/第X课-课程名称-班级.html`(放入对应周文件夹,登记到该周 `总览.html`;已存在则跳过不覆盖;规范见 `output/课评汇总/README.md`) |
| 画像更新 | 只记录新发现/明显变化,格式 `**YYYY-MM-DD 第N课观察**:` |
---
## 📁 关键路径速查
| 资源 | 路径 |
|------|------|
| 学生画像(必看) | `.claude/memory/class/[班级]/[姓名]/profile.md` |
| 班级规范 | `.claude/memory/class/CLAUDE.md` |
| 风格指南 | `.claude/rules/CSP.md` / `AIAGENT.md` / `KITTEN.md` / `体验课.md` |
| OJ 数据规则 | `.claude/rules/oj_data.md`(CSP/GESP 先看) |
| 课评模板 | `.claude/templates/CSP.md` / `AIAGENT.md` / `KITTEN.md` / `课评汇总网页.html` |
| 教案/课程计划 | `.claude/lesson/`(按课程子目录) |
| 课评质量标准 | `.claude/docs/课评质量标准.md` |
| 质检角色细则 | `.claude/agents/<角色>/agent.md`(DSH 里读取后按标准执行) |
| OJ 作业包 ID | `config/hw_dict.json` |
| OJ 凭据 | `.env`(不入库) |
---
## 🏫 班级目录清单(以 `.claude/memory/class/` 实际为准,2026秋季新学期)
```
AIAGENT03橙子周五1700 AIAGENT03橙子周六1900 AIAGENT03橙子周日0845 AIAGENT03橙子周日1400
CSP00橙子周五1900 CSP04橙子周六0830 CSP04橙子周六1400 CSP01橙子周六1610
体验课/ 补课/ 代课-黄榆斐/ Kitten02橙子代课/ (特殊目录)
归档/ (历史班级:GESP集训×3、AIAGENT小龙虾×2、穹狼传奇、CSP03周日1030、K4周日1900;停课学生:杨林轩/杨翊弘/林俊宇/谭锦程等)
```
> 学生名单/停课/转班等动态信息:**以 `CLAUDE.md` 最新版本 + 实际目录为准**,写课前先核对。
> 📌 **2026秋季学期起**:AI 编程课程由 AICODE 更名为 **AIAGENT**(编号 AIAGENT03);原 CSP03 升为 CSP04;原周五1900 K4班转为 CSP00(2课时)。
---
## 📛 命名规范(硬性)
- 课程编号:C++ 班 `CSP`、AI 班 `AIAGENT`、GESP 集训 `GESP01`、K4 班 `K4`;**禁用** `AI`/`C++` 缩写
- 文件名:`YYYYMMDD_课程编号-课次.md`,日期必须与校宝 `teaching_date` 一致
- 请假:`...-课次(请假).md`;未到:`...-课次(未到).md`
- 补课:正常文件名,保存在**补课班级**的 `补课/[姓名]/feedback/` 下
---
## 🔄 与 Claude Code 的差异(重要)
| 项 | Claude Code | DSH(本环境) |
|----|------------|--------------|
| 流水线执行 | `.claude/agents/` 9+ subagent 调度 | 主智能体按技能直接执行,可用 `subagent` 模拟并行 |
| 交互询问 | `AskUserQuestion` | `ask_user_question` |
| 质检 | 9 agent 并行 | 按 `class-feedback-qa` 技能逐项执行 |
| 周汇总路径 | `E:/cc/3笔记/`(旧) | `output/课评汇总/`(仓库内) |
| 录音目录 | `D:\下载` | `D:\03-下载`(技能内约定) |
---
## 🛠️ 常用脚本
| 脚本 | 用途 |
|------|------|
| `python scripts/get_student_oj.py --homework-id <ID> --student "<姓名>"` | 单学生 OJ 做题数据(GESP/CSP 课评必用) |
| `node scripts/check-api-vs-local.js <开始日期> <结束日期>` | API 出勤 vs 本地课评核对(检查技能用) |
| `scripts/split_feedback_v2.py` / `update_feedback_with_oj.py` | 课评拆分 / 批量补 OJ 数据 |
| `scripts/fetch_gesp_*.py` / `update_gesp_oj.py` | GESP OJ 数据拉取与更新 |
---
## ⚠️ 注意事项
1. **docx 乱码**:录音 `.docx` 必须先用 python-docx 提取为 UTF-8 txt,再用 Read 工具读;用完删临时 txt
2. **不编造**:知识点取自教案、学生表现取自录音/作品/OJ 数据,绝不虚构
3. **OJ 必查**:GESP/CSP 课评没有 OJ 数据 = 不完整
4. **AIAGENT 必看作品**:课评必须包含作品创意中文描述
5. **网页不覆盖**:`output/课评汇总/*.html` 已存在则跳过,避免覆盖老师手改内容
6. 本文件与 `.dsh/skills/*/SKILL.md` 若与 `.claude/` 原版冲突,**以技能 SKILL.md 为准**;原版更新后可对照同步
---
*穹狼科创 · ClassFeedback DSH 版指引 · 由 .claude/skills 移植适配*

View File

@@ -0,0 +1,223 @@
---
name: class-feedback-check
description: 检查指定课次的学生课评完成情况、班级总结完成情况、学生画像完整性。支持API出勤记录与本地课评交叉核对,自动发现时间/课程编号/学生不一致问题。Use when 用户要求"检查课评"、"检查第X课完成情况"、按日期范围核对课评,或需要核对API出勤与本地课评。
---
> 📌 **DeepSeek Harness 安装版说明**:本文件移植自 `.claude/skills/课评检查/SKILL.md`,内容与原版一致,仅补充了技能名与说明。原始文件如更新,可对照同步本文件。
# 课评检查技能
## 功能说明
自动检查指定课次的课评完成情况,生成完整的检查报告。
支持两种模式:
- **课次模式**:按课次检查(如"检查第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_AIAGENT03-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` | 班级名称 | `AIAGENT03AI编程创新课03` |
| `student_names` | 学生名单 | `["李梓宁", "王子墨"]` |
| `student_count` | 应到人数 | `5` |
| `attendance` | 出勤汇总 | `{attended:4, on_leave:1}` |
**课程编号提取**:从 `class_name` 中提取前缀,如 `AIAGENT03AI编程创新课03` → `AIAGENT03`
**本地目录映射**:根据API数据推断本地班级目录名称:
```
API class_name: AIAGENT03AI编程创新课03
API teaching_date: 2026-05-16 (周六)
API teaching_time_period: 19:00-20:30 → 时间码: 1900
本地匹配目录: AIAGENT03橙子周六1900
```
**大小写兼容**:API可能返回 `KITTEN04`,本地目录为 `Kitten04`,匹配时不区分大小写。
#### 步骤3:扫描本地课评文件
在匹配的本地班级目录下扫描:
1. **主目录学生**:`.claude/memory/class/[班级]/[学生]/feedback/`
2. **补课目录学生**:`.claude/memory/class/[班级]/补课/[学生]/feedback/`
匹配该日期(`YYYYMMDD`)和课程编号(如 `AIAGENT03`)的 `.md` 文件。
#### 步骤4:交叉比对规则
逐项比对API记录与本地课评,发现问题:
| 核对项 | 比对规则 | 问题等级 |
|--------|----------|----------|
| **本地目录存在性** | API有课 → 本地应有对应班级目录 | ❌ 严重 |
| **学生人数一致性** | API `student_count` vs 本地学生目录数(含补课) | ⚠️ 警告 |
| **学生名单一致性** | API名单中的学生,本地应有目录 | ⚠️ 警告 |
| **课评文件完整性** | API显示出勤/补课的学生,本地应有课评文件 | ⚠️ 警告 |
| **文件日期正确性** | 本地文件名日期(前8位)必须等于API `teaching_date` | ⚠️ 警告 |
| **课程编号正确性** | 本地文件名必须包含正确的课程编号 | ⚠️ 警告 |
| **本地多余课评** | 本地有课评但API名单中无该学生 | ⚠️ 警告 |
**特殊情况说明**:
- **体验课**:API中可能显示为体验课相关课程编号,但本地使用 `体验课/` 目录单独管理,无匹配目录属正常
- **补课学生**:在其他班级补课的学生,课评保存在 `补课/` 目录下,脚本会自动扫描
- **新增/转班学生**:API名单中有但本地无目录的学生,标注为"可能新增/转班"
- **已转走学生**:本地有目录但API名单中无此人的学生,标注为"可能已转班/停课"
#### 步骤5:执行本地课评检查
在完成API核对后,继续执行模式一的本地检查流程(课评文件检查、班级总结检查、学生画像检查)。
---
## 输出报告格式
### 模式一报告(课次检查)
```
## 课评完成情况检查报告 — 第X课
### 一、个人课评
| 班级 | 学生 | 状态 | 说明 |
|---|---|---|---|
| AIAGENT03周六1900 | 陈嘉博 | ✅ | 正常课评 |
| AIAGENT03周六1900 | 王子墨 | ❌ | 缺失 |
| ... | ... | ... | ... |
**统计**:共X人,完成X人,缺失X人
### 二、班级总结
| 班级 | 状态 | 说明 |
|---|---|---|
| AIAGENT03周六1900 | ❌ | 无第X课班级反馈 |
| ... | ... | ... |
### 三、学生画像
| 班级 | 学生 | 状态 |
|---|---|---|
| ... | ... | ... |
**统计**:共X人,有画像X人,缺失X人
### 四、异常/需关注
- ⚠️ 黄俊博:文件名日期格式错误(`202605010` 应为 `20260510`)
- ...
```
### 模式二报告(日期范围 + API核对)
```
## API出勤记录 vs 本地课评核对报告 — 2026-05-15 至 2026-05-17
### 一、核对汇总
| 日期 | 时间 | 课程 | 本地目录 | API人数 | 本地课评数 | 状态 |
|------|------|------|----------|---------|------------|------|
| 2026-05-16 | 08:30-10:30 | CSP04信息学奥赛04 | CSP04橙子周六0830 | 6 | 6 | ✅ |
| 2026-05-16 | 14:00-16:00 | CSP04信息学奥赛04 | CSP04橙子周六1400 | 5 | 4 | ⚠️ |
| ... | ... | ... | ... | ... | ... | ... |
**统计**:总X节课,核对通过X节,存在问题X节,无本地目录X节
### 二、API核对问题详情
#### 2026-05-16 14:00-16:00 - CSP04信息学奥赛04
- 本地目录: CSP04橙子周六1400
- API学生: 廖梓琪, 张雨禾, 苏俊宇, 郑子煜, 魏铭轩
- 本地学生: 张雨禾, 苏俊宇, 郑子煜, 魏铭轩
- ⚠️ 学生人数不一致: API5人 vs 本地4人
- ⚠️ API名单学生本地无目录(可能新增/转班): 廖梓琪
### 三、本地课评检查
(接续模式一的报告格式)
```
---
## 检查完成后
根据检查结果,询问用户是否需要:
1. 补全缺失的课评/请假记录
2. 生成缺失的班级总结
3. 修正异常文件名
4. 处理API核对发现的学生异动(新增/转班)

View File

@@ -0,0 +1,902 @@
---
name: class-feedback-generate
description: 快速生成个性化课评。提供班级、课次、学生表现(或课堂录音转写)后,自动按班级风格(CSP要求型、AIAGENT温暖鼓励型、体验课转化型)生成约200字的家长信格式课评,含OJ做题数据与作品分析,并自动质检归档。Use when 用户要求"写课评"、"生成课评"、输入 /课评生成,或提供课堂录音/出勤/学生表现需要生成家长课评。
---
> 📌 **DeepSeek Harness 安装版说明**:本文件移植自 `.claude/skills/课评生成/skill.md`,内容与原版一致,仅做以下适配:
> - 交互询问工具:`AskUserQuestion` → **`ask_user_question`**(DeepSeek 中的同名工具)
> - 质检流程:不依赖 Claude Code 的 `.claude/agents/` subagent 调度,改为按「课评质检」技能(`class-feedback-qa`)执行
> - 周汇总路径:统一使用项目仓库内相对路径 `output/课评汇总/`
> 原始文件如更新,可对照同步本文件。
# 🎯 课评生成器技能包
## 🌟 功能说明
本技能专为穹狼科创编程课程设计,**使用超简单:你只需要告诉我学生的基本信息和本节课表现,我就能自动生成符合班级风格的个性化课评**。
✅ 支持课程:AIAGENT03班 / CSP04班 / CSP00班 / 体验课(2026秋季新学期)
✅ 自动匹配班级专属风格:CSP要求型 / AIAGENT温暖鼓励型 / 体验课转化型
✅ **CSP00/CSP04班必须查询OJ做题数据**(用户提供token后自动获取A包答题情况)
## 💡 使用方式
### 交互式问答(推荐)
输入 `/课评生成`(或直接说"写课评/生成课评"),我会按顺序问你以下信息:
```
📝 问题1:这次写哪个班?(列出当前所有班级选项)
AIAGENT03班:周五下午1700、周六晚上1900、周日早上0845、周日下午1400
CSP04班:周六早上0830、周六下午1400
CSP00班:周五晚上1900(2课时)
体验课
📝 问题2(AIAGENT03班):作品文件夹路径是什么?
📝 问题3(CSP00/CSP04班):OJ题目的token是什么?
📝 问题4:本节课出勤情况如何?(来了哪些学生,谁请假)
```
你回答完所有问题,我就会自动完成整个课评生成流程!
---
## 🔄 自动完成的工作
你提供信息后,我会自动完成:
### 第1阶段:课评准备
1. 使用python-docx读取录音转写文件
2. AI分析录音文本,识别"发言人1,2,3"对应的学生
3. **AIAGENT班**:查看作品文件夹,分析每个学生作品的创意和亮点
4. 读取课程计划,获取5个知识点
5. 读取每个学生的画像
6. **CSP00/CSP04班**:使用token查询OJ做题数据
### 第2阶段:课评生成
1. 读取班级风格指南
2. 为每个学生生成个性化课评(约200字)
- 引用录音中的具体例子
- **AIAGENT班**:描述作品创意和亮点
- **CSP班**:包含OJ做题数据
3. 生成班级总结
### 第3阶段:课评质检+修订(自动,无需确认)
1. 自动加载并执行「课评质检」技能(`class-feedback-qa`)
2. 按质检技能完成证据核对、质量评分、家长视角检查、修订稿产出
3. 三档放行规则自动处理:
- **≥85分**:保存原稿
- **70-84分**:直接采用修订稿
- **<70分**:直接采用修订稿(质检系统已做最佳修订)
4. 丰富度评分记录在案
### 第4阶段:保存归档(自动,无需确认)
1. 保存个人课评(保存的是质检后的最佳版本)
2. 保存到周汇总
3. 保存班级总结
4. 更新学生画像
5. 生成课评汇总网页
6. 输出完成报告
---
## 📂 从课堂录音批量生成课评(推荐工作流)
录音转写文件放在 `D:\03-下载` 目录,我会自动查找读取,自动完成以下流程:
### 🤖 交互式问答流程
当橙子输入 `/课评生成` 时,使用 **`ask_user_question`** 工具(DeepSeek Harness 中的交互询问工具)按顺序询问:
**第1轮:班级**
- 问题1:写哪个班?(单选,列出当前所有班级选项:AIAGENT03 / CSP04 / CSP00 / 体验课)
- 各班级均有固定教案,直接读取课程知识点,不询问课程内容
**第2轮:补充材料**
- 问题2(CSP00/CSP04班):OJ题目的token
- 问题2(AIAGENT03班):作品文件夹路径
- 问题3:出勤情况(文本输入,说明谁来了、谁请假)
**收集完成后**,按下面 4 阶段流水线自行完成课评生成(全程自动,无需确认)。
> 注:DeepSeek Harness 中没有 Claude Code 的 subagent 定义,4 个阶段由主智能体按本技能与「课评质检」技能(`class-feedback-qa`)的指令直接执行。
### 🔄 智能体流水线模式
课评生成已拆分为4个阶段,按流水线方式协作完成(全程自动,无需用户确认):
```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────┐ ┌─────────────────┐
│ 课评准备阶段 │ ──→ │ 课评生成阶段 │ ──→ │ 课评质检+修订阶段 │ ──→ │ 保存归档阶段 │
│ (Agent 1) │ │ (Agent 2) │ │ (质检调度器) │ │ (收尾阶段) │
└─────────────────┘ └─────────────────┘ └─────────────────────┘ └─────────────────┘
│ │ │ │
▼ ▼ ▼ ▼
收集所有数据 生成课评内容 自动质检+修订 自动保存+归档
• 确认班型班次 • 读取风格指南 • 证据审计 • 保存个人课评
• 录音解析(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` 库自动读取,无需手动转换
### 工作流程
```
确认班型班次 → 读取录音转写(docx) → AI分析识别发言人 → 获取课程知识点 → 读取学生画像 → 润色生成 → 确认修改 → 课评质检 → 保存
```
### 1. 读取课堂录音转写文件
自动从 `D:\03-下载` 目录读取课堂录音转写文件(`.docx` 格式),查找该目录下最新的 `.docx` 文件:
**⚠️ 关键:docx 中文在终端显示会乱码,必须分两步读取!**
**第一步:用 python-docx 提取文本并保存为 UTF-8 txt 文件**
```python
from docx import Document
def extract_docx_to_txt(docx_path):
"""从docx提取文本,保存为UTF-8 txt文件(避免终端乱码)"""
doc = Document(docx_path)
# 提取所有段落文本
text = '\n'.join([p.text for p in doc.paragraphs if p.text.strip()])
# 保存为UTF-8 txt
txt_path = docx_path.replace('.docx', '_提取.txt')
with open(txt_path, 'w', encoding='utf-8') as f:
f.write(text)
return txt_path
# 对 D:\03-下载 目录下的每个录音文件执行
import glob
for fpath in glob.glob(r'D:\03-下载\*.docx'):
txt_path = extract_docx_to_txt(fpath)
print(f'已提取: {txt_path}')
```
**第二步:用 Read 工具读取 txt 文件**
```
Read 工具直接读取 _提取.txt 文件,中文显示完全正常
```
> **为什么这样做?** python-docx 底层 XML 是 UTF-8 编码,能正确读取中文。但终端渲染 UTF-8 中文时可能产生乱码。保存为 txt 后,用 Read 工具读取即可正常显示。
>
> **清理**:课评保存完成后,删除 `_提取.txt` 临时文件。
**录音文本特点**:
- 语音转文字质量参差不齐,常见同音字、模糊识别
- 整节课的完整转写,包含老师和学生的对话
- 带时间戳(如"发言人 00:04")
- 可能有"发言人1"、"发言人2"等编号(老师通常是发言人1)
- 学生姓名可能被转写为同音字(如"圆振"→"原证"、"艺嘉"→"YGX")
**AI分析提取学生表现**:
直接读取 `_提取.txt` 文件内容,分析时注意:
- 结合学生姓名和可能的同音字变体来定位个体表现
- 语音识别误差大的段落需结合上下文推断
- 关注:被点名回答、主动提问、完成进度、老师评语等关键事件
```python
# 分析提示词
analysis_prompt = f"""
分析以下课堂录音转写文本,提取每个学生的表现信息。
班级学生名单:{student_list}
注意:语音转文字可能存在同音字,请结合上下文推断学生身份(如"原证"可能是"圆振")。
请为每个学生提供:
1. 出勤状况:正常上课 / 请假 / 未到
2. 课堂表现摘要(100-200字):
- 参与度如何
- 哪些知识点掌握得好
- 遇到什么问题
- 有什么亮点表现
录音文本:
{recording_text}
请以JSON格式输出。
"""
```
> **日期规则**:根据用户提供的周次信息推算具体日期,或在交互式问答时直接询问用户确认授课日期。
### 2. 匹配课程计划
根据班级标题中的关键词匹配对应课程计划:
| 班级标题关键词 | 课程计划路径 | 课程编号 |
|---|---|---|
| AIAGENT03 | `.claude/lesson/AIAGENT/AIAGENT-03/2026秋季课程计划.md` | AIAGENT03 |
| CSP00 / CSP04 | `.claude/lesson/CSP/CSP03/课程计划.md` | CSP00 / CSP04 |
| 体验课 | `.claude/lesson/体验课/` | 体验课 |
从课程计划中提取对应课次的:
- **课程名称**(如《进制转换》)
- **教学目标 5个知识点**
> **重要**:教案中的"教学目标"5条直接作为课评的5个知识点,不得修改或编造。
### 3. 读取学生画像
对每个学生,读取其个人画像档案:
**路径**:`.claude/memory/class/[班级]/[姓名]/profile.md`
### 4. 润色生成课评
对录音中提取的**每一个学生**,根据出勤状况处理,确保每个人都有对应记录:
| 出勤状况 | 处理方式 | 保存位置 |
|---|---|---|
| 正常上课 | 读取画像 + 润色表现摘要 → 生成完整课评 | 本班学生feedback目录 |
| 请假 | 生成请假记录 | 本班学生feedback目录 |
| 未上课 | 生成未到课记录 | 本班学生feedback目录 |
| 补课-来自XX班 | 读取画像 + 润色表现摘要 → 生成完整课评 | **补课班级**的`补课/[姓名]/feedback/`目录 |
**润色规则**(对正常上课和补课学生):
- 保留录音中提取的所有事实(不能遗漏任何信息)
- 根据学生画像调整语气和侧重(如内向学生多鼓励,活泼学生提专注)
- 套用对应班级的固定开头(5个知识点)和结尾风格
- 将100-200字的表现摘要扩展为约200字的完整家长信格式课评
- **绝不编造**录音中没有提到的内容
**⚠️ CSP00/CSP04班级专属(必须执行)**:
对每个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. 自动课评质检(橙子无需确认,自动执行)
课评生成后,**直接自动**调用课评质检系统进行质量检查:
**质检流程**(自动执行,无需用户触发):
1. 加载并执行「课评质检」技能(`class-feedback-qa`,已随本技能安装)
2. 按质检技能完成:证据核对 → 100分制质量评分 → 7个硬伤检查 → 家长视角检查 → 终稿修订
3. 输出:质检报告 + 修订稿(如有问题)
**三档放行规则(自动处理)**:
- **直接发送**(≥85分且无硬伤):保持原稿,进入保存流程
- **修订后发送**(70-84分或有改进点):**直接采用终稿编辑的修订稿**,进入保存流程
- **必须重写**(<70分或触发硬伤):**直接采用终稿编辑的修订稿**,进入保存流程
> ⚡ **三种情况均自动进入保存流程,无需橙子确认。**
**质检报告格式**:
```
📋 课评质检报告
【总分】XX / 100
【结论】直接发送 / 修订后发送 / 必须重写
【一、证据审计】
- 已核实:...
- 存疑/风险:...
【二、硬伤检查】
- 触发:无 / 第X项(说明)
【三、主要问题】(按严重程度排)
1. ...
【四、修订稿】
(若结论为"修订后发送"或"必须重写",给出完整修订后的课评)
【五、修改说明】
- 改了什么、为什么改
```
**⚠️ CSP课评质检要求**:
CSP课评必须执行完整质检。质检角色如下(`.claude/agents/` 目录下有各角色的详细 agent.md,可读取参考;在 DeepSeek Harness 中由主智能体按角色逐项执行,或用 subagent 工具并行模拟多视角):
| 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` | 成长性反馈 |
**质检执行方式**(DeepSeek Harness):
```
加载「课评质检」技能(class-feedback-qa)→ 按技能流程执行全部质检角色 → 输出质检报告 + 修订稿
```
**核心原则**(来自Agents系统):
1. **事实以证据审计员为准**:家长视角的数字意见一律忽略
2. **不做学生横向比较**:揪出"最高/最快/分水岭/紧随XX"等比较词
3. **术语家长能懂**:OLE/CE/WA/SJF/AC这类缩写要解释或换成白话
4. **结合学生性格**:完美主义型先肯定韧性再谈方法;佛系型正向收尾不施压
5. **老师是最终决策者**:给建议和修订稿,老师决定用不用(但默认直接采用修订版)
### 8. 保存归档(自动保存质检后的最佳版本)
**无需橙子确认**,质检完后直接自动保存:
| 质检结论 | 保存的版本 | 说明 |
|---------|-----------|------|
| 直接发送(≥85分) | 原稿(已通过质检) | 原稿本身就是高质量的,直接保存 |
| 修订后发送(70-84分) | **修订稿**(质检后修改版) | 质检发现问题 → 终稿编辑修订 → **自动保存修订版** |
| 必须重写(<70分) | **修订稿**(质检后修改版) | 质检发现问题 → 终稿编辑修订 → **自动保存修订版** |
1. 保存到学生个人单次课评文件
2. **保存到统一周课评汇总**(`output/课评汇总/`),**后写的课评放在最前面**
3. 保存班级总结
4. 更新学生画像
### 9. 更新学生画像(自动)
保存课评的同时,根据本节课表现**适当更新**学生画像 `profile.md`:
**更新原则**:
- 只记录**新发现**或**明显变化**,不重复已有信息
- 更新位置:在 profile.md 的"近期表现"或"课堂观察"部分追加
**触发更新的典型情况**:
- 展现出新的兴趣点(如"首次表现出对XX的浓厚兴趣")
- 能力有明显进步(如"打字速度比上学期快了很多")
- 性格/态度变化(如"从内向变得愿意主动提问")
- 需要持续关注的问题(如"近两次课专注力有所下降")
- 特殊事件(如"第一次独立完成完整作品")
**不更新的情况**:
- 表现和画像中已有描述一致
- 只是常规课堂表现,无特殊变化
- 一次性的小问题(如"今天迟到")
更新格式示例:
```markdown
**2026-05-14 第11课观察**:
- 对增量需求文档的理解力有提升,能自己写出测试用例
- 遇到困难时不再马上求助,会先尝试独立调试
```
---
## 📊 课评质量评分标准(生成时必须遵循)
> 总分 100 分 = 规范性(50 分) + 丰富度(50 分)
> **生成课评时必须按照此标准自检,确保每条课评都达到高质量要求!**
### 一、规范性(自动检测,合计 50 分)
| 评分项目 | 分值 | 满分判定规则 | 扣分规则 |
|----------|------|--------------|----------|
| **字数合规** | 10 | 正文字数区间:180–350 字 | 超出 / 低于区间按梯度扣分 |
| **禁用词检查** | 10 | 全文无禁用词汇 | 每出现 1 个禁用词扣 2 分,扣完本项为止 |
| **结构完整性** | 10 | 评语必须包含三要素:知识点总结 + 学情反馈 + 教师签名 | 缺任一要素酌情扣分 |
| **Emoji 使用** | 10 | 全篇使用数量 3–5 个 | 过少 / 过多酌情扣分 |
| **称呼规范** | 10 | 使用学生小名、或去掉姓氏直呼名字 | 称呼格式不规范扣分 |
**禁用词清单**(生成时必须避免):
- 笼统空泛词:表现不错、继续努力、很好、很棒(无具体细节时)
- 敷衍词:还可以、一般、还行
- 批评词:太差、不认真、不用心、态度有问题
**自检要点**:
- ✅ 字数:课评正文(不含知识点和OJ数据)在 180–350 字之间
- ✅ 禁用词:不使用上述禁用词,用具体描述代替笼统评价
- ✅ 结构:必须有知识点总结(固定开头)+ 学情反馈(主体)+ 教师签名(结尾)
- ✅ Emoji:全篇 3–5 个,分布在夸奖、建议、结尾等位置
- ✅ 称呼:三字姓名去掉姓氏(如"陈圆振"→"圆振"),两字姓名直呼名字
### 二、丰富度(AI 语义分析,合计 50 分)
| 评分项目 | 分值 | 高分评判标准 |
|----------|------|--------------|
| **具体化程度** | 15 | 评语包含具体行为细节,描述有画面感,不笼统空泛 |
| **课后建议质量** | 15 | 给出可落地、可执行的个性化课后练习 / 提升方案,不是套话建议 |
| **个性化纵向对比** | 10 | 结合学生过往学情画像,对比本次表现,体现进步 / 退步追踪 |
| **专业知识点体现** | 10 | 紧扣课程核心知识点点评,体现授课专业度,不泛泛闲聊 |
**丰富度提升技巧**:
**具体化程度(15分)**:
- ❌ "嘉博今天表现不错"(笼统,0分)
- ✅ "嘉博今天自己一字一字打字,和AI聊了一节课,特别专注"(具体行为,15分)
- ✅ "嘉博今天主动问老师'内层循环每执行完一次,外层循环的变量会变吗?',说明在认真思考"(引用原话,15分)
- 技巧:引用学生在录音中的原话,或描述具体行为,让家长看到孩子真实的课堂表现
**课后建议质量(15分)**:
- ❌ "继续加油"、"多练习"(套话,0分)
- ✅ "课后可以试着用AI生成一个故事,然后自己改编结尾,锻炼创意表达"(可执行,15分)
- 技巧:给出"做什么"、"怎么做"、"达到什么效果"
**个性化纵向对比(10分)**:
- ❌ 不提过往表现(0分)
- ✅ "比上节课专注力明显提升,能完整听完讲解再动手"(有对比,10分)
- 技巧:读取学生画像,对比上次表现,指出进步/需要保持的地方
**专业知识点体现(10分)**:
- ❌ "今天学了新知识"(泛泛,0分)
- ✅ "对角色设置+限制条件+输出格式的系统提示词优化,有一定了解"(专业,10分)
- 技巧:紧扣本节课教案中的知识点,用专业术语点评
---
## ⚙️ 核心生成逻辑(全程自动,无需人工确认)
```
1. 确认班型和班次 → 2. 读取参考资料 → 3. AIAGENT班分析作品 / CSP班拉取OJ数据 → 4. 生成个性化课评 → 5. 自动质检+修订 → 6. 自动保存
```
### 1. 自动读取参考资料
我会自动找到以下资料用于生成课评:
- **学生画像**:`.claude/memory/class/[班级]/[姓名]/profile.md`(了解学生性格特点和适用风格)
- **班级风格指南**:根据课程类型读取对应规则(`.claude/rules/[课程].md`)
- **课评格式模板**:根据课程类型选择对应模板(`.claude/templates/[课程].md`),包含标准版和极简版
- **本节课教案**:AIAGENT03班到 `.claude/lesson/AIAGENT/AIAGENT-03/2026秋季课程计划.md` 按课次查找对应教案;**CSP00/CSP04班到 `.claude/lesson/CSP/CSP03/课程计划.md`**
- **过往课评**:读取该学生的历史课评,避免重复用词
- **课堂录音转写**:`.docx`格式,使用python-docx库读取,AI分析提取学生表现
- **AIAGENT班作品**:查看作品文件夹,分析每个学生作品的创意和亮点
> 💡 **模板库路径**:`.claude/templates/`
> - `AIAGENT.md`:AIAGENT创意编程课评模板(标准版 + 极简版)
> - `CSP.md`:C++/CSP课程课评模板
> - `KITTEN.md`:Kitten课程课评模板
> - `课评汇总网页.html`:家长版课评汇总HTML网页模板(翻页浏览、温暖画册风格)
### 2. AIAGENT班级专属:查看作品文件夹(必须执行)
**⚠️ 这是强制步骤,AIAGENT课评必须包含作品创意描述!**
**执行时机**:在生成每个AIAGENT学生的课评**之前**,先查看该学生的作品文件夹。
**执行流程**:
1. 识别出AIAGENT班级的学生
2. 查看作品文件夹(橙子提供的本地路径)
3. 分析每个学生作品的:
- 创意点:有什么独特的想法
- 技术点:用了什么技术实现
- 亮点:有什么特别出彩的地方
4. 将作品分析**用中文写进课评**中
**示例**(生成陈嘉博的AIAGENT课评):
```
嘉博今天表现特别棒~主动问老师关于循环嵌套的问题,说明在认真思考~
自己完成了课堂练习,特别专注!作品是一个猜数字游戏,用了独特的渐变色背景,
还添加了音效和暂停功能,创意很棒!
老师会继续关注嘉博的表现,期待看到更多精彩!🌟💡
```
### 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次提交)
| 题目 | 状态 | 提交次数 | 错误类型 |
|------|------|----------|----------|
| CSP0409A1 银行叫号模拟 | ✅ 通过 | 1 | — |
| CSP0409A2 模拟发牌 | ✅ 通过 | 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做题数据】板块放在课评反馈的最后部分
- 称呼规则:三字姓名默认去掉姓氏,直呼后两个字(如"陈圆振"→"圆振"),更亲切
- 内容完全基于从录音中提取的表现信息和教案知识点,不编造内容
- **⚠️ 质量自检(必须执行)**:每条课评生成后,按照「课评质量评分标准」自检:
- 字数:正文 180–350 字 ✓
- 禁用词:无笼统空泛词 ✓
- 结构:知识点总结 + 学情反馈 + 教师签名 ✓
- Emoji:3–5 个 ✓
- 称呼:去掉姓氏直呼名字 ✓
- 具体化:有具体行为细节 ✓
- 建议质量:可落地执行的个性化建议 ✓
- 纵向对比:结合画像对比过往表现 ✓
- 专业点评:紧扣课程知识点 ✓
---
### 📋 生成后流程(自动执行,无需确认)
1. 课评全部生成后,**直接自动启动质检流程**(加载 `class-feedback-qa` 技能)
2. 质检后自动选择最佳版本(≥85分用原稿,<85分用终稿编辑的修订稿)
3. 自动保存归档(个人课评 + 周汇总 + 班级总结 + 汇总网页)
4. 自动更新学生画像
5. 输出完成报告
---
## 🎨 各班级风格规范(自动匹配)
### AIAGENT03班 - 家长信格式·温暖鼓励型
- 固定开头:"【学生名】家长好,本周学习的内容是《...》" + 5个知识点(开头加学生称呼,如"嘉博家长好",与 CSP04 一致)
- 课程目标后空一行,再写"课评反馈:"正文
- 多用"很棒"、"特别棒"、"超棒"和波浪号"~"
- 描述具体行为:"一字一字打字"、"和AI聊了一节课"
- 温和建议用"要是...就更好啦~"
- **必须描述作品创意和亮点**:用中文描述学生作品的创意、技术点、亮点
- **表情包使用**:课评正文中适当穿插表情,让文字更生动温暖
- 夸奖时:🌟✨🎉👍
- 鼓励时:💪🔥🚀
- 温和建议时:😊💡🌸
- 结尾固定:"老师会继续关注【姓名】的表现,期待看到更多精彩!🌟💡"
**⚠️ AIAGENT03班强制要求**:
- **必须查看作品文件夹**,了解每个学生作品的创意和亮点
- **必须用中文描述作品**,写进课评中
- 描述技巧:
- ❌ "嘉博的作品做得不错"(笼统)
- ✅ "嘉博的作品是一个猜数字游戏,用了独特的渐变色背景,还添加了音效和暂停功能,创意很棒!"(具体描述)
#### AIAGENT班作品描述示例
```markdown
嘉博今天表现特别棒~对循环嵌套的理解很到位,能快速理解并动手尝试~
自己完成了课堂练习,特别专注!作品是一个猜数字游戏,用了独特的渐变色背景,
还添加了音效和暂停功能,创意很棒!
要是可以在代码注释上再详细一点就更好啦~
老师会继续关注嘉博的表现,期待看到更多精彩!🌟💡
```
### CSP00/CSP04班 - 家长信格式·要求型
- 固定开头:"【学生名】家长好,本周学习的内容是《...》" + 5个知识点(开头加学生称呼,如"圆振家长好")
- 表扬积极:"状态在线"、"早早到校等候超积极"
- 期望要求:"希望多思考"、"理解为什么这么写,不只是抄完就好~"
- **表情包使用**:CSP班学生偏大,表情偏励志和认可风格
- 表扬状态时:💪✨🎯🔥
- 肯定进步时:📈👏🌟
- 提出期望时:💡📝😊
- 结尾固定:"加油呀!💪✨"
**⚠️ CSP00/CSP04班强制要求**:
- **必须查询OJ做题数据**,没有OJ数据的CSP课评是不完整的
- 执行命令:`python scripts/get_student_oj.py --homework-id <作业ID> --student "<姓名>"`
- OJ数据板块放在课评正文后面,格式见下方模板
#### CSP00/CSP04班 OJ数据板块格式(自动生成)
**OJ作业包定位说明**:
- A包 = 课堂练习(**包含5道具体题目,必须全部列出**)
- B包 = 必须完成的课后家庭作业(未完成会明确提醒家长督促)
- C包 = 拓展训练(学有余力的同学可挑战)
```markdown
## 【OJ做题数据】
**A包(课堂练习)完成情况**: 4/5 (共8次提交)
| 题目 | 类型 | 状态 | 提交次数 | 思考模式 | 错误类型 |
|------|------|------|----------|----------|----------|
| CSP04-XXA1 | 基础题 | ✅ 通过 | 1 | 一气呵成 | — |
| CSP04-XXA2 | 基础题 | ✅ 通过 | 1 | 一气呵成 | — |
| CSP04-XXA3 | 基础题 | ✅ 通过 | 2 | 调试改进 | WA×1 |
| CSP04-XXA4 | 提高题 | ✅ 通过 | 2 | 调试改进 | WA×1 |
| CSP04-XXA5 | 提高题 | ❌ 未通过 | 2 | 遇到困难 | CE×1, WA×1 |
---
| CSP04-XXB | 课后作业(必做) | ✅ 已完成 | 3 | 反复调试 | WA×2 |
| CSP04-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编程班统一用`AIAGENT`,不得使用`AI`、`C++`等缩写
- **文件名规则**:`YYYYMMDD_课程编号-课次.md`(如`20260418_CSP04-07.md`、`20260330_AIAGENT03-02.md`)
- **日期要求**:根据用户提供的周次信息推算具体日期,或询问用户确认
- **特殊状态文件**:
- 请假:`YYYYMMDD_课程编号-课次(请假).md`
- 未上课:`YYYYMMDD_课程编号-课次(未到).md`
- 补课:正常文件名 `YYYYMMDD_课程编号-课次.md`,放在补课班级下的 `补课/` 目录中
### 1. 保存到学生个人单次课评文件(必须,用于自动化统计)
为每位学生生成单独的单次课评文件,这是课评完成率统计的依据:
**路径**:`.claude/memory/class/[班级]/[姓名]/feedback/YYYYMMDD_课程编号-课次.md`
**格式**:
```markdown
# 课程名称:[课程名称]
**授课日期**: [YYYY-MM-DD]
**课评内容**:
[生成的课评正文]
---
**老师签名:橙子**
```
### 2. 保存到统一周课评汇总(后写的放上面)
同时保存到统一的课评汇总目录,同一周的课评放在同一个文件里,新生成的放在最顶部:
**根目录**:`output/课评汇总/`(项目仓库内相对路径)
**文件名规则**:`202X年第X周课评汇总.md`(比如「2026年第18周课评汇总.md」)
**排序规则**:最新生成的课评放在文件的最前面,旧的课评在后面,倒序排列
**班级分组**:同一个班级的课评放在一起,按班级分组展示
### 4. 补课学生处理
> 核心原则:学生来哪个班补课,课评就保存在**那个班的 `补课/` 目录下**。
- **保存路径**:`.claude/memory/class/[补课班级]/补课/[学生姓名]/feedback/`
- **文件名**:`YYYYMMDD_课程编号-课次.md`
- 这里的**课程编号**使用补课班级本身的编号(如去CSP04班补课,就用 `CSP04`)
- 文件内容正常写课评,无需特殊标记
### 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. 确认当周日文件夹:`output/课评汇总/第X周课评汇总/`(不存在则按「第一周课评汇总」的格式新建,含 `总览.html`)
3. 构造文件名:`第X课-课程名称-班级.html`
- 课程名称用当天实际内容(如 `基础回顾·OJ五题精讲`)
- 同一班次多个时段用 `-上午`/`-下午`/`-时间` 区分(示例:`第1课-基础回顾-CSP04-0830.html`、`-1400.html`)
- 示例:`第1课-基础回顾-CSP04-1400.html`
4. 检查该周文件夹下是否已存在该文件:**已存在则跳过不覆盖**(避免误删橙子手动修改过的网页);**不存在**则基于模板生成
5. 生成后**必须**登记到该周 `总览.html`:按上课时间升序插入一张 course-card,并更新顶部统计
**模板路径**:`.claude/templates/课评汇总网页.html`
**生成规则**(基于模板,替换以下动态内容):
| 模板位置 | 替换内容 | 数据来源 |
|---------|---------|---------|
| `<title>`、顶部标题 | 第X周 · [课程编号]班课评 | 周次 + 课程编号 |
| 顶部副标题、封面日期 | YYYY年M月D日 · 《课程名称》 · 橙子老师 | 用户提供的日期 + 课程计划 |
| 封面大标题 | 《课程名称》 | 课程计划 |
| 封面副标题 | 课程领域 · 第X课 | 课程计划 |
| 封面信息区 | 📅日期、⏰时间、👩‍🏫老师 | 用户提供的数据 |
| 知识点列表 | 5条知识点 | 课程计划中的教学目标 |
| 学生卡片 | 每张卡片一个学生 | 本节课所有学生的课评 |
| 状态标签 | 正常上课/补课/请假/未到 | 出勤记录 |
| 页脚 | 穹狼科创 · [课程编号]班 · 橙子老师 | 课程编号 |
| JS totalCards | 学生总数 | 实际学生数量 |
| 进度点 | N个,对应N个学生 | 学生数量 |
| 导出内容 | 课程信息和知识点 | 同上 |
**学生卡片生成规则**:
- 为**每个学生**生成一张 `.student-card`
- 第一张卡片必须有 `active` 类,其余没有
- 课评正文中的换行符 `\n` 替换为 `<br>`
- 评价指标根据班级风格选取2~4个:
- AIAGENT03班:课堂互动、专注度、作品完成、知识点掌握
- CSP00/CSP04班:课堂互动、逻辑思维、OJ完成情况、代码能力
- 请假/未到课的学生也要生成卡片,课评内容写简短说明,状态标签用 `badge-absent`
**保存路径**:
```
output/课评汇总/第X周课评汇总/第X课-课程名称-班级.html
```
**保存完成后额外提示**:
```
✅ 课评汇总网页已生成:output/课评汇总/第X周课评汇总/第X课-课程名称-班级.html
并已登记到该周 总览.html(按时间排序)
可直接用浏览器打开,发给家长浏览
```
**如果文件已存在则提示**:
```
⏭️ 课评汇总网页已存在(第X周课评汇总/第X课-课程名称-班级.html),跳过生成
如需更新,请手动删除后重新生成,并保持总览登记
```
**📌 目录约束(强制执行,详见 `output/课评汇总/README.md`)**:
- 网页课评**一律**放入对应周 `第X周课评汇总/` 文件夹,**禁止**散落在 `output/课评汇总/` 根目录。
- 每周格式与 `第一周课评汇总/` 完全一致:`总览.html` + 各班次 `第X课-课程名称-班级.html`(+ 可选 `照片/` 子目录)。
- **每新增一个班次,必须在 `总览.html` 登记卡片并按上课时间升序排列、更新顶部统计**;未登记视为该课评未归档。
---
### 保存完成后我会告诉你:
✅ 已保存X条课评
✅ 周汇总已更新:[周数]周汇总文件已更新,新课评已放在最顶部
✅ 课评汇总网页:output/课评汇总/第X周课评汇总/第X课-课程名称-班级.html(已登记总览;已存在则跳过)
---
## 📝 示例课评(参考)
**从课堂录音转写生成课评示例**:
```
用户提供:第15课录音转写.docx(任意路径)
↓
系统自动:检测到docx格式 → 使用python-docx读取录音文本 → AI分析提取学生表现
↓
后续流程:匹配课程计划 → 读取学生画像 → 生成课评
```
**AIAGENT课程 - 鼓励型**
> 李明今天虽然是第一次接触AI绘画,但我看到了你眼里的好奇,这就是最好的开始。你的描述很有画面感,"想要一个会眨眼的可爱猫咪",这就是好的Prompt。虽然操作还有点生疏,但老师注意到你一直在尝试,这份坚持比做对题目更珍贵。下次可以把想法先写在便签纸上,分点列出,跟AI沟通会更顺畅。记住,编程最大的门槛不是英文或数学,是敢于尝试的勇气,你已经有了。继续和你的"AI搭档"对话吧,它会越来越懂你的。
**CSP04班 - 家长信格式·要求型(含OJ数据)**
> 子煜家长好,本周学习的内容是《字符串处理》:
> 1. string 类型的声明与使用
> 2. 字符串的输入输出(cin / getline)
> 3. 字符串的拼接与比较操作
> 4. 常用字符串函数(size / substr / find)
> 5. 培养独立调试与耐心排查错误的能力
>
> 子煜状态在线,课堂互动积极,能够跟上老师的节奏。对于字符串的基本操作掌握得不错,在讲解 substr 和 find 函数时能迅速理解并动手尝试。
>
> ## 【OJ做题数据】
>
> **A包(课堂练习)完成情况**: 4/5 (共8次提交)
>
> | 题目 | 类型 | 状态 | 提交次数 | 思考模式 | 错误类型 |
> |------|------|------|----------|----------|----------|
> | CSP04-07A1 | 基础题 | ✅ 通过 | 1 | 一气呵成 | — |
> | CSP04-07A2 | 基础题 | ✅ 通过 | 1 | 一气呵成 | — |
> | CSP04-07A3 | 基础题 | ✅ 通过 | 2 | 调试改进 | WA×1 |
> | CSP04-07A4 | 提高题 | ✅ 通过 | 2 | 调试改进 | WA×1 |
> | CSP04-07A5 | 提高题 | ❌ 未通过 | 2 | 遇到困难 | CE×1, WA×1 |
>
> ---
> | CSP04-07B | 课后作业(必做) | ✅ 已完成 | 3 | 反复调试 | WA×2 |
> | CSP04-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 @@
# 课评示例
## 示例1:Kitten课程 - 鼓励型
**学生**:小明 | **班级**:三年级A班 | **课次**:第3课
小明今天虽然是第一次接触循环积木,但我看到了你眼里的好奇,这就是最好的开始。你的故事很有想象力,"小猫去太空探险"这个创意太棒了!虽然积木用得还不太熟练,但你能说清楚自己想要什么效果,这就是编程思维的开始。程序没跑通没关系,重要的是你愿意一次次调整积木,这份坚持最珍贵。下次我们可以试着先把故事在纸上画出来,再一块块搭积木,这样会更有条理。记住,每一款伟大的游戏都是从第一个积木开始的,继续创造吧!
---
## 📋 家长视角(本期重点)
**🎯 本节课核心知识**
- 循环积木:掌握重复执行的基本概念,能独立完成简单动画
- 条件判断:理解如果...就...的逻辑,能制作简单的交互效果
- 创意表达:培养创意思维,能把自己的想法通过积木实现
**📚 必学内容清单**
- **基础操作**:熟练使用重复积木完成连续动作
- **创意设计**:能设计简单的动画故事或游戏
- **问题解决**:遇到积木错误能尝试不同的解决方案
**🏠 家庭配合建议**
1. **每日练习**(15分钟):用积木搭建一个简单的动画,比如小猫走路或花儿开放
2. **能力培养**:重点关注孩子的创意表达,鼓励自由发挥,没有对错之分
3. **亲子互动**:和孩子一起玩"编程猜谜"游戏,描述一个动作让孩子用积木实现
**📝 课后作业要求**
- **必做**:完成"小猫探险"作品,包含至少3个场景和简单交互
- **选做**:给作品添加音效或者背景故事,让作品更生动
- **提交**:下周上课前完成,可以和孩子一起欣赏他的创作成果
---
## 示例2:AIGC课程 - 激励型
**学生**:小红 | **班级**:四年级B班 | **课次**:第5课
小红,以你的聪明程度,今天这个AI绘画应该20分钟搞定,咱们来挑战一下?你的反应超快,老师刚说需求你就能组织出清晰的Prompt,这种表达能力是天赋。这个页面的动画效果很惊艳,你偷偷研究了不少技巧吧,审美在线!但别只满足于实现功能,去问问AI"这段代码还能怎么优化",追求极致性能。你的天花板远不止于此,别让"够用"成为你的绊脚石!
---
## 📋 家长视角(本期重点)
**🎯 本节课核心知识**
- Prompt工程:掌握清晰描述需求的方法,能写出高质量的提示词
- AI绘画:理解AI绘画的基本原理,能独立创作创意图片
- 动画设计:学会制作简单动画效果,培养审美和创意能力
**📚 必学内容清单**
- **基础技能**:能独立编写有效的Prompt,准确表达创意想法
- **技术掌握**:熟悉AI工具的使用方法,能解决常见问题
- **创新应用**:能结合多种技术创作出完整的作品
**🏠 家庭配合建议**
1. **每日练习**(15分钟):让孩子用AI工具完成一个小创作,可以是写故事、设计图片或解决问题
2. **能力培养**:重点关注孩子的语言表达能力和创意思维,鼓励多描述自己的想法
3. **亲子互动**:和孩子讨论AI生成的内容,问问他"为什么AI会这样回答"培养批判性思维
**📝 课后作业要求**
- **必做**:完成"我的梦想世界"AI绘画作品,包含至少3个场景和简单动画
- **选做**:尝试使用不同的AI工具,比如文字生成、音乐创作等
- **提交**:通过班级群提交作品,家长可以一起欣赏和讨论
---
## 示例3:CPP课程 - 鼓励型
**学生**:小李 | **班级**:五年级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,151 @@
---
name: class-feedback-qa
description: 对已有课评进行质量检查,输出质检报告和修订稿。按证据审计、100分制质量评分、7个硬伤一票否决、家长视角检查、终稿修订的流程执行,三档放行。Use when 用户要求"质检课评"、"检查这份课评"、"用课评质检系统检查",或课评生成后需要自动质检。
---
> 📌 **DeepSeek Harness 安装版说明**:本文件移植自 `.claude/skills/课评质检/SKILL.md`,内容与原版一致,仅将"调用 Claude subagent"的质检方式改为:由主智能体按各质检角色逐项执行(可用 subagent 工具并行模拟多视角),或读取 `.claude/agents/` 下各 agent.md 后自行执行其职责。原始文件如更新,可对照同步本文件。
# 课评质检技能
## 🌟 功能说明
本技能为课评提供质量检查,确保课评达到"准确、具体、有温度、有行动"的标准,可以放心发给家长。
✅ 支持班级群反馈和个人课评
✅ 9个专业质检角色各司其职、互相校验
✅ 自动输出质检报告 + 修订稿
✅ 三档放行:直接发/修订后发/必须重写
## 📋 触发方式
### 方式1:课评生成流程中自动触发
在课评生成技能(`class-feedback-generate`)中,生成完课评后会自动调用本技能进行质检,无需手动操作。
### 方式2:手动触发
对AI说:
```
用课评质检系统检查这份课评:
[粘贴课评内容]
```
或
```
质检这份课评:[粘贴课评内容]
```
## 🔧 执行流程
> **DeepSeek Harness 执行说明**:原版由 Claude Code 并行调用 9 个 subagent。本环境中由主智能体按以下角色**逐项自检**;需要多视角并行时,可用 `subagent` 工具并行模拟(证据审计员 + 质量评审员 + 家长视角可分组并行)。各角色的详细规则见 `.claude/agents/<角色>/agent.md`,可读取后按其中标准执行。
### 第1步:证据审计 + 质量评分(核心质检角色)
同时覆盖以下两个角色:
| 角色 | 职责 | 输出 |
|-------|------|------|
| 课评证据审计员 | 事实核对 | 数据准确性结论 |
| 课评质量评审员 | 100分制打分 + 硬伤检查 | 评分 + 硬伤结论 |
**证据审计要点**:
- 核对姓名、出勤、OJ数据、题目编号、知识点来源(CSP班必查)
- 事实以证据审计为准:家长视角的数字意见一律忽略
**质量评审要点(100分制)**:
| 维度 | 分值 |
|------|------|
| 事实 | 20 |
| 具体 | 15 |
| 个性 | 15 |
| 成长 | 15 |
| 建议 | 15 |
| 可读 | 10 |
| 风险 | 10 |
### 第2步:家长视角检查(5个角色)
同时覆盖以下家长角色:
| 角色 | 职责 | 输出 |
|-------|------|------|
| 家长-忙碌实用型 | 手机阅读体验 | 长度/重点/行动建议 |
| 家长-结果导向型 | 信息完整性 | 信息缺口 + 行动清单 |
| 家长-细节核对型 | 文内一致性 | 错别字/术语/格式问题 |
| 家长-焦虑保护型 | 情绪风险 | 刺痛点 + 建议改法 |
| 家长-成长陪伴型 | 成长性 | 陪伴感建议 |
### 第3步:汇总所有反馈
将各角色的输出汇总为一份完整的质检意见。
### 第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情况
- **能力判断**:从数据推断出什么能力卡点
- **下一步建议**:回家具体做什么