Files
ClassFeedback/.claude/rules/20-workflow.md
2026-06-02 23:01:58 +08:00

1599 lines
58 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 工作流程规则:输入格式、批量生成、存储与特殊处理
> 合并文件:快捷输入格式 + 批量课评生成 + 新学生/补课处理 + 速记符号 + 快速入门
> 版本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对照规则」:课程编号、目录结构、文件命名、日期匹配、完成率统计、三级查找
> - 重写第5节「存储规则」以 `.claude/memory/class/` 标准目录结构为准
> - 更新第7节「自动双轨保存机制」改为单次文件保存 + 班级总结
> - 更新第3节「学生类型标记」保存位置指向新路径
> - 新增补课双向记录规则
>
> **v3.2 变更**
---
## 一、快速入门30秒上手
### 1.1 三步完成课评
```
第1步指定班级一次即可
/课评 班级:发现世界-周四19点
第2步输入学生表现
乔乔观望5分钟→主动搭3层→自己调整开心比上周进步
昊昊慢热搭3层反复调整稳定
第3步AI自动生成并保存
AI生成 → 自动双轨保存 → 完成!
```
**完成!课评已自动保存到班级汇总和个人档案,无需确认。**
### 1.2 核心理念
- **有姓名** → AI知道是谁
- **有行为** → AI知道做了什么
- **其他随意** → AI自动补充
支持:口语化、碎片化、无序化、语音转文字。
---
## 二、输入格式
### 2.1 自然语言输入(推荐)
**方式1极简一句话**
```
乔乔本节课开始不敢碰,后来主动搭了三层,球卡住自己调高度,挺稳定的,比上周主动多了
```
**方式2关键词速记**
```
乔乔gj5→zd3→zt ↑++
昊昊慢热→zd3→反复调 →
```
### 2.2 批量输入格式
**标准列表式(推荐)**
```
课程DISC-007
班级:发现世界-周四19点
日期4月16日
1. 乔乔gj5→zd3→zt ↑++
2. 昊昊慢热→zd3→反复调 →
3. 张小明[体验]搭了3层开心
4. 李小红[补课]:专注完成,稳定
```
**简化表格式**
```
学生 核心表现 情绪 对比
─────────────────────────────────────────
乔乔 gj5→zd3→zt ↑ ++
昊昊 慢热→zd3→反复调 → 渐入佳境
小明[体验] 搭3层参与 ↑ 积极
```
### 2.3 语音输入优化
AI自动匹配班级学生名单实时纠正谐音
- "良心桥" → "梁昕乔"
- "中云浩" → "钟昀昊"
> **速记符号完整定义**:参见 `21-shorthand.md`
---
## 三、学生类型标记
### 3.1 标记说明
| 标记 | 含义 | 处理方式 | 保存位置 |
|------|------|----------|---------|
| 无标记 | 正式学生 | 双轨保存 | 个人课评文件+班级汇总 |
| `[补课]` | 补课学生 | 自动检测档案位置,跨班级自动双轨保存 | 个人课评文件(原班级侧追踪文件)+班级汇总 |
| `[体验]` | 体验课学生 | 仅班级汇总 | 个人课评文件(补课目录)+班级汇总 |
| `[缺课]` | 今天缺席 | 记录缺席 | 仅班级汇总 |
| `[new]` | 新学生首次 | 创建档案 | 个人课评文件+班级汇总+学生画像 |
### 3.2 标记使用示例
```
批量输入示例:
周四19点 DISC-007
乔乔gj5→zd3→zt ↑++
昊昊慢热→zd3→反复调 →
张小明[体验]搭了3层开心
李小红[补课]:专注完成,稳定
```
**AI自动处理**
- 乔乔、昊昊:双轨保存
- 张小明[体验]:仅保存到班级汇总,不询问
- 李小红[补课]:检查档案 → 当前班级存在 → 双轨保存;其他班级存在 → **自动跨班级双轨保存**
> **补课/新学生/转正详细规则**:参见 `22-student-mgmt.md`
---
## 四、批量生成流程
### 4.1 标准流程
```
教师极简输入 → AI并行解析每个学生 → 预加载课程/档案 →
并行生成个性化课评 → 质量检查 → 【自动双轨保存】→ 【🗑️ 自动删除临时表单】→ 完成
```
**预加载说明**
- **课程预加载**:系统根据日期自动计算学期周数,匹配课程主题和知识点(详见 [`15-semester-weeks.md`](15-semester-weeks.md)
- **档案预加载**:调取学生画像(性格气质、学习特点、历史表现)实现千人千面生成(详见 [`30-student.md`](30-student.md)
### 4.2 批量输出界面
```
━━━━━━━━━━━━━━━━━━━━━━━
📊 批量生成完成5份发现世界-周四19点DISC-007
━━━━━━━━━━━━━━━━━━━━━━━
✅ 乔乔 198字 正常
✅ 昊昊 205字 正常
⚠️ 小强 165字 偏短
✅ 张小明[体验] 192字 体验学生
✅ 李小红[补课] 201字 补课学生
【批量操作】
[全部发送] [逐个查看] [标记修改] [取消]
━━━━━━━━━━━━━━━━━━━━━━━
```
### 4.3 自动通过条件(同时满足)
- ✅ 学生有完整档案
- ✅ 字数在弹性范围内180-350字
- ✅ 无敏感词/异常表述
- ✅ 情绪描述合理
### 4.4 需教师关注条件(任一满足)
- ⚠️ 体验/补课学生(无档案)
- ⚠️ 字数偏差>20字
- ⚠️ 检测到负面情绪词
- ⚠️ 与上周表现差异过大
- ⚠️ 内容重复度高
---
## 五、存储规则(课评规范标准结构)
> ⚠️ **课评规范V1.0强制要求**:课评必须按次按学生**单独文件**保存,不可用汇总文件代替单次课评。目录结构必须遵循 `.claude/memory/class/` 标准,否则课评完成率自动化统计无法识别。
### 5.1 标准目录结构
```
.claude/memory/class/
├── {班级名称}/ # 命名:{课程编号}{老师}{星期时间}(如 AICODE03小Q周五1900
│ ├── summaries/ # 班级总结/群发文案
│ │ ├── YYYYMMDD_课程编号-课次_班级反馈.md
│ │ └── YYYYMMDD_课程编号-课次_微信群.txt
│ ├── {学生姓名}/ # 学生个人目录
│ │ ├── feedback/ # 【个人课评目录 - 核心】
│ │ │ ├── YYYYMMDD_课程编号-课次.md # 正常课评
│ │ │ ├── YYYYMMDD_课程编号-课次(请假).md # 请假记录
│ │ │ └── YYYYMMDD_课程编号-课次(补课-去班级名).md # 补课追踪
│ │ └── profile.md # 学生画像
│ └── 补课/ # 补课学生专用目录
│ └── {学生姓名}/
│ └── feedback/
│ └── YYYYMMDD_课程编号.md
├── {班级名称2}/
└── ...
```
### 5.2 文件命名规范
#### 课程编号规则
**必须与校宝排课系统中的 `class_name` 完全一致**
| 校宝 class_name | 标准编号 | 说明 |
|----------------|---------|------|
| CSP01信息学奥赛01 | **CSP01** | C++ 信息学奥赛班 |
| AICODE03AI编程创新课03 | **AICODE03** | AI 编程创新班 |
**强制规则**
- C++ 班统一用 `CSP`,不得用 `C++``信奥`
- AI 编程班统一用 `AICODE`,不得用 `AI``AI03` 等缩写
#### 文件命名格式
| 类型 | 格式 | 示例 |
|------|------|------|
| 单次课评 | `YYYYMMDD_课程编号-课次.md` | `20260418_CSP05-07.md` |
| 请假记录 | `YYYYMMDD_课程编号-课次(请假).md` | `20260505_CSP05-10(请假).md` |
| 补课追踪 | `YYYYMMDD_课程编号-课次(补课-去班级名).md` | `20260505_CSP05-10(补课-去AICODE03茄子周六1600).md` |
| 班级反馈 | `YYYYMMDD_课程编号-课次_班级反馈.md` | `20260418_CSP05-07_班级反馈.md` |
| 群发文案 | `YYYYMMDD_课程编号-课次_微信群.txt` | `20260418_CSP05-07_微信群.txt` |
| 月度总结 | `YYYY-MM_月度总结.md` | `2026-04_月度总结.md` |
| 学生画像 | `profile.md`(固定名) | `profile.md` |
#### 日期规则(关键)
**文件名中的 `YYYYMMDD` 必须与校宝 `teaching_date` 完全一致。**
| 校宝 teaching_date | 正确文件名 | 错误文件名 | 原因 |
|-------------------|-----------|-----------|------|
| 2026-05-10周六 | `20260510_CSP01-10.md` | `20260511_CSP01-10.md` | 05-11是周日非上课日 |
| 2026-05-09周五 | `20260509_AICODE04-09.md` | `20260510_AICODE04-09.md` | 应取校宝日期而非提交日期 |
### 5.3 考勤状态文件检测
AI及自动化系统扫描 `feedback/` 目录时,通过文件名后缀判断状态:
| 文件名匹配 | 判定 |
|-----------|------|
| `YYYYMMDD_课程编号-课次.md` | 正常课评,计为到课 |
| `YYYYMMDD_课程编号-课次(请假).md` | 请假,不要求课评 |
| `YYYYMMDD_课程编号-课次(补课-去班级名).md` | 补课追踪,课评在补课班级 |
### 5.4 双轨保存机制(新规范)
| 存储位置 | 标准路径 | 用途 | 保存时机 |
|---------|---------|------|:--------:|
| **个人课评文件** | `feedback/YYYYMMDD_课程编号-课次.md` | 单次个人课评 | 生成后自动保存 |
| **班级总结** | `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`(必须存在,关系到完成率统计)
2. **第二优先级**:班级总结 `summaries/*.md`(课后必写,但不影响个人完成率)
### 5.6 失败处理
- 个人课评文件保存失败 → 记录到待补存队列,下次生成前自动补存
- 教师可输入`补存``同步`手动触发
---
## 六、推荐工作流程
### 6.1 课后5分钟快速流程
```
Step 11分钟: 指定班级
/课评 班级:发现世界-周四19点
Step 22分钟: 速记输入
乔乔gj5→zd3→zt ↑++
昊昊慢热→zd3→反复调 →
小明[体验]zd3 ↑
小红[补课]:专注完成 →
Step 32分钟: 查看并保存
AI生成 → 查看质量报告 → 课评保存完成 → 🗑️ 自动清理表单 → 完成
完成!课评已自动双轨保存,无需确认。
```
### 6.2 不同场景推荐
| 场景 | 推荐方式 | 预计时间 |
|------|---------|----------|
| 常规课后8人 | 速记批量输入 | 3-5分钟 |
| 重点关注学生 | 自然语言详细描述 | 2-3分钟/人 |
| 边走边记 | 语音转文字 | 实时 |
| 周汇总整理 | 查看班级周汇总文件 | 1分钟 |
---
## 七、自动双轨保存机制(核心功能)
> 课评生成后立即自动保存为个人课评文件 + 班级总结,无需教师确认
### 7.1 机制概述
```
生成阶段 保存阶段 完成阶段
───────── ───────── ─────────
AI生成课评 → 【自动保存】 → 课评持久化保存
↓ ↓ ↓
质量检查通过 → feedback/YYYYMMDD_课程编号.md → 🗑️ 自动删除临时表单
+ summaries/YYYYMMDD_课程编号_班级反馈.md → 完成(无需确认)
```
**核心原则**
-**生成即保存**:课评生成后立即自动保存为单次课评文件到 `feedback/`
-**无需确认**:教师无需点击"确认",课评直接生效
-**全程可修改**:生成后教师可随时修改文件内容
-**文件名即考勤**:有课评文件即视为出勤
### 7.2 保存流程
#### 标准流程
```
教师输入表现 → AI生成课评 → 质量检查 → 【自动保存到 feedback/】→ 完成
```
#### 详细步骤
```python
def on_evaluation_generated(student, evaluation, class_info):
"""课评生成后自动触发"""
# 1. 质量检查
if not quality_check(evaluation):
return regenerate(student)
# 2. 构建文件名和路径
date = class_info['teaching_date'] # 取校宝排课日期,非编写日期
course_code = class_info['course_code'] # 如 CSP05-07 或 AICODE03-05
filename = f"{date}_{course_code}.md"
filepath = f".claude/memory/class/{class_info['class_dir']}/{student}/feedback/{filename}"
# 3. 自动保存个人课评文件
try:
save_to_file(filepath, format_evaluation(evaluation))
log_success(f"{student} 课评已保存:{filepath}")
except SaveError as e:
log_error(f"个人课评文件保存失败:{e}")
return retry_or_alert()
# 4. 展示给教师(已保存状态)
return show_to_teacher(student, evaluation, filename=filename, status="已保存")
```
### 7.3 学生类型与文件路径对照
| 类型 | 档案状态 | 课评文件保存路径 |
|:-----|:---------|:----------------|
| **正式学生** | 有档案 | `.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` |
| **缺课学生** | 有档案 | ❌ 不生成课评 |
> **⚠️ 重要**:跨班级补课学生必须放在 `补课/` 目录下,否则自动化统计系统的三级查找可能无法识别。
### 7.4 自动触发条件
| 场景 | 触发动作 | 自动保存 |
|:-----|:---------|:--------:|
| 单学生课评生成完成 | 立即触发 | 班级汇总 + 个人档案(双轨)|
| 批量课评全部生成完成 | 全部生成后批量触发 | 班级汇总 + 个人档案(双轨,批量)|
| 课评修改完成 | 立即触发 | 班级汇总 + 个人档案(双轨,更新)|
**自动保存优先级**
```
优先级1必须成功个人课评文件 feedback/*.md
↓ 成功
优先级2允许失败班级总结 summaries/*.md
↓ 失败
加入待补存队列,下次触发时重试
```
### 7.5 教师交互指令
#### 查看类指令
| 指令 | 功能 | 返回内容 |
|:-----|:-----|:---------|
| `查看{学生}` | 查看指定学生课评详情 | 完整课评内容 + 状态 + 操作按钮 |
| `查看全部` | 查看所有已生成课评 | 列表视图,含快速操作 |
| `查看本周` | 查看本周班级汇总 | 打开本周班级汇总文件 |
#### 修改类指令
| 指令 | 功能 | 触发动作 |
|:-----|:-----|:---------|
| `修改{学生}{内容}` | 修改指定学生课评 | 直接编辑,更新班级汇总和个人档案 |
| `重生成{学生}` | 完全重新生成 | 删除原课评,重新生成,自动双轨保存 |
| `删除{学生}` | 删除该学生课评 | 从班级汇总和个人档案中删除(保留记录)|
### 7.6 修改规则
#### 支持修改的范围
| 修改类型 | 示例 | 处理方式 | 字数限制 |
|:---------|:-----|:---------|:--------:|
| 词语替换 | "搭建"→"拼搭" | 直接替换 | 不影响 |
| 称呼修改 | "乔乔"→"昕乔" | 全文替换 | 不影响 |
| 内容补充 | 在"完成了"后添加"还帮助了同伴" | 插入文本 | 单条≤50字 |
| 内容删除 | 删除"这个调整值得注意" | 删除文本 | 单条≤50字 |
| 情绪调整 | "开心"→"兴奋" | 替换关键词 | 不影响 |
#### 不支持修改的场景(需重生成)
- 改变课评结构如从3段改为4段
- 改变评价基调(从负面改为正面)
- 补充大量内容(>100字
- 改变课程主题理解
#### 修改流程
```
教师:修改乔乔:把"搭建"改为"拼搭"
AI定位班级汇总中乔乔的课评
执行替换 → 字数检查 → 质量检查
更新班级汇总文件
同步更新个人档案(如有)
提示修改完成
```
### 7.7 个人课评文件内容格式
#### 标准课评模板(单次文件)
个人课评文件 `feedback/YYYYMMDD_课程编号-课次.md` 内容格式:
```markdown
# 课程名称CSP05-07 初等数论2
**授课日期**: 2026-04-18
**课评内容**
学生本节课课堂非常认真三类作业全部完成。但课堂练习调试12次2次运行错误、3次答案错误、2次编译错误说明边界条件和代码规范性还需加强。建议每道题重新手写框架减少复用旧代码这样基础更扎实。
课后整理埃氏筛法模板,记录今天的坑点。
---
**老师签名XXX**
```
#### 请假记录模板
```markdown
# 请假记录
**日期**: 2026-05-05
**课程**: CSP05-10
**学生**: 刘毅潇
**状态**: 请假
**原因**: (如有)
```
#### 补课追踪模板(补课班级侧)
文件开头可以注明补课来源(仅作元信息,正文不提及补课):
```markdown
(补课,来自 AICODE06洋芋周日1400
{正常课评内容,完全不提补课}
```
### 7.8 失败处理机制
| 失败类型 | 处理方式 | 教师感知 | 补偿机制 |
|:---------|:---------|:---------|:---------|
| 班级汇总写入失败 | 立即重试3次仍失败则报错 | 显示错误提示 | 手动重试按钮 |
| 个人档案写入失败 | 标记FAILED加入待补存队列 | 静默处理,下次提示 | 自动补存 |
| 并发冲突(班级) | 自动合并(追加模式) | 无感知 | 自动解决 |
| 并发冲突(个人) | 队列化处理,串行重试 | 延迟1-2秒 | 自动重试 |
| 磁盘满/权限不足 | 加入待补存队列,提醒教师 | 显示警告 | 手动触发补存 |
#### 待补存队列处理
```
检测到待补存课评2条
1. 乔乔 - 第7周发现世界
状态:班级汇总已保存,个人档案保存失败
原因:磁盘临时满
[立即补存] [忽略]
2. 昊昊 - 第7周发现世界
状态:班级汇总已保存,个人档案保存失败
原因:权限被拒绝
[立即补存] [忽略]
[全部补存]
```
### 7.9 批量生成界面
#### 生成完成展示
```
━━━━━━━━━━━━━━━━━━━━━━━
📊 课评生成完成5份发现世界-周四19点DISC-007
━━━━━━━━━━━━━━━━━━━━━━━
✅ 已保存
✅ 乔乔 198字 已保存
✅ 昊昊 205字 已保存
✅ 张小明 192字 体验学生(仅班级汇总)
✅ 李小红 201字 补课学生(跨班级自动保存)
⚠️ 小强 165字 字数偏短(建议检查)
【操作选项】
[查看全部] [修改] [重生成]
━━━━━━━━━━━━━━━━━━━━━━━
```
#### 逐个查看模式
```
━━━━━━━━━━━━━━━━━━━━━━━
📋 课评详情 1/5 |乔乔
━━━━━━━━━━━━━━━━━━━━━━━
【课评内容】
乔乔本节课学习了"旋转飞机"...
(完整课评内容)
【状态】✅ 已双轨保存
【字数】198字 ✅ 符合标准
【质量】✅ 无敏感词 ✅ 情绪合理 ✅ 学生档案完整
【操作】
[查看下一份] [修改] [重生成]
━━━━━━━━━━━━━━━━━━━━━━━
```
### 7.10 状态管理面板
在班级汇总文件顶部自动维护状态面板:
```markdown
---
class: 发现世界-周四19点
week: 7
course: DISC-007
generated_at: 2026-04-17T16:00:00
status:
total: 5
saved: 5
failed: 0
students:
- name: 乔乔
status: saved
saved_at: 2026-04-17T16:05:00
- name: 昊昊
status: saved
saved_at: 2026-04-17T16:06:00
- name: 张小明
status: saved
saved_at: 2026-04-17T16:07:00
note: 体验学生,仅班级汇总
---
## 本周课评状态
| 学生 | 状态 | 操作 |
|:-----|:----:|:----:|
| 乔乔 | ✅ 已保存 | [查看] [修改] |
| 昊昊 | ✅ 已保存 | [查看] [修改] |
| 张小明 | ✅ 已保存 | [查看] [修改] |
| 李小红 | ✅ 已保存 | [查看] [修改] |
| 小强 | ⚠️ 保存失败 | [重试] [查看] |
```
### 7.11 快捷指令速查
| 场景 | 指令 | 效果 |
|:-----|:-----|:-----|
| 查看全部 | `查看全部` | 查看本周所有已保存课评 |
| 查看单个 | `查看乔乔` | 查看乔乔的课评详情 |
| 修改课评 | `修改乔乔:把"搭建"改为"拼搭"` | 修改指定课评内容 |
| 重生成 | `重生成乔乔` | 重新生成乔乔的课评 |
| 手动补存 | `补存` / `同步` | 手动触发待补存队列处理 |
### 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/` 目录下的本次输入数据文件
---
## 八、出勤统计(嵌入班级汇总)
> 出勤信息直接记录在班级周汇总文件中,无需独立的出勤统计文件
### 8.1 出勤判定规则
| 状态 | 图标 | 判定方式 |
|:-----|:----:|:---------|
| **出勤** | ✅ | 有档案 + 已生成课评 |
| **补课** | 🔄 | 档案在其他班级 + 来本班上课(课评状态表标注) |
| **体验/临时** | 📝 | 无档案 + 已生成课评(课评状态表标注) |
| **缺课** | ❌ | 有档案 + 未生成课评(头部人数自动体现) |
### 8.2 出勤信息位置
出勤数据直接体现在班级周汇总文件中:
**头部信息**(一行搞定):
```markdown
> 班级人数:{N}人(出勤{M}人,缺勤{K}人)
```
**课评状态表**(已有,兼做出勤记录):
```markdown
| 学生 | 状态 | 类型 | 操作 |
|:-----|:----:|:----:|:----:|
| 乔乔 | ✅ 已保存 | 常规 | [查看] |
| 小红 | ✅ 已保存 | 补课 | [查看] |
| 小明 | ✅ 已保存 | 体验 | [查看] |
```
### 8.3 查看出勤
| 指令 | 功能 | 返回内容 |
|:-----|:-----|:---------|
| `查看出勤` | 查看本周各班级出勤 | 读取各班级汇总头部信息汇总 |
| `查看{班级}出勤` | 查看指定班级 | 返回该班级汇总的头部+状态表 |
| `标记缺课 {学生}` | 手动标记缺课 | 在班级汇总中添加缺课记录 |
---
## 九、快速编辑功能
支持小修改直接编辑,无需重新生成:
```
修改乔乔:把"搭建"改为"拼搭"
修改昊昊:称呼改为"昊昊小朋友"
修改小明:在"完成了"后添加"还帮助了同伴"
```
**限制**单次修改不超过50字单篇累计不超过100字。超出限制建议重新生成。
---
## 十、课评规范V1.0对照规则(强制)
> 以下规则来自上级统一发布的「课评管理规范V1.0」,**所有老师必须遵守**,否则课评完成率自动化统计无法正确识别。
### 10.1 课程编号规范
**班级文件夹中的课程编号必须与校宝排课系统的 `class_name` 一致**
| 校宝 class_name | 标准编号 | 文件名示例 |
|----------------|---------|-----------|
| CSP01信息学奥赛01 | **CSP01** | `20260418_CSP01-07.md` |
| CSP02信息学奥赛02 | **CSP02** | `20260418_CSP02-07.md` |
| CSP05信息学奥赛05 | **CSP05** | `20260418_CSP05-07.md` |
| AICODE01代码编程入门课01 | **AICODE01** | `20260418_AICODE01-07.md` |
| AICODE02代码编程入门课02 | **AICODE02** | `20260418_AICODE02-07.md` |
| AICODE03AI编程创新课03 | **AICODE03** | `20260418_AICODE03-05.md` |
| AICODE04AI编程创新课04 | **AICODE04** | `20260418_AICODE04-07.md` |
| AICODE06AI编程创新课06 | **AICODE06** | `20260418_AICODE06-07.md` |
**强制规则**
1. C++竞赛班统一用 `CSP`:不得使用 `C++``信奥``信息学` 等作为课程前缀
2. AI编程班统一用 `AICODE`:不得使用 `AI``AI03``AI01` 等缩写,必须是完整编号
3. **编号必须与校宝一致**:校宝叫 CSP01 就是 CSP01叫 AICODE03 就是 AICODE03
### 10.2 目录结构标准
```
.claude/memory/class/
├── {课程编号}{老师}{星期时间}/ # 如 AICODE03小Q周五1900
│ ├── summaries/
│ ├── {学生姓名}/
│ │ ├── feedback/
│ │ │ └── YYYYMMDD_课程编号-课次.md
│ │ └── profile.md
│ └── 补课/
│ └── {学生姓名}/
│ └── feedback/
│ └── YYYYMMDD_课程编号.md
└── ...
```
### 10.3 日期匹配规则
**文件名中的 YYYYMMDD 必须与校宝 teaching_date 完全一致。**
常见错误:
- ❌ 用课评编写/提交日期而非实际上课日期
- ❌ 周六上课但文件标周日日期
- ❌ 用课次所属周的周一/周日日期
**正确做法**:上完课当天就写完课评,文件名日期取校宝排课日期。
### 10.4 课评完成率统计规则
#### 数据来源
- **出勤基准**:校宝 API 排课数据(`teaching-schedule`),以校宝为准
- **统计范围**:仅统计 CSP 和 AICODE 班级
- **时间范围**:默认上周三到本周二
#### 出勤状态判定
| 校宝 attendance_status | 判定 | 课评要求 |
|----------------------|------|---------|
| 含 `到课`/`出勤`/`签到` | **到课** | 必须有课评文件 |
| 含 `请假` | **请假** | 当天不要求课评 |
| 其他 | **缺勤** | 不要求 |
- 补课学生(`student_identity = 补课`)按到课处理,必须有课评
- 试听学生(`student_identity = 试听`)按到课处理,必须有课评
#### 三级查找规则
对校宝中每个到课学生,系统按以下优先级查找课评文件:
```
校宝记录学生S 在日期D 到课排课老师为T班级编号为B
第1级 → 去老师T的仓库在班级B对应目录下查找
路径T仓库/.claude/memory/class/{含B的目录}/S/feedback/
文件YYYYMMDD(D)_*.md排除汇总/登记/总结/班级反馈)
找到 → 匹配成功 ✓
未找到 → 进入第2级
第2级 → 去老师T的仓库在其他所有班级的 补课/ 目录下查找
路径T仓库/.claude/memory/class/{其他班级}/补课/S/feedback/
找到 → 匹配成功 ✓
未找到 → 进入第3级
第3级 → 去其他所有老师的仓库,在所有班级的 补课/ 目录下查找
路径:其他老师仓库/.claude/memory/class/{任意班级}/补课/S/feedback/
找到 → 匹配成功 ✓
未找到 → 标记为「缺失」✗
```
#### 完成率计算
```
应发总数 = 到课学生数(本班到课 + 补课到课 + 试听到课)
已完成 = 按三级查找规则匹配到的学生数
完成率 = 已完成 / 应发总数 × 100%
```
请假学生不纳入应发总数。请假学生后续在其他课堂补课(校宝中以补课身份出现),按到课学生处理。
#### 学生名匹配规则
- 去除空格后比较
- 支持包含匹配(如仓库 `梁铭轩` 可匹配校宝 `梁铭轩(大)`
- 去除后缀标记如 `(am)``1` 等再尝试
### 10.5 补课双向记录规范
补课产生两条记录,分别在原班级和补课班级:
**场景**:洋芋老师的学生王五,到茄子老师的 AICODE03 班补课
**1) 原班级侧(洋芋老师)**
- 文件:`feedback/20260510_AICODE06-03(补课-去AICODE03茄子周六1600).md`
- 内容:简要说明去哪补课
**2) 补课班级侧(茄子老师)**
- 文件:`补课/王五/feedback/20260510_AICODE03-05.md`
- 内容开头注明:`(补课,来自 AICODE06洋芋周日1400`,后续正常写课评
### 10.6 课后必做清单
- [ ] 为每位**到课**学生编写个人课评(保存到 `feedback/YYYYMMDD_课程编号-课次.md`
- [ ] 日期取校宝排课日期,不是编写日期
- [ ] 补课学生必须有课评(放在补课班级的 `补课/学生名/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*