清理旧文件并升级课评系统至笔记批量工作流
- 删除 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 人)
This commit is contained in:
194
课评写入和查找规则V1.0.md
Normal file
194
课评写入和查找规则V1.0.md
Normal file
@@ -0,0 +1,194 @@
|
||||
# 课评写入决策规则
|
||||
|
||||
## 场景总览
|
||||
|
||||
| 场景 | 说明 | 写入位置 |
|
||||
|------|------|---------|
|
||||
| 正常上课 | 固定班级固定时间,学生正常到课 | 本班学生 feedback/ |
|
||||
| 正常请假 | 固定班级固定时间,学生请假 | 本班学生 feedback/(请假) |
|
||||
| 外班来补课 | 其他班的学生来本班上课 | 本班 补课/学生名/feedback/ |
|
||||
| 本班临时调时间 | 固定班级但本次课改了时间 | 本班学生 feedback/,课评中注明实际时间 |
|
||||
| 临时凑班 | 不属于任何固定班级的一次性排课 | 建临时班级目录或按补课处理 |
|
||||
|
||||
## 场景1:本班正常到课
|
||||
|
||||
- 位置:`班级目录/学生名/feedback/YYYYMMDD_课程编号-课次.md`
|
||||
- 操作:在学生 feedback 目录下新增课评文件
|
||||
- 学生目录已存在 → 直接写
|
||||
- 学生目录不存在 → 先创建学生目录和 feedback 子目录
|
||||
|
||||
## 场景2:本班请假
|
||||
|
||||
- 位置:`班级目录/学生名/feedback/YYYYMMDD_课程编号-课次(请假).md`
|
||||
- 操作:在学生 feedback 目录下新增请假记录文件
|
||||
- 请假记录也要写,保证每位学生每次课都有对应文件
|
||||
|
||||
## 场景3:外班来补课
|
||||
|
||||
- 位置:`班级目录/补课/学生名/feedback/YYYYMMDD_课程编号-课次.md`
|
||||
- 操作:
|
||||
1. 检查 `班级目录/补课/学生名/` 是否已存在
|
||||
2. 已存在 → 直接在 feedback 下新增课评文件
|
||||
3. 不存在 → 创建 `补课/学生名/feedback/` 目录,再写课评
|
||||
- 补课学生不需要 profile.md
|
||||
|
||||
## 场景4:本班临时调时间
|
||||
|
||||
**核心原则:写回原班级,不新建目录。** 班级目录名中的时间是常规标签,不是精确到每次课的约束。
|
||||
|
||||
### 老师操作流程
|
||||
|
||||
1. 确认是哪个固定班级的课(比如 CSP01六六周六1045)
|
||||
2. 正常在该班级目录下为每个学生写课评
|
||||
3. 课评文件中**加一行注明实际时间**:
|
||||
|
||||
```markdown
|
||||
# 课程名称:CSP01-10 变量与运算
|
||||
|
||||
**授课日期**: 2026-05-10
|
||||
**实际时间**: 16:00-18:00(临时调整,原定 10:45-12:45)
|
||||
|
||||
**课评内容**:
|
||||
...
|
||||
```
|
||||
|
||||
### 三种学生的处理
|
||||
|
||||
| 学生状态 | 操作 |
|
||||
|---------|------|
|
||||
| 到课 | 和场景1一样,在学生 feedback/ 下写课评,注明实际时间 |
|
||||
| 请假 | 和场景2一样,写请假记录 |
|
||||
| 外班来补课 | 和场景3一样,在补课/ 下写课评 |
|
||||
|
||||
### 为什么不新建临时目录
|
||||
|
||||
1. 目录会越积越多,长期仓库很乱
|
||||
2. 学生课评会被拆到两个目录,历史不连续
|
||||
3. 老师不需要纠结写哪个目录,班级目录就那几个
|
||||
4. 课评文件名已有日期精确标识,目录名只是标签
|
||||
|
||||
## 场景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级排除"集训/体验/临时"等非常规班目录名
|
||||
- 每一步找到就停,不重复计数
|
||||
|
||||
## 关键原则
|
||||
|
||||
1. **以学生为中心**:查找时先找学生名,再检查日期
|
||||
2. **课程编号是全程硬约束**:只在课程编号B范围内查找,缺B补B
|
||||
3. **谁上课谁写课评**:只查排课老师T的仓库,不跨老师
|
||||
4. **每位学生每次课必须有文件**:到课写课评,请假写请假记录,不能遗漏
|
||||
5. **补课学生按实际补课班级归类**:去哪个班补课,课评就写在那个班的补课目录下
|
||||
6. **补课目录可复用**:同一个补课学生多次来同一个班补课,目录已存在就不再创建
|
||||
7. **临时调时间写回原班级**:不新建目录,课评内容中注明实际时间即可
|
||||
|
||||
## 两种查找模式
|
||||
|
||||
老师仓库是独立的,不同场景需要不同的查找范围:
|
||||
|
||||
| 目的 | 查找范围 | 约束 |
|
||||
|------|---------|------|
|
||||
| 课评完成度统计 | 只查排课老师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
|
||||
└── ...
|
||||
```
|
||||
|
||||
每个索引文件:
|
||||
|
||||
```markdown
|
||||
# 刘毅潇
|
||||
|
||||
## 当前班级
|
||||
- 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 |
|
||||
```
|
||||
|
||||
### 更新方式
|
||||
|
||||
- **定时扫描**:每周执行课评整理时自动扫描所有仓库,更新索引
|
||||
- **增量更新**:只追加新发现的课评,不删除历史记录
|
||||
- **升班/换老师**:索引中追加新班级记录,"当前班级"取最新一条
|
||||
|
||||
### 索引的好处
|
||||
|
||||
1. **老师仓库不动**:写入逻辑完全不变
|
||||
2. **课评完成度统计**:读索引即可,不用全扫15个仓库
|
||||
3. **阶段总结**:直接读索引文件,按日期排序就完事
|
||||
4. **升班/换老师**:索引里追加记录,学生历史自然连续
|
||||
5. **统一视图**:教学督导和所有协作者都能看到学生完整课评轨迹
|
||||
Reference in New Issue
Block a user