更新课评系统代码

This commit is contained in:
qiuyan
2026-06-02 23:01:58 +08:00
parent f8c4b6174f
commit cd05b8a5a7
45 changed files with 8260 additions and 345 deletions

View File

@@ -1,7 +1,24 @@
# 工作流程规则:输入格式、批量生成、存储与特殊处理
> 合并文件:快捷输入格式 + 批量课评生成 + 新学生/补课处理 + 速记符号 + 快速入门
> 版本v4.0课评规范同步版| 更新日期2026-05-14
> 版本v4.5表单直连提交| 更新日期2026-05-20
>
> **v4.5 变更**
> - **表单直连提交**:网页表单填写完成后直接 POST 到本地服务器,数据自动保存为 JSON。AI 检测到信号文件后自动读取并生成课评,彻底取消「复制→粘贴回聊天」步骤
> - 新增 `src/form_server.py` 本地表单服务器,支持动态注入班级/学生/课程数据
> - 表单输出文件:`.claude/.tmp/evaluation_input_{班级}.json`
> - 信号文件:`.claude/.tmp/EVALUATION_READY.txt`AI 检测此文件触发课评生成)
>
> **v4.4 变更**
> - 课程进度自动推演:选择班级后根据**当周日期自动匹配课程主题**(基于学期周数映射表),无需参考上节课进度
> - Form-First 模式:选择班级后默认自动创建网页表单,替代聊天文本输入框
> - 表单直连提交:网页表单直接提交数据,无需复制粘贴回聊天
> - 新增 `.claude/memory/project_memory.md` 项目记忆文件
>
> **v4.3 变更**
> - 新增 `/周几` 快速索引指令(`/周六`、`/周日`、`/周四` 等)
> - 重写第14节交互式流程B模式分开展示学生 + 独立输入区 + 快捷标记按钮
> - 新增学生快捷标记操作(请假/体验/补课/出勤)
>
> **v4.0 变更**
> - 新增第10节「课评规范V1.0对照规则」:课程编号、目录结构、文件命名、日期匹配、完成率统计、三级查找
@@ -49,7 +66,7 @@ AI生成 → 自动双轨保存 → 完成!
**方式1极简一句话**
```
乔乔今天开始不敢碰,后来主动搭了三层,球卡住自己调高度,挺稳定的,比上周主动多了
乔乔本节课开始不敢碰,后来主动搭了三层,球卡住自己调高度,挺稳定的,比上周主动多了
```
**方式2关键词速记**
@@ -100,11 +117,11 @@ AI自动匹配班级学生名单实时纠正谐音
| 标记 | 含义 | 处理方式 | 保存位置 |
|------|------|----------|---------|
| 无标记 | 正式学生 | 双轨保存 | 班级汇总+个人档案 |
| `[补课]` | 补课学生 | 自动检测档案位置,跨班级自动双轨保存 | 班级汇总+个人档案 |
| `[体验]` | 体验课学生 | 仅班级汇总 | 班级汇总(标记体验) |
| `[缺课]` | 今天缺席 | 记录缺席 | 班级汇总(标记缺课) |
| `[new]` | 新学生首次 | 创建档案 | 班级汇总+个人档案 |
| 无标记 | 正式学生 | 双轨保存 | 个人课评文件+班级汇总 |
| `[补课]` | 补课学生 | 自动检测档案位置,跨班级自动双轨保存 | 个人课评文件(原班级侧追踪文件)+班级汇总 |
| `[体验]` | 体验课学生 | 仅班级汇总 | 个人课评文件(补课目录)+班级汇总 |
| `[缺课]` | 今天缺席 | 记录缺席 | 班级汇总 |
| `[new]` | 新学生首次 | 创建档案 | 个人课评文件+班级汇总+学生画像 |
### 3.2 标记使用示例
@@ -134,7 +151,7 @@ AI自动匹配班级学生名单实时纠正谐音
```
教师极简输入 → AI并行解析每个学生 → 预加载课程/档案 →
并行生成个性化课评 → 质量检查 → 【自动双轨保存】→ 完成
并行生成个性化课评 → 质量检查 → 【自动双轨保存】→ 【🗑️ 自动删除临时表单】→ 完成
```
**预加载说明**
@@ -256,6 +273,168 @@ AI及自动化系统扫描 `feedback/` 目录时,通过文件名后缀判断
| **班级总结** | `summaries/YYYYMMDD_课程编号-课次_班级反馈.md` | 班级群发文案 | 课后编写 |
| **学生画像** | `profile.md`(固定名) | 学生基础信息 | 建档时创建 |
#### 班级总结文件完整模板
班级总结文件(`summaries/YYYYMMDD_课程编号-课次_班级反馈.md`)使用以下统一模板框架,所有班级总结一致:
##### 模板结构总览
```
┌─ YAML Frontmatter元数据─────────────────────────┐
│ class, week, course, theme, date │
│ status: total/present/make_up/absent │
│ students: name + status 列表 │
├─ 标题 ────────────────────────────────────────────────┤
│ # {班级} 第{X}周汇总 │
├─ Quote行课程信息─────────────────────────────────┤
│ > 课程代码 / 上课日期 / 课程主题 / 班级人数 │
├─ 本周课评状态表 ──────────────────────────────────────┤
│ | 学生 | 状态 | 类型 | 档案位置 | 操作 | │
├─ 学生课评列表 ────────────────────────────────────────┤
│ ## 学生课评列表 │
│ │
│ ### {学生名} - {类型} ✅/🔄 │
│ **基本信息**(表现标签 + 情绪状态) │
│ **课评内容**(代码块 ``` 包裹正文) │
│ **教师备注**(生成时间 + 确认状态) │
│ **教师备注**(状态 + 个人档案 + 亮点) │
│ --- │
│ │
│ ### {请假学生} - ❌ 请假 │
│ **状态**:请假,未生成课评 │
├─ 本周班级整体情况 ────────────────────────────────────┤
│ ## 本周班级整体情况 │
│ ### 本周表现分布(表格) │
│ ### 共性观察(整体表现/主题掌握/亮点/挑战) │
│ ### 需关注学生 │
│ ### 下周重点 │
├─ 页脚 ────────────────────────────────────────────────┤
│ *生成时间:{YYYY-MM-DD}* │
└────────────────────────────────────────────────────────┘
```
##### 完整模板源码
```markdown
---
class: {班级目录名}
week: {周数}
course: {课程编号}
theme: {课程主题}
date: {YYYY-MM-DD}
status:
total: {总人数}
present: {出勤人数}
make_up: {补课人数}
absent: {请假人数}
students:
- name: {学生名}
status: present/absent/make_up
- name: ...
---
# {班级名称} 第{周数}周汇总
> 课程代码:{课程编号}
> 上课日期:{YYYY-MM-DD}
> 课程主题:{主题(知识点)}
> 班级人数:{N}人(出勤{M}人,请假{K}人)
---
## 本周课评状态
| 学生 | 状态 | 类型 | 档案位置 | 操作 |
|:-----|:----:|:----:|:---------|:----:|
| {学生名} | ✅ 已保存 | 常规学生 | 本班 | [查看] |
| {补课学生} | ✅ 已保存 | 补课学生 | 补课 | [查看] |
| {请假学生} | ❌ 请假 | 常规学生 | 本班 | - |
---
## 学生课评列表
### {学生名} - 常规学生 ✅ / 补课学生 🔄
**基本信息**
- 表现标签:{根据课评内容提炼标签,逗号分隔}
- 情绪状态:{稳定/开心/积极/波动等}
**课评内容**
```
{课评正文,使用代码块包裹}
```
**教师备注**
- 生成时间:{YYYY-MM-DD HH:MM}
- 确认状态:☑️ 已确认
---
**教师备注**
- 状态:已保存
- 个人档案:已同步
- 亮点:{提炼亮点}
---
### {请假学生} - ❌ 请假
**状态**:请假(或停课),未生成课评
---
## 本周班级整体情况
### 本周表现分布
| 维度 | 优秀 | 良好 | 合格 | 需关注 |
|:------|:---:|:---:|:---:|:----:|
| 参与度 | {人数} | {人数} | {人数} | {人数} |
| 知识点掌握 | {人数} | {人数} | {人数} | {人数} |
| 情绪状态 | {人数} | {人数} | {人数} | {人数} |
### 共性观察
1. **整体表现**{总结}
2. **主题掌握**{总结}
3. **亮点**{总结}
4. **挑战**{总结}
### 需关注学生
- {名单及原因}
### 下周重点
1. 预告下周课程:{课程编号} {主题}
2. 重点:{核心知识点}
---
*生成时间:{YYYY-MM-DD}*
```
##### 各情况处理细则
| 情况 | 状态列 | 类型列 | 课评内容 |
|:-----|:------:|:------:|:---------|
| **常规出勤** | ✅ 已保存 | 常规学生 | 完整课评正文(代码块) |
| **补课学生** | ✅ 已保存 | 补课学生 | 完整课评正文(代码块),基本信息如实填写 |
| **请假** | ❌ 请假 | 常规学生 | `**状态**:请假,未生成课评` |
| **停课** | 🚫 停课 | 停课学生 | `**状态**:已停课,不生成课评` |
| **全部请假** | — | — | 仅保留课评状态表,学生课评列表写状态即可,共性观察处说明"本周全部请假/停课" |
##### 基本信息字段填写规则
表现标签根据课评内容提炼3-5个关键词标签如"积极搭建"、"圆周运动理解"、"创意改造"、"编程巩固"、"主动互动"等,体现学生本节课的核心表现亮点。
情绪状态:综合判断本节课的情绪基调,如"稳定"、"开心/稳定"、"积极/稳定"、"波动"等。
##### 代码块规范
每位有课评正文的学生,其课评文字必须用**代码块 ` ``` ` 包裹**(而非引用块 `>` 或纯文本),以便在 VS Code 预览时右上角显示**复制按钮**,方便一键复制。
请假/体验等无课评正文的学生,用 `**状态**` 描述即可,无需代码块。
### 5.5 存储优先级
1. **第一优先级**:个人课评文件 `feedback/*.md`(必须存在,关系到完成率统计)
@@ -283,7 +462,7 @@ Step 22分钟: 速记输入
小红[补课]:专注完成 →
Step 32分钟: 查看并保存
AI生成 → 查看质量报告 → 完成(已自动双轨保存)
AI生成 → 查看质量报告 → 课评保存完成 → 🗑️ 自动清理表单 → 完成
完成!课评已自动双轨保存,无需确认。
```
@@ -308,10 +487,10 @@ AI生成 → 查看质量报告 → 完成(已自动双轨保存)
```
生成阶段 保存阶段 完成阶段
───────── ───────── ─────────
AI生成课评 → 【自动保存】 → 教师可随时查看/修改
AI生成课评 → 【自动保存】 → 课评持久化保存
↓ ↓ ↓
质量检查通过 → feedback/YYYYMMDD_课程编号.md → 完成(无需确认)
+ summaries/YYYYMMDD_课程编号_班级反馈.md
质量检查通过 → feedback/YYYYMMDD_课程编号.md → 🗑️ 自动删除临时表单
+ summaries/YYYYMMDD_课程编号_班级反馈.md → 完成(无需确认)
```
**核心原则**
@@ -362,9 +541,9 @@ def on_evaluation_generated(student, evaluation, class_info):
|:-----|:---------|:----------------|
| **正式学生** | 有档案 | `.claude/memory/class/{班级}/{学生}/feedback/YYYYMMDD_课程编号-课次.md` |
| **本班补课** | 有档案(本班) | `.claude/memory/class/{班级}/{学生}/feedback/YYYYMMDD_课程编号-课次.md` |
| **跨班级补课** | 有档案(他班) | `.claude/memory/class/{补课班级}/补课/{学生}/feedback/YYYYMMDD_课程编号.md` |
| **其他老师班级补课** | 有档案(其他老师) | `.claude/memory/class/{班级}/补课/{学生}/feedback/YYYYMMDD_课程编号.md` |
| **体验/临时学生** | 无档案 | `.claude/memory/class/{班级}/补课/{学生}/feedback/YYYYMMDD_课程编号.md` |
| **跨班级补课** | 有档案(他班) | `.claude/memory/class/{补课班级}/补课/{学生}/feedback/YYYYMMDD_课程编号-课次.md` |
| **其他老师班级补课** | 有档案(其他老师) | `.claude/memory/class/{班级}/补课/{学生}/feedback/YYYYMMDD_课程编号-课次.md` |
| **体验/临时学生** | 无档案 | `.claude/memory/class/{班级}/补课/{学生}/feedback/YYYYMMDD_课程编号-课次.md` |
| **缺课学生** | 有档案 | ❌ 不生成课评 |
> **⚠️ 重要**:跨班级补课学生必须放在 `补课/` 目录下,否则自动化统计系统的三级查找可能无法识别。
@@ -451,7 +630,7 @@ AI定位班级汇总中乔乔的课评
**授课日期**: 2026-04-18
**课评内容**
学生今天课堂非常认真三类作业全部完成。但课堂练习调试12次2次运行错误、3次答案错误、2次编译错误说明边界条件和代码规范性还需加强。建议每道题重新手写框架减少复用旧代码这样基础更扎实。
学生本节课课堂非常认真三类作业全部完成。但课堂练习调试12次2次运行错误、3次答案错误、2次编译错误说明边界条件和代码规范性还需加强。建议每道题重新手写框架减少复用旧代码这样基础更扎实。
课后整理埃氏筛法模板,记录今天的坑点。
@@ -473,12 +652,12 @@ AI定位班级汇总中乔乔的课评
#### 补课追踪模板(补课班级侧)
文件开头注明补课来源:
文件开头可以注明补课来源(仅作元信息,正文不提及补课)
```markdown
(补课,来自 AICODE06洋芋周日1400
{正常课评内容}
{正常课评内容,完全不提补课}
```
### 7.8 失败处理机制
@@ -599,6 +778,28 @@ students:
| 重生成 | `重生成乔乔` | 重新生成乔乔的课评 |
| 手动补存 | `补存` / `同步` | 手动触发待补存队列处理 |
### 7.12 临时文件自动清理规则
> 每次课评生成的输入数据文件(`.claude/.tmp/evaluation_input_*.json` 和 `EVALUATION_READY.txt` 信号文件)在课评保存完成后自动删除,避免临时数据堆积。
**清理时机**:课评全部保存完成后立即执行,无需用户确认
**清理流程**
```
课评保存完成 → AI 删除 .claude/.tmp/ 下对应的 JSON 文件和信号文件 → 提示「🗑️ 已清理临时数据文件」
```
**核心原则**
-**用完即删**:课评持久化到 `feedback/*.md` 后,临时 JSON 不再需要
-**不丢失数据**:课评内容已保存在班级目录中,删除 JSON 不影响任何数据
-**自动执行**无需用户手动删除AI 在完成阶段自动处理
-**安全删除**:仅删除本次会话产生的临时 JSON 和信号文件
**例外情况**
- 表单 HTML 模板文件(`form_template.html`)不会被删除(是可复用的通用模板)
- 服务器脚本(`form_server.py`)不会被删除
- 仅删除 `.claude/.tmp/` 目录下的本次输入数据文件
---
## 八、出勤统计(嵌入班级汇总)
@@ -787,3 +988,611 @@ students:
- [ ] 补课学生必须有课评(放在补课班级的 `补课/学生名/feedback/` 下)
- [ ] 编写班级总结(保存到 `summaries/YYYYMMDD_课程编号-课次_班级反馈.md`
- [ ] 课程编号使用标准格式CSP/AICODE不得使用缩写
---
## 十一、工作流程优化功能v4.1 新增)
> **优化功能概述**:提升课评生成效率、数据安全性和规范一致性
> **触发方式**:自动启用,配合 `/优化` 或相关指令使用
> **配套技能**keping-optimizer
### 11.1 三级备份机制(自动启用)
**功能**:防止数据丢失,提供完整恢复选项
**备份策略**
```
第1级直接保存到目标路径主保存
└── 路径:.claude/memory/class/...
第2级同时保存到 .backup/ 目录(时间戳备份)
└── 路径:.claude/.backup/YYYYMMDD_HHMMSS_{学生}.md
第3级写入前备份现有文件防止覆盖
└── 路径:原文件路径 + .md.bak
```
**恢复功能**
- 指令:`/恢复 {学生}` → 列出该学生的所有备份版本
- 指令:`/恢复备份` → 恢复最近一次备份
- 指令:`/清理备份` → 清理超过7天的旧备份
### 11.2 自动补全缺失信息(自动启用)
**功能**:教师只需输入核心表现,系统自动补全日期、课程编号、课次
**自动补全规则**
| 信息项 | 补全规则 | 默认值 |
|--------|---------|--------|
| **日期** | 取当天日期格式YYYYMMDD | 20260516 |
| **课程编号** | 根据班级名称自动匹配 | 如AICODE03-01 |
| **课次** | 根据学期周数自动计算 | 第11周 = 课次11 |
| **课程主题** | 根据课程代码+周数自动匹配 | 如"蜥蜴" |
**输入示例**
```
极简输入:
/课评 班级:发现世界-周四19点
乔乔gj5→zd3→zt ↑++
自动补全后:
日期20260516
班级:发现世界-周四19点
课程编号DISC-011
课次第11课
课程主题:蜥蜴
```
### 11.3 路径自动创建(自动启用)
**功能**:自动创建不存在的目录结构,避免保存失败
**自动创建的目录结构**
```
.claude/memory/class/
├── {班级名称}/
│ ├── summaries/ ← 自动创建
│ ├── {学生姓名}/
│ │ └── feedback/ ← 自动创建
│ └── 补课/
│ └── {学生姓名}/
│ └── feedback/ ← 自动创建
└── .backup/ ← 自动创建
```
### 11.4 速记符号自动补全(输入时提示)
**功能**输入速记符号时实时提示含义Tab键自动补全
**速记符号速查表**
| 符号 | 含义 | 完整描述 |
|------|------|---------|
| `gj` | 观望 | gj5=观望5分钟 |
| `zd` | 主动搭 | zd3=主动搭3层 |
| `zt` | 自己调整 | 球卡住时自己调整高度 |
| `wb` | 完成 | 独立完成搭建 |
| `zx` | 专注 | zx15=专注15分钟 |
| `sb` | 失败后调整 | sb2=失败2次后成功 |
| `ts` | 探索 | ts5=探索5分钟 |
| `cz` | 创造 | cz3=3种创意方案 |
| `wt` | 提问 | wt3=提问3次 |
| `hz` | 合作 | 合作完成 |
| `fx` | 分享 | 分享想法/作品 |
**自动补全交互示例**
```
教师输入乔乔gj
系统提示:
├─ gj3 → 观望3分钟
├─ gj5 → 观望5分钟
└─ gj10 → 观望10分钟
教师按Tab键→ gj5
```
### 11.5 实时校验提醒(保存前检查)
**功能**:保存前自动检查规范,提前发现问题
**校验清单**
| 检查项 | 规范要求 |
|--------|---------|
| **课程编号** | CSP/AICODE前缀不是C++/AI |
| **日期格式** | YYYYMMDD格式 |
| **目录结构** | 完整路径存在 |
| **文件命名** | 符合规范要求 |
| **课评正文** | 不提及"补课"等词 |
| **字数范围** | 180-350字 |
**校验指令**
- `/检查` → 检查本周所有课评
- `/检查 {班级}` → 检查指定班级课评
### 11.6 智能班级预加载(开始工作时)
**功能**:根据输入的星期几快速预加载对应班级,并展示每个班级的学生名单
**快捷指令**
| 指令 | 功能 |
|------|------|
| **`/周几`** | **按上课日快速索引(推荐)**,如 `/周六``/周日``/周四` |
| `/今天` | 自动判断当天星期几并加载对应班级 |
| `/本周` | 选择本周班级列表 |
| `/模板 {班级}` | 加载班级学生名单模板 |
**/周几 输出格式示例**(以 /周六 为例,其他上课日同理):
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📅 今天是 2026-05-16周六
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
班级 1发现世界-周六09点DISC
├─ 学生名单:乔乔、昊昊、小明、小红
└─ [选择此班级]
班级 2Wedo创造世界-周六1030CREATE
├─ 学生名单:小强、小芳、小华
└─ [选择此班级]
班级 3AICODE03小Q周六1400AICODE03
├─ 学生名单:李明、王芳、张伟、刘洋
└─ [选择此班级]
班级 4Wedo创造世界-周六16点CREATE
├─ 学生名单:赵磊、孙悦、周杰
└─ [选择此班级]
班级 5发现世界-周六19点DISC
├─ 学生名单:陈静、杨帆、黄欣
└─ [选择此班级]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
操作:点击 [选择此班级] 或直接输入班级名称
```
### 11.7 批量处理优化
**并行生成+逐份实时保存**
```
教师输入5个学生 → 系统并行生成
→ 乔乔课评生成完成 → 立即保存 ✅
→ 昊昊课评生成完成 → 立即保存 ✅
→ 其他继续...
```
**批量修改工具**
- `/批量修改 {查找}→{替换}` → 批量替换本周所有课评内容
- `/批量添加 {内容}` → 批量在课评结尾添加内容
### 11.8 待修复列表功能
**位置**`.claude/.tasks/fix-list-YYYYMMDD.md`
**查看与修复**
- 指令:`/修复` → 展示待修复列表,逐个处理或批量自动修复
---
## 十二、快捷指令完整列表
### 班级选择
| 指令 | 功能 |
|------|------|
| **`/周几`** | **按上课日快速索引(推荐)**,如 `/周六``/周日``/周四` |
| `/今天` | 自动判断当天星期几并加载对应班级 |
| `/本周` | 选择本周班级列表 |
| `/班级 {班级名}` | 手动选择指定班级 |
### 模式切换
| 指令 | 功能 |
|------|------|
| `/交互式` | 启用交互式课评生成模式默认Form-First 网页表单) |
| `/批量` | 启用批量输入模式 |
### 模板工具
| 指令 | 功能 |
|------|------|
| `/模板 {班级}` | 加载班级学生名单模板 |
| `/空模板` | 创建空模板 |
### 批量操作
| 指令 | 功能 |
|------|------|
| `/批量修改 {查找}→{替换}` | 批量替换课评内容 |
| `/批量添加 {内容}` | 批量在课评结尾添加内容 |
### 数据恢复
| 指令 | 功能 |
|------|------|
| `/恢复 {学生}` | 恢复该学生的备份 |
| `/恢复备份` | 恢复最近一次备份 |
| `/清理备份` | 清理过期备份文件 |
### 校验检查
| 指令 | 功能 |
|------|------|
| `/检查` | 检查本周课评是否符合规范 |
| `/检查 {班级}` | 检查指定班级课评 |
### 保存与补存
| 指令 | 功能 |
|------|------|
| `/补存` | 尝试重新保存失败的课评 |
| `/学生 {姓名}` | 查看学生档案和历史课评 |
### 修复工具
| 指令 | 功能 |
|------|------|
| `/修复` | 处理待修复列表中的项目 |
---
## 十三、高效课后完整工作流程示例
> 以下流程适用于所有上课日(周一~周日),以周六为例展示
### Step 1智能预加载班级
```
教师:/周六(或 /今天)
→ 显示周六所有班级 + 学生名单 + 当周课程主题:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📅 今天是 2026-05-16周六第11周
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
班级 1发现世界-周六09点DISC
├─ 学生名单:乔乔、昊昊、小明、小红
├─ 当周课程DISC-011 蜥蜴 ✅
└─ [选择此班级]
班级 2Wedo创造世界-周六1030CREATE
├─ 学生名单:小强、小芳、小华
├─ 当周课程CREATE-011 推磨机器人 ✅
└─ [选择此班级]
...
```
### Step 2选择班级 → 自动匹配当周课程 + 启动表单服务器
```
教师1或 发现世界-周六09点
→ 系统根据日期自动匹配当周课程主题 → 启动本地表单服务器
🖥️ 本地服务器已启动!
👉 请打开浏览器http://localhost:8088/form?class=发现世界-周六09点&week=11&course=DISC-011&theme=鳄鱼&date=2026-05-16
(表单已预填班级、周数、课程、学生名单)
也可在聊天中直接输入(备选):
乔乔gj5→zd3→zt ↑++
昊昊慢热→zd3→反复调 →
```
### Step 3网页表单填写 + 直连提交
```
教师打开表单 →
├─ 乔乔:勾选「出勤」→ 输入 gj5→zd3→zt ↑++
├─ 昊昊:勾选「出勤」→ 输入 慢热→zd3→反复调 →
├─ 小明:勾选「请假」
├─ 🔄 补课学生:点「+添加临时学生」→ 输入姓名 → 勾选「补课」→ 输入表现
└─ 点击「🚀 提交并保存」
→ 数据自动 POST 到本地服务器
→ 服务器保存为 .claude/.tmp/evaluation_input_发现世界-周六09点.json
→ 写入信号文件 .claude/.tmp/EVALUATION_READY.txt
→ 表单显示「✅ 已保存 — 可关闭此页面」
```
### Step 4AI 自动检测 → 生成并双轨保存
```
→ AI 检测到 EVALUATION_READY.txt 信号文件
→ 读取 JSON 数据 → 解析学生/状态/表现
→ 生成乔乔课评 → 自动保存 ✅
→ 生成昊昊课评 → 自动保存 ✅
→ 小明标记为请假 → 记录到班级汇总
```
### Step 5实时校验提醒
```
✅ 乔乔:全部通过
⚠️ 昊昊课程编号不规范建议改为DISC-011
→ 教师确认修改 → 自动修复后保存
```
### Step 6检查待修复
```
教师:/修复
→ 查看待修复列表,处理剩余项目
```
### Step 7完成
```
━━━━━━━━━━━━━━━━━━━━━━━━
✅ 全部完成!
已保存学生2人
已备份文件4份主文件+备份)
待修复项目0项
🗑️ 已自动清理临时表单文件
━━━━━━━━━━━━━━━━━━━━━━━━
```
---
## 十四、交互式课评生成流程v4.5 直连提交版)
> **核心理念**:通过 /周几 快速索引 → 启动本地表单服务器 → 浏览器填写直连提交 → AI 自动检测生成
> **适用场景**:课后按班级处理,交互友好,高效批量,无需粘贴
> **适用范围**:本流程适用于所有上课日(`/周一`~`/周日`),以下以 `/周六` 为例展示
> **v4.5 优化**:表单直连提交 — 数据 POST 到本地服务器AI 通过信号文件自动触发,彻底取消复制粘贴
### 完整流程
```
Step 1: 启动 → 输入 /周几(如 /周六、/周四,按当天上课日快速索引)
Step 2: 展示该时段班级列表(附带当周课程主题)
Step 3: 选择班级 → 自动匹配当周课程 → 启动表单服务器
Step 4: 打开浏览器表单 → 填写学生表现 → 点击「提交并保存」
↓ (数据 POST 到本地服务器,保存为 JSON + 写入信号文件)
Step 5: AI 检测信号文件 → 读取 JSON → 批量生成课评 → 双轨保存
Step 6: 🗑️ 自动删除临时文件 → 完成
```
---
### Step 1: 启动 — 快速索引
**输入指令**(支持两种方式):
| 指令 | 适用场景 | 示例 |
|:-----|:---------|:-----|
| **`/周几`** | 按上课日快速查找(**推荐** | `/周六``/周日``/周四` |
| `/今天` | 自动判断当天是周几 | `/今天`(自动换算为当天对应周几) |
**工作日对照表**(系统自动根据班级目录匹配):
| 指令 | 匹配班级示例 |
|:-----|:-------------|
| `/周一`~`/周三` | 按需显示 |
| `/周四` | 发现世界-周四19点 |
| `/周五` | AICODE03小Q周五1900 |
| `/周六` | 发现世界-周六09点、Wedo创造世界-周六1030、AICODE03小Q周六1400 等 |
| `/周日` | 发明世界-周日14点、SPIKE02-周日1030、发现世界-周日下午16点 等 |
**系统响应**(以教师输入 `/周六` 为例):
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📅 周六2026-05-16的课程
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
班级 1发现世界-周六09点DISC
├─ 学生数4人乔乔、昊昊、小明、小红
└─ [选择此班级]
班级 2Wedo创造世界-周六1030CREATE
├─ 学生数3人小强、小芳、小华
└─ [选择此班级]
班级 3AICODE03小Q周六1400AICODE03
├─ 学生数4人李明、王芳、张伟、刘洋
└─ [选择此班级]
班级 4Wedo创造世界-周六16点CREATE
├─ 学生数3人赵磊、孙悦、周杰
└─ [选择此班级]
班级 5发现世界-周六19点DISC
├─ 学生数3人陈静、杨帆、黄欣
└─ [选择此班级]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
请回复班级序号或名称来选择班级1 或 发现世界-周六09点
```
---
### Step 2: 选择班级 → 自动匹配当周课程 + 启动服务器
> ⚠️ **重要**:以下流程适用于所有上课日。选择任何班级后,系统均自动根据**当周日期匹配课程主题** + 启动本地表单服务器。
**教师输入**(任选一种):
```
1
```
```
发现世界-周六09点
```
**系统响应** — 自动加载课程信息 + 匹配当周课程 + 启动服务器:
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 已选择班级:发现世界-周六09点DISC
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 课程信息:
├─ 课程编号DISC-011
├─ 课程主题鳄鱼第11周自动匹配
├─ 核心知识点:嘴巴开合、铰链结构、咬合功能
├─ 日期20260516
👨‍👩‍👧‍👦 学生乔乔、昊昊、小明、小红共4人
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🖥️ 启动本地表单服务器...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
👉 请打开浏览器填写表单:
http://localhost:8088/form?class=发现世界-周六09点&week=11&course=DISC-011&theme=鳄鱼&date=2026-05-16
(表单已自动填入班级信息、学生名单和课程主题)
也可在聊天中直接输入文本备选模式B
乔乔gj5→zd3→zt ↑++
昊昊慢热→zd3→反复调 →
...
```
**课程自动匹配逻辑**
1. 根据当前日期计算学期周数基于3月2日学期开始
2. 根据周数直接匹配课程代码和主题(参见 `15-semester-weeks.md` 映射表)
3. **不参考上节课进度**,直接使用当周实际课程主题
4. 仅当教师特别说明补课时,才手动调整课程主题
**特殊情况处理**
- 若当周为补课(教师明确说明),可手动选择补课主题
- 若无特殊说明,一律使用当周标准课程主题
---
### Step 3: 网页表单填写(直连提交模式)
> 选择班级后系统自动启动本地服务器,表单通过 URL 参数传入班级/学生/课程信息。
> 教师在浏览器中填写表现,点击「提交并保存」后数据直接 POST 到服务器。
**表单内容示例**(自动生成,含学生画像摘要):
```
┌────────────────────────────────────────┐
│ 📝 Wedo创造世界-周六1030 课评输入表 │
│ CREATE-011 · 推磨机器人 · 2026-05-16 │
├────────────────────────────────────────┤
│ 📊 填写进度:████████░░ 3/6 人 │
│ │
│ ┌─ ① 梁家铭 🧒 ─────────────────┐ │
│ │ 📋 需鼓励建立自信... │ │
│ │ 状态:[✅出勤] [🚫请假] │ │
│ │ 表现______________________ │ │
│ │ (速记: gj#观望/zd#搭#层/zt调整) │ │
│ └────────────────────────────────┘ │
│ │
│ ┌─ ② 简思瑜 🧒 ─────────────────┐ │
│ │ 📋 自信主动,结构搭建极坚固... │ │
│ │ 状态:[✅出勤] [🚫请假] │ │
│ │ 表现______________________ │ │
│ └────────────────────────────────┘ │
│ ... │
│ ┌─ + 添加临时学生 ──────────────┐ │
│ │ 姓名:[____] 状态:[补课/体验] │ │
│ └────────────────────────────────┘ │
│ │
│ [🚀 提交并保存] │
└────────────────────────────────────────┘
```
**填写方式**(二选一):
| 方式 | 操作 | 适用场景 |
|:----|:-----|:---------|
| **A. 网页直连提交(推荐)** | 打开浏览器链接 → 填写 → 点击「提交并保存」→ 数据自动 POST 到服务器 | 常规使用 |
| **B. 聊天文本输入** | 在聊天中直接输入多行文本 | 快速处理、数据量少 |
**方式A网页直连提交流程**
```
1. 打开系统提供的表单链接URL 已包含班级/周数/课程/学生)
2. 为每位学生选择状态(出勤/请假/补课/体验)
3. 在文本框中填写表现(支持速记 + 自然语言混合)
4. 点击「🚀 提交并保存」
5. 看到「✅ 提交成功」提示 → 可关闭页面
6. AI 自动检测信号文件 → 生成课评 → 双轨保存
```
**方式B聊天文本输入备选**
```
乔乔gj5→zd3→zt ↑++
昊昊慢热→zd3→反复调 →
小明 体验
小红搭了3层开心 ↑
```
### Step 4: AI 自动检测信号 + 批量生成并保存
**触发方式**:表单提交后服务器写入 `.claude/.tmp/EVALUATION_READY.txt` 信号文件AI 检测到后自动处理。
**系统执行**
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔔 检测到新提交的表单数据
班级:发现世界-周六09点 | DISC-011 鳄鱼
学生4人3人出勤1人请假
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 开始批量生成课评...
[1/3] 生成乔乔课评... ✅ 已保存
[2/3] 生成昊昊课评... ✅ 已保存
[3/3] 生成小红课评... ✅ 已保存
📝 小明标记为请假,不生成课评
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 全部完成!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
已保存3人 | 请假1人
├─ 班级总结summaries/20260516_DISC-011_班级反馈.md
└─ 个人课评:乔乔/、昊昊/、小红/
🗑️ 已清理临时信号文件
下一步:
- 继续下一个班级 → 输入 /周几
- 查看班级总结 → [查看总结]
```
---
### 快捷操作速查
| 操作 | 输入格式 | 效果 |
|:-----|:---------|:------|
| **标记请假** | `{学生} 请假` | 标记缺课,不生成课评 |
| **标记体验** | `{学生} 体验` | 体验标记,仅存班级汇总 |
| **标记补课** | `{学生} 补课` | 补课标记,跨班级自动保存 |
| **恢复出勤** | `{学生} 出勤` | 取消特殊标记,恢复默认出勤 |
| **修改已填** | `修改{学生}:新内容` | 替换该学生已填表现 |
| **添加临时学生** | `添加{姓名}` | 添加到列表末尾 |
| **批量生成** | `全部生成` | 一次性生成所有已填课评 |
| **查看汇总** | `查看汇总` | 查看当前已填写的所有学生 |
**标记使用示例**
```
# 批量填写带标记
乔乔gj5→zd3→zt ↑++
昊昊慢热→zd3→反复调 →
小明 体验
小红 请假
小华[补课]:专注完成,情绪稳定 ↑
# 修改已填表现
修改乔乔gj5→zd3↑↑
# 调整学生标记
小明 出勤(恢复为正式学生)
```
---
## 十五、工作流模式选择
### 两种模式对比
| 模式 | 特点 | 适用场景 |
|------|------|---------|
| **交互式模式** | `/周几` 快速索引 + Form-First 网页表单(含补课/体验区)+ 一键提交 | 课后按班级处理,高效友好 |
| **批量输入模式** | 一次性输入所有学生 | 已有记录,速度优先 |
### 模式切换
```
/交互式 → 启用交互式模式(默认)
/批量 → 启用批量输入模式
```
---
*版本v4.5(表单直连提交 — 取消复制粘贴,数据直通 AI*
*最后更新2026-05-20*
*优化技能keping-optimizer*