更新K4课程README,清理旧的班级记忆文件,调整目录结构

This commit is contained in:
chengzi
2026-05-13 15:16:05 +08:00
parent 2e7878007c
commit fecb347740
538 changed files with 8105 additions and 57270 deletions

462
课评规范V1.0.md Normal file
View File

@@ -0,0 +1,462 @@
# ClassFeedback 课评管理规范
本文档规定了课评仓库的统一目录结构和文件格式,供所有老师参考使用。
---
## 一、目录结构规范
```
ClassFeedback/ # 仓库根目录命名ClassFeedback
├── .claude/ # Claude配置目录
│ ├── memory/ # 记忆数据目录
│ │ ├── class/ # 【班级数据 - 核心课评目录】
│ │ │ ├── 班级名称/ # 命名:课程+老师+时间CSP05克力周六1600
│ │ │ │ ├── summaries/ # 班级总结/群发文案
│ │ │ │ │ ├── YYYYMMDD_课程编号_班级反馈.md
│ │ │ │ │ └── YYYYMMDD_课程编号_微信群.txt
│ │ │ │ ├── 学生姓名1/ # 学生个人文件夹
│ │ │ │ │ ├── feedback/ # 【个人课评目录】
│ │ │ │ │ │ ├── YYYYMMDD_课程编号.md # 正常课评
│ │ │ │ │ │ ├── YYYYMMDD_课程编号(请假).md # 请假记录
│ │ │ │ │ │ ├── YYYYMMDD_课程编号(补课-去XX).md # 补课追踪
│ │ │ │ │ │ └── ...
│ │ │ │ │ ├── profile.md # 学生画像
│ │ │ │ │ └── summary/ # 阶段性总结
│ │ │ │ │ └── YYYY-MM_月度总结.md
│ │ │ │ ├── 学生姓名2/
│ │ │ │ │ └── ...
│ │ │ │ ├── 补课/ # 补课学生专用目录
│ │ │ │ │ └── 学生姓名/ # 来自其他班级的补课学生
│ │ │ │ │ └── feedback/
│ │ │ │ │ └── YYYYMMDD_课程编号.md
│ │ │ │ └── ...
│ │ │ └── 班级名称2/
│ │ │ └── ...
│ │ ├── lesson/ # 课程大纲资料(可选)
│ │ │ └── CSP01/
│ │ │ └── 课程大纲.md
│ │ └── oj/ # OJ数据分析可选
│ │ └── analysis/
│ └── skills/ # 技能脚本(可选)
└── README.md # 仓库说明
```
---
## 二、命名规范
### 2.1 课程编号统一规则
**班级文件夹中的课程编号必须与校宝排课系统中的 `class_name` 一致。**
校宝中的课程名格式为 `课程编号+中文描述`,如 `CSP01信息学奥赛01``AICODE03AI编程创新课03`。提取编号部分的规则:
| 校宝 class_name | 提取编号 | 说明 |
|-----------------|---------|------|
| CSP01信息学奥赛01 | **CSP01** | C++ 信息学奥赛班 |
| CSP02信息学奥赛02 | **CSP02** | |
| CSP05信息学奥赛05 | **CSP05** | |
| AICODE01代码编程入门课01 | **AICODE01** | AI 代码编程班 |
| AICODE02代码编程入门课02 | **AICODE02** | |
| AICODE03AI编程创新课03 | **AICODE03** | |
| AICODE04AI编程创新课04 | **AICODE04** | |
| AICODE06AI编程创新课06 | **AICODE06** | |
**统一要求**
1. **C++ 竞赛班统一用 `CSP`**:不得使用 `C++``信奥``信息学` 等作为课程前缀
2. **AI 编程班统一用 `AICODE`**:不得使用 `AI``AI03``AI01` 等缩写,必须是完整的 `AICODE01``AICODE03`
3. **编号必须与校宝一致**:校宝叫 CSP01 就是 CSP01叫 AICODE03 就是 AICODE03
**当前需整改的目录**
| 老师 | 当前目录名 | 应改为 |
|------|-----------|--------|
| 杰森 | AI01杰森周六1045 | AICODE01杰森周六1045 |
| 杰森 | AI02杰森周日1400 | AICODE02杰森周日1400 |
| 橙子 | AI03橙子周五1700 | AICODE03橙子周五1700 |
| 橙子 | AI03橙子周六1900 | AICODE03橙子周六1900 |
| 橙子 | AI03橙子周日0845 | AICODE03橙子周日0845 |
| 橙子 | AI03橙子周日1400 | AICODE03橙子周日1400 |
| 欧文 | AI02欧文周三1900 | AICODE02欧文周三1900 |
| 东东 | AI01东东周五1630 | AICODE01东东周五1630 |
| 东东 | AI01东东周日1900 | AICODE01东东周日1900 |
| 东东 | AI东东周六0845 | AICODE01东东周六0845 |
### 2.2 文件夹命名
| 层级 | 命名规则 | 示例 |
|------|---------|------|
| 班级文件夹 | 课程编号+老师+星期时间 | `CSP05克力周六1600``AICODE03东东周五1630``K2菠萝周六1045` |
| 学生文件夹 | 学生姓名 | `黄振轩``刘浩宇``李梓宁` |
| 课评子目录 | 固定名称 | `feedback`(课评)、`summary`(总结)、`补课`(补课学生) |
### 2.3 文件命名
| 类型 | 命名规则 | 示例 |
|------|---------|------|
| 单次课评 | `YYYYMMDD_课程编号-课次.md` | `20260418_CSP05-07.md``20260330_AICODE03-02.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` |
> **注意**:课程编号中的 `AI` 统一写 `AICODE`,如 `AICODE03-05` 而非 `AI03-05`。
### 2.4 日期规范(关键)
**课评文件名中的日期 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` | 应取校宝日期而非提交日期 |
**常见错误**
- 用课评**编写/提交日期**而非**实际上课日期**
- 周六上课但文件标周日日期
- 用课次所属周的周一/周日日期
**正确做法**:上完课当天就写完课评,文件名日期取校宝排课日期。
---
## 三、课评文件内容格式
### 3.1 标准课评模板
```markdown
# 课程名称CSP05-07 初等数论2
**授课日期**: 2026-04-18
**课评内容**
学生今天课堂非常认真三类作业全部完成。但课堂练习调试12次2次运行错误、3次答案错误、2次编译错误说明边界条件和代码规范性还需加强。建议每道题重新手写框架减少复用旧代码这样基础更扎实。
课后整理埃氏筛法模板,记录今天的坑点。
---
**老师签名XXX**
```
### 3.2 课评汇总模板(按学生汇总)
```markdown
# 学生姓名 - 课评汇总
---
## 第1节课课程名2026-03-07
家长好本周学习的内容是《XXX》
1. 知识点1
2. 知识点2
学生今天表现...(详细课评内容)
—— 穹狼科创 XXX老师
---
## 第2节课课程名2026-03-14
...
---
```
### 3.3 班级群发文案模板
```markdown
# CSP05-07 班级反馈2026-04-18
各位家长好本周CSP05-07课程已结束。
## 课程内容
- 初等数论2埃氏筛法、质因数分解
## 班级整体情况
- 课堂练习完成率90%
- 课后作业提交率85%
## 共性问题
1. 边界条件处理不够严谨
2. 代码规范性需要加强
请各位家长督促孩子完成课后作业,整理本周错题。
—— 克力老师
```
---
## 四、课评完成率统计规则
课评完成率由自动化系统按以下规则计算,请确保目录和文件符合规范以便被正确统计。
### 4.1 数据来源
- **出勤基准**:校宝 API 排课数据(`teaching-schedule`),以校宝为准
- **统计范围**:仅统计 CSP 和 AICODE 班级
- **时间范围**:默认上周三到本周二
### 4.2 出勤状态判定
| 校宝 attendance_status | 判定 | 课评要求 |
|----------------------|------|---------|
| 含 `到课`/`出勤`/`签到` | **到课** | 必须有课评文件 |
| 含 `请假` | **请假** | 当天不要求课评 |
| 其他 | **缺勤** | 不要求 |
- 补课学生(`student_identity = 补课`)按到课处理,必须有课评
- 试听学生(`student_identity = 试听`)按到课处理,必须有课评
### 4.3 课评文件查找规则(三级查找)
对校宝中每个到课学生,系统按以下优先级查找课评文件:
```
校宝记录学生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/
找到 → 匹配成功 ✓
未找到 → 标记为「缺失」✗
```
### 4.4 日期匹配
**严格匹配**:文件名中的 `YYYYMMDD` 必须与校宝 `teaching_date` 完全一致。不一致的课评不计入完成率,会被标注为「日期偏移」。
### 4.5 学生名匹配
- 去除空格后比较
- 支持包含匹配(如仓库 `梁铭轩` 可匹配校宝 `梁铭轩(大)`
- 去除后缀标记如 `(am)``1` 等再尝试
### 4.6 完成率计算
```
应发总数 = 到课学生数(本班到课 + 补课到课 + 试听到课)
已完成 = 按三级查找规则匹配到的学生数
完成率 = 已完成 / 应发总数 × 100%
```
请假学生**不纳入**应发总数。如果请假学生后续在其他课堂补课(校宝中以补课身份出现),按到课学生处理。
### 4.7 上课后必须完成
- [ ] 为每位**到课**学生编写个人课评(保存到 `feedback/YYYYMMDD_课程编号.md`
- [ ] 日期取校宝排课日期,不是编写日期
- [ ] 补课学生也必须有课评(放在补课班级的 `补课/学生名/feedback/` 下)
- [ ] 编写班级总结(保存到 `summaries/YYYYMMDD_课程编号_班级反馈.md`
---
## 五、各老师当前格式对照
| 老师 | 当前路径 | 建议调整为 |
|------|---------|-----------|
| 19163520381 | `.claude/memory/student/班级/学生/课评反馈/课评汇总.md` | `.claude/memory/class/班级/学生/feedback/YYYYMMDD_课程.md` |
| 13711179294 | `ClassFeedback/学生姓名.md` | `.claude/memory/class/班级/学生/feedback/YYYYMMDD_课程.md` |
| 13202777474 | `reviews/班级/学生日期.md` | `.claude/memory/class/班级/学生/feedback/YYYYMMDD_课程.md` |
| 13974188170 | `.claude/memory/student/班级/学生/课评/第X周课程.md` | `.claude/memory/class/班级/学生/feedback/YYYYMMDD_课程.md` |
| 18576526757 | `.claude/memory/student/班级/学生/课评反馈/课评汇总-2026春季.md` | 保持汇总格式,增加单次课评文件 |
| **17788733242** | **`.claude/memory/class/班级/学生/feedback/YYYYMMDD_课程.md`** | **✅ 标准格式** |
| 13108110172 | `.claude/student/班级/学生/历史课评.md` | `.claude/memory/class/班级/学生/feedback/YYYYMMDD_课程.md` |
### 非标准结构(无法自动统计课评率)
| 老师 | 当前结构 | 问题 |
|------|---------|------|
| 大橘 | `课堂记录/` | 课评不在 `.claude/memory/class/`,无法自动扫描 |
| 小Q | `memory/class-evaluation-summary/` | 按周汇总而非按次按学生,无法自动统计 |
| 南瓜 | `ClassFeedback/` | 全班课评模式,无个人课评文件 |
---
## 六、快速开始
### 6.1 新建班级
```bash
mkdir -p ".claude/memory/class/课程老师星期时间/学生姓名/feedback"
mkdir -p ".claude/memory/class/课程老师星期时间/学生姓名/summary"
mkdir -p ".claude/memory/class/课程老师星期时间/summaries"
```
### 6.2 创建课评文件
```bash
# 创建单次课评
touch ".claude/memory/class/班级/学生/feedback/$(date +%Y%m%d)_课程编号.md"
# 创建学生画像
touch ".claude/memory/class/班级/学生/profile.md"
```
---
## 七、注意事项
1. **日期格式统一**:使用 `YYYYMMDD` 格式(如 20260418**必须与校宝排课日期一致**
2. **课程编号规范**C++ 班用 `CSP`AI 班用 `AICODE`,与校宝保持一致,不得使用 `AI``C++` 等缩写
3. **文件名禁用字符**:避免使用 `/\:*?"<>|`
4. **中文命名**:学生姓名和班级名称使用中文,保持可读性
5. **及时提交**:每次上完课后当天完成课评并提交到 git确保文件日期与校宝排课日期一致
6. **补课必须记录**:补课学生的课评放在补课班级的 `补课/学生名/feedback/` 下,否则统计不到
7. **不要汇总代替单次**:课评必须按次按学生单独文件,不能只有汇总文件
---
## 八、考勤状态记录规范
### 8.1 三种状态
每次课后,每位学生必须有且仅有一条记录,对应三种状态:
| 状态 | 文件名格式 | 说明 |
|------|-----------|------|
| 正常上课 | `YYYYMMDD_课程编号.md` | 包含完整课评内容 |
| 请假 | `YYYYMMDD_课程编号(请假).md` | 简要记录请假原因 |
| 补课 | `YYYYMMDD_课程编号(补课-去班级名).md` | 记录去了哪个班补课 |
### 8.2 请假记录模板
文件名:`20260505_CSP05-10(请假).md`
```markdown
# 请假记录
**日期**: 2026-05-05
**课程**: CSP05-10
**学生**: 刘毅潇
**状态**: 请假
**原因**: (如有)
```
### 8.3 补课追踪(双向记录)
补课产生**两条**记录,分别在原班级和补课班级:
**场景**:洋芋老师的学生王五,到茄子老师的 AICODE03 班补课
**1) 原班级(洋芋老师)— 学生 feedback/ 下**
- 文件名:`20260510_AICODE06-03(补课-去AICODE03茄子周六1600).md`
- 内容:简要说明去哪补课
```markdown
# 补课记录
**日期**: 2026-05-10
**原课程**: AICODE06-03
**学生**: 王五
**状态**: 补课
**补课班级**: AICODE03茄子周六1600
**补课老师**: 茄子
```
**2) 补课班级(茄子老师)— 补课/学生名/feedback/ 下**
- 文件名:`20260510_AICODE03-05.md`
- 内容开头注明:`(补课,来自 AICODE06洋芋周日1400`,后续正常写课评
### 8.4 AI 读取逻辑
AI 扫描 `feedback/` 目录时,通过文件名后缀判断状态:
| 文件名匹配 | 判定 |
|-----------|------|
| `YYYYMMDD_课程编号.md` | 正常课评 |
| `YYYYMMDD_课程编号(请假).md` | 请假,无需课评 |
| `YYYYMMDD_课程编号(补课-去...).md` | 补课,课评在补课班级 |
---
## 九、课程大纲同步规范
### 9.1 大纲来源
课程大纲从两个独立仓库同步,**不提交到老师自己的仓库**
| 课程线 | 同步源 |
|--------|--------|
| CSP 课程 | `https://git.qonnwolf.com/17788733242/CSP2026` |
| AICODE 课程 | `https://git.qonnwolf.com/18675193675/AICODE2026` |
### 9.2 本地存放位置
```
.claude/memory/lesson/
├── CSP/ ← 从 CSP2026 仓库同步
│ ├── CSP01/
│ ├── CSP02/
│ └── ...
└── AICODE/ ← 从 AICODE2026 仓库同步
├── AICODE01/
├── AICODE03/
└── ...
```
### 9.3 同步方式
```bash
# 首次克隆到临时目录
git clone https://git.qonnwolf.com/17788733242/CSP2026 /tmp/CSP2026
git clone https://git.qonnwolf.com/18675193675/AICODE2026 /tmp/AICODE2026
# 复制大纲到 lesson 目录
cp -r /tmp/CSP2026/* .claude/memory/lesson/CSP/
cp -r /tmp/AICODE2026/* .claude/memory/lesson/AICODE/
# 后续更新:拉取后覆盖
cd /tmp/CSP2026 && git pull
cp -r /tmp/CSP2026/* .claude/memory/lesson/CSP/
```
### 9.4 .gitignore 配置
在老师的仓库 `.gitignore` 中添加,避免大纲被推送到远端:
```gitignore
# 课程大纲从独立仓库同步,不提交到本仓库
.claude/memory/lesson/
```
### 9.5 来源标记
`.claude/memory/lesson/` 下放置 `README.md` 记录来源:
```markdown
# 课程大纲
本目录从独立仓库同步,不提交到老师自己的远端仓库。
| 目录 | 来源仓库 |
|------|---------|
| CSP/ | https://git.qonnwolf.com/17788733242/CSP2026 |
| AICODE/ | https://git.qonnwolf.com/18675193675/AICODE2026 |
更新方式:执行"同步课程大纲"技能
```
---
*规范制定日期2026-04-21*
*最后更新2026-05-13*
*参考模板ClassFeedback_17788733242*