Files
ClassFeedback/.claude/rules/20-workflow.md
qiuyan bfc69267f6 同步课评规范V1.0 v4.0:课程编号规范、目录结构、完成率统计规则
- 课程编号:CSP (C++) / AICODE (AI编程),必须与校宝一致
- 目录结构:.claude/memory/class/{班级}/{学生}/feedback/YYYYMMDD_课程编号-课次.md
- 文件命名:(请假)/(补课-去班级名) 后缀标记
- 完成率统计:三级查找规则(本班级→跨班级补课→其他老师仓库)
- keping-advanced skill 完整重写至 v4.0
- 所有 AI03 → AICODE03,所有 memory/student/ → .claude/memory/class/
2026-05-14 13:41:26 +08:00

790 lines
27 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.0(课评规范同步版)| 更新日期2026-05-14
>
> **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`(固定名) | 学生基础信息 | 建档时创建 |
### 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 快捷指令速查
| 场景 | 指令 | 效果 |
|:-----|:-----|:-----|
| 查看全部 | `查看全部` | 查看本周所有已保存课评 |
| 查看单个 | `查看乔乔` | 查看乔乔的课评详情 |
| 修改课评 | `修改乔乔:把"搭建"改为"拼搭"` | 修改指定课评内容 |
| 重生成 | `重生成乔乔` | 重新生成乔乔的课评 |
| 手动补存 | `补存` / `同步` | 手动触发待补存队列处理 |
---
## 八、出勤统计(嵌入班级汇总)
> 出勤信息直接记录在班级周汇总文件中,无需独立的出勤统计文件
### 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不得使用缩写