- 删除 lesson 下已迁移到独立仓库的课程大纲和 demo 文件 - 删除旧的「出勤登记」目录(已整合到 .claude/memory/class 下) - 删除临时调试文件(all_students.txt、has_profile.txt、oj_hw_a_debug.html) - 课评生成 skill 全面升级:支持从笔记文件批量生成课评 - AIGC.md 增加家长信固定开头格式,与 CSP03 统一 - 新增「课评写入和查找规则 V1.0.md」 - 更新 CLAUDE.md 班级学生数(33 人)
7.6 KiB
7.6 KiB
课评写入决策规则
场景总览
| 场景 | 说明 | 写入位置 |
|---|---|---|
| 正常上课 | 固定班级固定时间,学生正常到课 | 本班学生 feedback/ |
| 正常请假 | 固定班级固定时间,学生请假 | 本班学生 feedback/(请假) |
| 外班来补课 | 其他班的学生来本班上课 | 本班 补课/学生名/feedback/ |
| 本班临时调时间 | 固定班级但本次课改了时间 | 本班学生 feedback/,课评中注明实际时间 |
| 临时凑班 | 不属于任何固定班级的一次性排课 | 建临时班级目录或按补课处理 |
场景1:本班正常到课
- 位置:
班级目录/学生名/feedback/YYYYMMDD_课程编号-课次.md - 操作:在学生 feedback 目录下新增课评文件
- 学生目录已存在 → 直接写
- 学生目录不存在 → 先创建学生目录和 feedback 子目录
场景2:本班请假
- 位置:
班级目录/学生名/feedback/YYYYMMDD_课程编号-课次(请假).md - 操作:在学生 feedback 目录下新增请假记录文件
- 请假记录也要写,保证每位学生每次课都有对应文件
场景3:外班来补课
- 位置:
班级目录/补课/学生名/feedback/YYYYMMDD_课程编号-课次.md - 操作:
- 检查
班级目录/补课/学生名/是否已存在 - 已存在 → 直接在 feedback 下新增课评文件
- 不存在 → 创建
补课/学生名/feedback/目录,再写课评
- 检查
- 补课学生不需要 profile.md
场景4:本班临时调时间
核心原则:写回原班级,不新建目录。 班级目录名中的时间是常规标签,不是精确到每次课的约束。
老师操作流程
- 确认是哪个固定班级的课(比如 CSP01六六周六1045)
- 正常在该班级目录下为每个学生写课评
- 课评文件中加一行注明实际时间:
# 课程名称:CSP01-10 变量与运算
**授课日期**: 2026-05-10
**实际时间**: 16:00-18:00(临时调整,原定 10:45-12:45)
**课评内容**:
...
三种学生的处理
| 学生状态 | 操作 |
|---|---|
| 到课 | 和场景1一样,在学生 feedback/ 下写课评,注明实际时间 |
| 请假 | 和场景2一样,写请假记录 |
| 外班来补课 | 和场景3一样,在补课/ 下写课评 |
为什么不新建临时目录
- 目录会越积越多,长期仓库很乱
- 学生课评会被拆到两个目录,历史不连续
- 老师不需要纠结写哪个目录,班级目录就那几个
- 课评文件名已有日期精确标识,目录名只是标签
场景5:临时凑班
不属于任何固定班级的一次性排课(如集训、体验课等):
- 如果有对应的固定班级 → 按场景4处理,写回固定班级
- 如果完全无对应 → 建临时班级目录(如
CSP01六六集训0510),按场景1/2/3处理 - 临时班级目录用完后不删除,保留历史记录
查找课评的反向逻辑
统计课评完成度时,只在排课老师T的仓库中查找(谁上课谁写课评),从最精确到最模糊逐级查找,每一级找到即停:
校宝记录:学生S 在日期D 到课,排课老师T,课程编号B,上课时间TIME
第1级(精确匹配):课程编号B + 时间TIME + 老师T
1a. 在T仓库找 目录名含B 且 含TIME 的班级目录
→ 在该目录的 S/feedback/ 中找日期D的课评
→ 找到 → 结束
1b. 未找到 → 在该目录的 补课/S/feedback/ 中找日期D的课评
→ 找到 → 结束
→ 未找到 → 进入第2级
第2级(放宽时间):课程编号B + 老师T,时间不限
2a. 在T仓库找 目录名含B 的所有其他班级目录(排除第1级已查的)
→ 排除非常规班(目录名含"集训"、"体验"、"临时"等)
→ 在这些目录的 S/feedback/ 中找日期D的课评
→ 找到 → 结束
2b. 未找到 → 在这些目录的 补课/S/feedback/ 中找日期D的课评
→ 找到 → 结束
→ 未找到 → 标记缺失
核心原则:谁上课谁写课评,只查排课老师的仓库。 不需要跨老师查找,别的老师上的课不会出现在自己仓库里。
覆盖的4种情况:
| 查找 | 含义 |
|---|---|
| 1a. 精确班级学生目录 | 固定班固定时间,本班学生写的课评 |
| 1b. 精确班级补课目录 | 固定班固定时间,补课学生写的课评 |
| 2a. 同阶段不同时间学生目录 | 临时调了时间,写在了另一个同编号班级目录下 |
| 2b. 同阶段不同时间补课目录 | 临时调了时间,补课学生的课评在另一个同编号班级的补课目录 |
关键过滤规则:
- 全程限定课程编号B:缺B补B,不跨课程编号
- 第2级排除"集训/体验/临时"等非常规班目录名
- 每一步找到就停,不重复计数
关键原则
- 以学生为中心:查找时先找学生名,再检查日期
- 课程编号是全程硬约束:只在课程编号B范围内查找,缺B补B
- 谁上课谁写课评:只查排课老师T的仓库,不跨老师
- 每位学生每次课必须有文件:到课写课评,请假写请假记录,不能遗漏
- 补课学生按实际补课班级归类:去哪个班补课,课评就写在那个班的补课目录下
- 补课目录可复用:同一个补课学生多次来同一个班补课,目录已存在就不再创建
- 临时调时间写回原班级:不新建目录,课评内容中注明实际时间即可
两种查找模式
老师仓库是独立的,不同场景需要不同的查找范围:
| 目的 | 查找范围 | 约束 |
|---|---|---|
| 课评完成度统计 | 只查排课老师T的仓库 | 限定课程编号B,逐级查找 |
| 写阶段总结 | 遍历所有老师仓库(15个) | 不限课程编号,按学生名收集全部课评,按时间排序 |
阶段总结查找逻辑:
目标:为学生S 生成阶段总结
1. 遍历所有老师仓库的 .claude/memory/class/ 下所有班级目录
2. 在每个班级目录中查找 S/feedback/ 和 补课/S/feedback/
3. 收集所有 YYYYMMDD_*.md 文件
4. 按日期排序,汇总输出
学生可能换班换老师(如CSP01升CSP02换了老师),课评分散在多个仓库,只能全扫。
学生索引机制
目的
教学督导(可读所有仓库)每周定时扫描15个老师仓库,生成统一的学生索引文件,避免后续查询反复全扫。
索引结构
.claude/memory/student_index/
├── 刘毅潇.md
├── 张祺琪.md
└── ...
每个索引文件:
# 刘毅潇
## 当前班级
- CSP05克力周六1600
## 课评记录
| 日期 | 老师 | 班级 | 路径 |
|------|------|------|------|
| 2026-05-10 | 克力 | CSP05克力周六1600 | keli_ClassFeedback/.../feedback/20260510_CSP05-10.md |
| 2026-05-03 | 克力 | CSP05克力周六1600 | keli_ClassFeedback/.../feedback/20260503_CSP05-09.md |
| 2026-04-19 | 六六 | CSP01六六周六1400 | liuliu_ClassFeedback/.../feedback/20260419_CSP01-08.md |
更新方式
- 定时扫描:每周执行课评整理时自动扫描所有仓库,更新索引
- 增量更新:只追加新发现的课评,不删除历史记录
- 升班/换老师:索引中追加新班级记录,"当前班级"取最新一条
索引的好处
- 老师仓库不动:写入逻辑完全不变
- 课评完成度统计:读索引即可,不用全扫15个仓库
- 阶段总结:直接读索引文件,按日期排序就完事
- 升班/换老师:索引里追加记录,学生历史自然连续
- 统一视图:教学督导和所有协作者都能看到学生完整课评轨迹