课评: 转出学生归档(王子墨/张立坤/黄俊博)+ 周四班级总结 + 新生章梓皓档案 + C++示例代码
This commit is contained in:
12
.pi/skills/class-feedback-report/repo-template/.env.example
Normal file
12
.pi/skills/class-feedback-report/repo-template/.env.example
Normal file
@@ -0,0 +1,12 @@
|
||||
# ===== 课评项目凭据配置 =====
|
||||
# 把本文件复制为 .env 后填写;.env 已被 .gitignore 排除,绝不提交到仓库。
|
||||
|
||||
# OJ 站点与账号(穹狼站)
|
||||
OJ_BASE_URL=https://oj.qonnwolf.com
|
||||
OJ_USERNAME=你的OJ用户名
|
||||
OJ_PASSWORD=你的OJ密码
|
||||
|
||||
# 课评仓库 ClassFeedback(git.qonnwolf.com → 设置 → 应用 → 访问令牌,勾选 repository 读写)
|
||||
GIT_USER=你的工号
|
||||
GIT_TOKEN=你的访问令牌
|
||||
GIT_REPO_URL=https://git.qonnwolf.com/你的工号/ClassFeedback
|
||||
13
.pi/skills/class-feedback-report/repo-template/.gitignore
vendored
Normal file
13
.pi/skills/class-feedback-report/repo-template/.gitignore
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
# 凭据与环境变量(绝不提交)
|
||||
.env
|
||||
|
||||
# 中间产物(抓取数据包)不入库
|
||||
digest*.json
|
||||
|
||||
# 家长版 PDF 只留老师本地,不入库
|
||||
*.pdf
|
||||
|
||||
# 系统杂项
|
||||
Thumbs.db
|
||||
.DS_Store
|
||||
desktop.ini
|
||||
39
.pi/skills/class-feedback-report/repo-template/AGENTS.md
Normal file
39
.pi/skills/class-feedback-report/repo-template/AGENTS.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# ClassFeedback 课评仓库 · AI 协作须知
|
||||
|
||||
> 任何 AI agent(Claude Code / ZCode / 其他)进入本仓库,**先读完本文件再动手**。
|
||||
|
||||
## 本仓库是什么
|
||||
|
||||
老师的课评与学员档案仓库:AI 按班组从 OJ 拉取提交数据,逐生生成课堂反馈报告
|
||||
(MD + HTML + PDF),并维护学生画像。
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
.claude/memory/class/<班组>/summaries/ 班级汇总 / 群发文案
|
||||
.claude/memory/class/<班组>/补课/<学生名>/feedback/ 外班来补课学生
|
||||
.claude/memory/class/<班组>/<学生名>/ 学生课评(家长版报告 + feedback/ 内部正本 + profile.md 画像)
|
||||
skills/class-feedback-report/ 课评技能(AI 按 SKILL.md 执行)
|
||||
docs/ 机构规范文档
|
||||
```
|
||||
|
||||
> 全部课评统一存 `.claude/memory/class/`,按「班组 → 学生 → feedback」组织;
|
||||
> 学生画像 `profile.md` 随班级学生目录存放,不设独立 Students/ 根目录。
|
||||
|
||||
## 老师说这些话时该做什么
|
||||
|
||||
- 「引导我进行操作」「帮我处理本项目」→ 按
|
||||
`skills/class-feedback-report/SKILL.md` 的**操作引导模式**九步清单执行
|
||||
(仓库准备 → 环境 → 站点/账号 → 班级/花名册 → 生成 → git 同步 → 交付)。
|
||||
- 「整理 XX 班的课堂反馈」「给某某出反馈报告」→ 同上,跳过已确认的步骤。
|
||||
|
||||
## 铁律
|
||||
|
||||
1. 家长版报告是**草稿**,教师审核措辞后才能发学生/家长;只写学习习惯,不写人身评价。
|
||||
2. **先 OJ 拉班组花名册给老师确认,再逐生分析。**
|
||||
3. 每个学生每次课五件事缺一不可:家长版报告 md/html、PDF(本地)、内部课评正本
|
||||
`feedback/YYYYMMDD_课程编号-课次.md`(校宝核查口径)、画像更新 `<学生名>/profile.md`、
|
||||
班级汇总 `summaries/`。
|
||||
4. `*.pdf` 不入库(.gitignore 已排除);生成后 `git add` + commit + push。
|
||||
5. 客观题不写提交历史,直接给错题 + 选项 + 考点分析;学生答案轨迹只与本人生成的单子呈现。
|
||||
6. 仓库名统一 ClassFeedback;远端在 git.qonnwolf.com。
|
||||
39
.pi/skills/class-feedback-report/repo-template/CLAUDE.md
Normal file
39
.pi/skills/class-feedback-report/repo-template/CLAUDE.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# ClassFeedback 课评仓库 · AI 协作须知
|
||||
|
||||
> 任何 AI agent(Claude Code / ZCode / 其他)进入本仓库,**先读完本文件再动手**。
|
||||
|
||||
## 本仓库是什么
|
||||
|
||||
老师的课评与学员档案仓库:AI 按班组从 OJ 拉取提交数据,逐生生成课堂反馈报告
|
||||
(MD + HTML + PDF),并维护学生画像。
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
.claude/memory/class/<班组>/summaries/ 班级汇总 / 群发文案
|
||||
.claude/memory/class/<班组>/补课/<学生名>/feedback/ 外班来补课学生
|
||||
.claude/memory/class/<班组>/<学生名>/ 学生课评(家长版报告 + feedback/ 内部正本 + profile.md 画像)
|
||||
skills/class-feedback-report/ 课评技能(AI 按 SKILL.md 执行)
|
||||
docs/ 机构规范文档
|
||||
```
|
||||
|
||||
> 全部课评统一存 `.claude/memory/class/`,按「班组 → 学生 → feedback」组织;
|
||||
> 学生画像 `profile.md` 随班级学生目录存放,不设独立 Students/ 根目录。
|
||||
|
||||
## 老师说这些话时该做什么
|
||||
|
||||
- 「引导我进行操作」「帮我处理本项目」→ 按
|
||||
`skills/class-feedback-report/SKILL.md` 的**操作引导模式**九步清单执行
|
||||
(仓库准备 → 环境 → 站点/账号 → 班级/花名册 → 生成 → git 同步 → 交付)。
|
||||
- 「整理 XX 班的课堂反馈」「给某某出反馈报告」→ 同上,跳过已确认的步骤。
|
||||
|
||||
## 铁律
|
||||
|
||||
1. 家长版报告是**草稿**,教师审核措辞后才能发学生/家长;只写学习习惯,不写人身评价。
|
||||
2. **先 OJ 拉班组花名册给老师确认,再逐生分析。**
|
||||
3. 每个学生每次课五件事缺一不可:家长版报告 md/html、PDF(本地)、内部课评正本
|
||||
`feedback/YYYYMMDD_课程编号-课次.md`(校宝核查口径)、画像更新 `<学生名>/profile.md`、
|
||||
班级汇总 `summaries/`。
|
||||
4. `*.pdf` 不入库(.gitignore 已排除);生成后 `git add` + commit + push。
|
||||
5. 客观题不写提交历史,直接给错题 + 选项 + 考点分析;学生答案轨迹只与本人生成的单子呈现。
|
||||
6. 仓库名统一 ClassFeedback;远端在 git.qonnwolf.com。
|
||||
@@ -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. **统一视图**:教学督导和所有协作者都能看到学生完整课评轨迹
|
||||
@@ -0,0 +1,397 @@
|
||||
---
|
||||
name: keping-dir-standardize
|
||||
description: 将课评目录迁移到标准结构。当用户说"规范目录"、"整理目录"、"目录规范化"、"初始化目录"、"初始化项目"时触发。自动识别当前目录范式,创建标准 .claude/memory/class/ 结构,迁移现有数据(不删除原文件),补建缺失目录,配置课程大纲同步。如果是全新仓库,参考标准仓库创建项目。
|
||||
---
|
||||
|
||||
# 课评目录规范化 Skill
|
||||
|
||||
## 功能概述
|
||||
|
||||
将老师仓库中的课评数据迁移到统一标准目录结构。
|
||||
- 自动识别 4 种现有目录范式
|
||||
- 创建标准 `.claude/memory/class/` 结构
|
||||
- 迁移现有课评和画像文件(移动,不删除)
|
||||
- 补建缺失的 `feedback/`、`profile.md`、`summary/`、`补课/` 目录
|
||||
- 配置课程大纲同步(从独立仓库同步,不提交到本仓库)
|
||||
- 支持"全新项目"场景(参考标准仓库创建)
|
||||
- 生成迁移报告
|
||||
|
||||
## 触发条件
|
||||
|
||||
用户说出以下任意表达时触发:
|
||||
- "规范目录"
|
||||
- "整理目录"
|
||||
- "目录规范化"
|
||||
- "初始化目录"
|
||||
- "初始化项目"
|
||||
- "标准化目录"
|
||||
- "迁移目录"
|
||||
|
||||
## 安全原则
|
||||
|
||||
1. **绝不删除文件** — 只移动(mv)到新位置,原位置的文件迁移后不再保留副本
|
||||
2. **绝不修改文件内容** — 只改变文件路径和文件名
|
||||
3. **先报告再执行** — 必须先向用户展示迁移计划,确认后再执行
|
||||
4. **遇到不确定的情况就停下问** — 不要猜测
|
||||
|
||||
## 参考仓库(标准范例)
|
||||
|
||||
**克力老师的仓库**是最完整的标准范例:
|
||||
`https://git.qonnwolf.com/keli/ClassFeedback`
|
||||
|
||||
新老师或需要补充项目的老师,克隆这个仓库来参考目录结构和配置,但**不是照抄**——只参照结构,数据用自己的。
|
||||
|
||||
## 目标结构
|
||||
|
||||
```
|
||||
.claude/
|
||||
├── memory/
|
||||
│ ├── class/ # 【核心 - 所有班级课评数据】
|
||||
│ │ ├── CSP05克力周六1600/ # 班级名 = 课程编号+老师+星期+时间
|
||||
│ │ │ ├── summaries/ # 班级总结/群发文案
|
||||
│ │ │ │ ├── YYYYMMDD_CSP05-07_班级反馈.md
|
||||
│ │ │ │ └── YYYYMMDD_CSP05-07_微信群.txt
|
||||
│ │ │ ├── 张三/ # 本班学生
|
||||
│ │ │ │ ├── feedback/ # 个人课评目录
|
||||
│ │ │ │ │ ├── YYYYMMDD_CSP05-07.md # 正常课评
|
||||
│ │ │ │ │ ├── YYYYMMDD_CSP05-07(请假).md # 请假记录
|
||||
│ │ │ │ │ ├── YYYYMMDD_CSP05-07(补课-去AI03茄子周六1900).md # 补课追踪
|
||||
│ │ │ │ │ └── ...
|
||||
│ │ │ │ ├── profile.md # 学生画像
|
||||
│ │ │ │ └── summary/ # 阶段性总结
|
||||
│ │ │ │ └── 2026-05_月度总结.md
|
||||
│ │ │ ├── 李四/
|
||||
│ │ │ │ └── ...
|
||||
│ │ │ └── 补课/ # 补课学生专用目录
|
||||
│ │ │ └── 王五/ # 来自其他班级的补课学生
|
||||
│ │ │ └── feedback/
|
||||
│ │ │ └── YYYYMMDD_CSP05-07.md
|
||||
│ │ ├── AICODE03菠萝周六1600/
|
||||
│ │ │ └── ...(结构同上)
|
||||
│ │ ├── SPIKE02小Q周六1400/
|
||||
│ │ │ └── ...(结构同上)
|
||||
│ │ └── KITTEN04洋芋周六1600/
|
||||
│ │ └── ...(结构同上)
|
||||
│ ├── lesson/ # 课程大纲(从独立仓库同步,不提交)
|
||||
│ │ ├── README.md
|
||||
│ │ ├── CSP/ ← 信息学奥赛课
|
||||
│ │ │ ├── CSP01/
|
||||
│ │ │ └── ...
|
||||
│ │ ├── AICODE/ ← AI人工智能课
|
||||
│ │ │ ├── AICODE01/
|
||||
│ │ │ └── ...
|
||||
│ │ ├── SPIKE/ ← 乐高搭建课
|
||||
│ │ ├── KITTEN/ ← 图形化编程课
|
||||
│ │ ├── VEXIQ/ ← VEX机器人课
|
||||
│ │ └── GESP/ ← 竞赛项目课
|
||||
│ └── oj/ # OJ数据分析(仅 CSP 班级,可选)
|
||||
│ └── analysis/
|
||||
└── skills/ # 技能脚本(可选)
|
||||
```
|
||||
|
||||
### 班级命名规则
|
||||
|
||||
格式:`课程编号+老师+星期+时间`
|
||||
|
||||
| 类目 | 前缀 | 示例班级名 |
|
||||
|------|------|-----------|
|
||||
| 信息学奥赛课 | CSP | `CSP05克力周六1600`、`CSP01六六周六1045` |
|
||||
| AI人工智能课 | AICODE、AIMAKE | `AICODE03菠萝周六1600`、`AIMAKE02东东周五1630` |
|
||||
| 乐高搭建课 | SPIKE、WEDO、FAXIAN 等 | `SPIKE02菠萝周六1400`、`WEDO01小Q周六1030` |
|
||||
| 图形化编程课 | KITTEN、SCRATCH | `KITTEN04洋芋周六1600`、`SCRATCH03橙子周五1900` |
|
||||
| VEX机器人课 | VEXIQ、VEXGO 等 | `VEXIQ01菠萝周六1400` |
|
||||
| 竞赛项目课 | GESP、ENJOYAI 等 | `GESP03克力周日0900`、`ENJOYAI01东东周六1400` |
|
||||
|
||||
### 课程类目与编号前缀
|
||||
|
||||
用于从课程编号前缀识别课程类目,规范班级命名和分类:
|
||||
|
||||
| 类目 | 课程前缀(不含数字) |
|
||||
|------|---------------------|
|
||||
| 乐高搭建课 | YISHI、HUOCHE、MATATA、FAXIAN、FAMING、WEDO、ROCKET、SPIKE |
|
||||
| 图形化编程课 | KITTEN、SCRATCH |
|
||||
| VEX机器人课 | VEXGO、VEXPRE、VEXIQ、V5RC |
|
||||
| AI人工智能课 | AICODE、AIMAKE |
|
||||
| 信息学奥赛课 | CSP |
|
||||
| 竞赛项目课 | ENJOYAI、BOTBALL、ROBORAVE、GOC、GESP、CSP-J、NCT、CSP-S、INFOR、LABOR、FSHH |
|
||||
| 杂项类目课 | XITI、CUSTOM、FESTIVAL |
|
||||
|
||||
### 考勤状态说明
|
||||
|
||||
每次课后,每位学生必须有且仅有一条 feedback 文件:
|
||||
|
||||
| 状态 | 文件名 | 说明 |
|
||||
|------|--------|------|
|
||||
| 正常 | `YYYYMMDD_课程编号.md` | 完整课评 |
|
||||
| 请假 | `YYYYMMDD_课程编号(请假).md` | 简要记录 |
|
||||
| 补课 | `YYYYMMDD_课程编号(补课).md` | 记录补课 |
|
||||
|
||||
### 补课双向追踪
|
||||
|
||||
**1) 接收补课(外班学生来本班)**:
|
||||
- 存放在 `补课/学生名/feedback/YYYYMMDD_课程编号.md`
|
||||
- 不建 `profile.md` 和 `summary/`
|
||||
- 课评开头注明来源:`(补课,来自 CSP05克力周六1600)`
|
||||
|
||||
**2) 外出补课(本班学生去别班)**:
|
||||
- 存放在学生自己的 `feedback/YYYYMMDD_课程编号(补课).md`
|
||||
- AI 读取后知道该学生当天的课评在补课班级
|
||||
|
||||
### 课程大纲同步
|
||||
|
||||
`.claude/memory/lesson/` 从独立仓库同步,**不提交到老师自己的仓库**:
|
||||
|
||||
| 目录 | 类目 | 来源 |
|
||||
|------|------|------|
|
||||
| `lesson/CSP/` | 信息学奥赛课 | `https://git.qonnwolf.com/keli/CSP2026` |
|
||||
| `lesson/AICODE/` | AI人工智能课 | `https://git.qonnwolf.com/keli/AICODE2026` |
|
||||
| `lesson/GESP/` | 竞赛项目课 | 按实际仓库配置 |
|
||||
| 其他前缀目录 | 对应类目 | 按实际仓库配置 |
|
||||
|
||||
需在 `.gitignore` 中添加:`.claude/memory/lesson/`
|
||||
|
||||
## 执行流程
|
||||
|
||||
### 场景判断
|
||||
|
||||
先判断属于哪种场景:
|
||||
|
||||
| 场景 | 判断条件 | 处理方式 |
|
||||
|------|---------|---------|
|
||||
| **全新项目** | 没有 `.claude/memory/class/` 或任何课评数据 | 参考标准仓库创建 |
|
||||
| **已有项目** | 有课评数据但结构不标准 | 识别范式后迁移 |
|
||||
|
||||
### ===== 场景一:全新项目 =====
|
||||
|
||||
适用于:刚加入协作的老师,或者还没有建立 ClassFeedback 仓库的老师。
|
||||
|
||||
#### 第 1 步:确认老师信息
|
||||
|
||||
向用户询问:
|
||||
1. 老师昵称/真名
|
||||
2. 手机号(用于远端仓库地址)
|
||||
3. 负责的班级列表(课程编号+上课时间)
|
||||
4. 每个班级的学生名单
|
||||
|
||||
#### 第 2 步:参考标准仓库创建结构
|
||||
|
||||
克隆标准仓库作为参考:
|
||||
```bash
|
||||
git clone https://git.qonnwolf.com/keli/ClassFeedback /tmp/standard-ref
|
||||
```
|
||||
|
||||
**从标准仓库中参考的部分**(只参考结构,不复制数据):
|
||||
- `.claude/memory/class/` 的目录组织方式
|
||||
- `.claude/memory/class/班级/学生/feedback/` + `profile.md` + `summary/`
|
||||
- `.claude/memory/class/班级/summaries/` 班级总结目录
|
||||
- `.claude/memory/class/班级/补课/` 补课目录
|
||||
- `.claude/memory/lesson/README.md` 大纲来源说明
|
||||
- `.gitignore` 中的忽略规则
|
||||
|
||||
**不需要参考的部分**(每个老师自己维护):
|
||||
- `.claude/memory/class/` 下的实际学生数据
|
||||
- `.claude/memory/oj/` OJ 数据(仅 CSP 老师需要)
|
||||
- `.claude/rules/` 规则文件(各老师可能有不同风格)
|
||||
- `.claude/skills/` 技能文件
|
||||
|
||||
#### 第 3 步:创建目录结构
|
||||
|
||||
```bash
|
||||
# 为每个班级创建结构(示例覆盖不同课程类目)
|
||||
for class in "CSP05克力周六1600" "AICODE03菠萝周六1600" "SPIKE02小Q周六1400" "KITTEN04洋芋周六1600"; do
|
||||
mkdir -p ".claude/memory/class/${class}/summaries"
|
||||
mkdir -p ".claude/memory/class/${class}/补课"
|
||||
|
||||
# 为每个学生创建结构
|
||||
for student in 张三 李四 王五; do
|
||||
mkdir -p ".claude/memory/class/${class}/${student}/feedback"
|
||||
mkdir -p ".claude/memory/class/${class}/${student}/summary"
|
||||
# 创建画像模板
|
||||
cp profile_template.md ".claude/memory/class/${class}/${student}/profile.md"
|
||||
done
|
||||
done
|
||||
|
||||
# 创建课程大纲目录(按实际需要的课程前缀创建)
|
||||
mkdir -p ".claude/memory/lesson/CSP"
|
||||
mkdir -p ".claude/memory/lesson/AICODE"
|
||||
mkdir -p ".claude/memory/lesson/GESP"
|
||||
# 其他课程前缀按需创建:SPIKE、KITTEN、VEXIQ 等
|
||||
```
|
||||
|
||||
#### 第 4 步:创建基础文件
|
||||
|
||||
1. **创建 `.gitignore`**:
|
||||
```gitignore
|
||||
.claude/
|
||||
!.claude/memory/
|
||||
!.claude/memory/class/
|
||||
!.claude/memory/lesson/README.md
|
||||
.claude/memory/lesson/*/
|
||||
```
|
||||
|
||||
2. **创建 lesson/README.md**(记录大纲来源)
|
||||
|
||||
3. **同步课程大纲**(如果网络可用)
|
||||
|
||||
4. **创建 CLAUDE.md**(可选,记录本仓库的基本信息)
|
||||
|
||||
### ===== 场景二:已有项目迁移 =====
|
||||
|
||||
#### 第 1 步:识别当前目录范式
|
||||
|
||||
扫描当前仓库,判断属于哪种范式:
|
||||
|
||||
| 范式 | 特征 |
|
||||
|------|------|
|
||||
| **A: 标准型** | `.claude/memory/class/` 下有班级目录 |
|
||||
| **B: 三件套型** | `memory/student/` 或 `memory/学生/`,每学生"画像+素材+历史课评" |
|
||||
| **C: 分离式** | 课评在 `.claude/课评/`,画像在 `.claude/memory/用户画像/` |
|
||||
| **D: 散落型** | `课堂记录/`、`ClassFeedback/` 或根目录级 |
|
||||
|
||||
**识别方法**(按优先级检测):
|
||||
1. 存在 `.claude/memory/class/` → 范式 A
|
||||
2. 存在 `memory/student/` 或 `memory/学生/` → 范式 B
|
||||
3. 存在 `.claude/课评/` → 范式 C
|
||||
4. 存在 `课堂记录/` 或 `ClassFeedback/` → 范式 D
|
||||
5. 以上都不存在 → 按场景一(全新项目)处理
|
||||
|
||||
#### 第 2 步:收集班级和学生信息
|
||||
|
||||
**从目录结构中提取**:
|
||||
- 扫描现有目录,列出所有班级名和学生名
|
||||
|
||||
**从 CLAUDE.md 或 README.md 补充**:
|
||||
- 读取本仓库的 CLAUDE.md,查找班级/课程信息
|
||||
|
||||
**与用户确认**:
|
||||
- 如果班级名缺少"星期+时间"(如只有 `AICODE03班`),询问用户补全
|
||||
- 格式参考:`CSP05克力周六1600`
|
||||
|
||||
#### 第 3 步:生成迁移计划
|
||||
|
||||
向用户展示迁移计划,包含:
|
||||
1. 范式识别结果
|
||||
2. 将创建的目录结构预览
|
||||
3. 文件迁移清单(原路径 → 新路径)
|
||||
4. 不迁移的文件(保留原位)
|
||||
|
||||
**必须等用户确认后再执行。**
|
||||
|
||||
#### 第 4 步:执行迁移
|
||||
|
||||
用户确认后,按计划执行:
|
||||
|
||||
**范式 A**(已接近标准,微调即可):
|
||||
- 重命名班级目录(如果名称不规范)
|
||||
- 确保每个学生有 feedback/、profile.md、summary/
|
||||
- 创建 summaries/ 和 补课/ 目录
|
||||
|
||||
**范式 B**(三件套型):
|
||||
- 创建标准 `.claude/memory/class/` 结构
|
||||
- `用户画像.md` → `profile.md`
|
||||
- `历史课评记录.md` → `summary/历史课评记录.md`
|
||||
- `成长素材.md` → `summary/成长素材.md`
|
||||
- 单次课程记录 → `feedback/YYYYMMDD_课程编号.md`
|
||||
|
||||
**范式 C**(分离式):
|
||||
- 创建标准结构
|
||||
- 从集中画像目录迁移到各班级下
|
||||
- 课评文件迁移到 feedback/
|
||||
|
||||
**范式 D**(散落型):
|
||||
- 创建标准结构
|
||||
- 全班课评汇总 → `summaries/`
|
||||
- 从校宝 API 或人员名单获取学生列表,创建个人目录
|
||||
|
||||
#### 第 5 步:补建缺失内容
|
||||
|
||||
1. **profile.md 模板** — 对没有画像的学生创建空模板
|
||||
2. **补课目录** — 每个班级下创建 `补课/`
|
||||
3. **summaries 目录** — 每个班级下确保有 `summaries/`
|
||||
|
||||
#### 第 6 步:配置课程大纲同步
|
||||
|
||||
1. 创建 `lesson/` 目录和子目录
|
||||
2. 创建 `lesson/README.md`(记录来源仓库)
|
||||
3. 更新 `.gitignore`,添加 `.claude/memory/lesson/*/`(忽略所有课程大纲子目录)
|
||||
4. 如果网络可用,克隆并同步大纲
|
||||
|
||||
#### 第 7 步:更新 CLAUDE.md
|
||||
|
||||
更新仓库的 CLAUDE.md(如果存在):
|
||||
- 更新目录结构说明
|
||||
- 添加课程大纲同步说明
|
||||
- 添加考勤状态记录说明(请假/补课)
|
||||
|
||||
#### 第 8 步:生成迁移报告
|
||||
|
||||
输出迁移报告,包含:
|
||||
- 仓库信息(老师、范式变化)
|
||||
- 迁移统计(班级数、学生数、文件数)
|
||||
- 班级结构表
|
||||
- 后续建议
|
||||
|
||||
## profile.md 空模板
|
||||
|
||||
```markdown
|
||||
# {学生姓名} - 画像
|
||||
|
||||
## 基本信息
|
||||
- 班级:{班级名}
|
||||
- 入班时间:
|
||||
- 年龄/年级:
|
||||
|
||||
## 性格特点
|
||||
(待观察填写)
|
||||
|
||||
## 学习风格
|
||||
(待观察填写)
|
||||
|
||||
## 课堂表现
|
||||
(待观察填写)
|
||||
|
||||
## 编程能力
|
||||
- 理解力:
|
||||
- 动手能力:
|
||||
- 创造力:
|
||||
- 调试能力:
|
||||
|
||||
## 家长沟通
|
||||
(待记录)
|
||||
```
|
||||
|
||||
## 请假记录模板
|
||||
|
||||
```markdown
|
||||
# 请假记录
|
||||
|
||||
**日期**: {YYYY-MM-DD}
|
||||
**课程**: {课程编号}
|
||||
**学生**: {学生姓名}
|
||||
**状态**: 请假
|
||||
**原因**: (如有)
|
||||
```
|
||||
|
||||
## 补课追踪模板(原班级侧)
|
||||
|
||||
```markdown
|
||||
# 补课记录
|
||||
|
||||
**日期**: {YYYY-MM-DD}
|
||||
**原课程**: {原课程编号}
|
||||
**学生**: {学生姓名}
|
||||
**状态**: 补课
|
||||
**补课班级**: {目标班级名}
|
||||
**补课老师**: {目标老师}
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **处理所有课程类型** — 按课程类目表覆盖全部前缀(乐高搭建、图形化编程、VEX机器人、AI人工智能、信息学奥赛、竞赛项目、杂项),全部统一规范
|
||||
2. **CSP 特殊处理** — CSP 班级可能有 `oj/` 数据目录,保持不动
|
||||
3. **文件名中的课程编号** — 统一用 `课程编号-课次` 格式(如 `CSP05-07`、`AICODE03-02`、`SPIKE02-05`、`KITTEN04-03`)
|
||||
4. **补课学生** — 在补课班级只有 feedback/,不建 profile.md 和 summary/
|
||||
5. **全班课评** — 范式 D 的全班课评放到 summaries/ 下,不强行拆分为个人课评
|
||||
6. **不确定就问** — 如果班级时间信息缺失、学生归属不明,停下来问用户
|
||||
7. **不碰 .claude/rules/ 和 .claude/skills/** — 这些是配置文件,不在迁移范围内
|
||||
8. **lesson 不提交** — 课程大纲目录加入 .gitignore,大纲从独立仓库同步
|
||||
Reference in New Issue
Block a user