Files
ClassFeedback/.pi/skills/class-feedback-report/repo-template/docs/课评目录规范化1.0.md

15 KiB
Raw Blame History

name, description
name description
keping-dir-standardize 将课评目录迁移到标准结构。当用户说"规范目录"、"整理目录"、"目录规范化"、"初始化目录"、"初始化项目"时触发。自动识别当前目录范式,创建标准 .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 步:参考标准仓库创建结构

克隆标准仓库作为参考:

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 步:创建目录结构

# 为每个班级创建结构(示例覆盖不同课程类目)
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:

    .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 空模板

# {学生姓名} - 画像

## 基本信息
- 班级:{班级名}
- 入班时间:
- 年龄/年级:

## 性格特点
(待观察填写)

## 学习风格
(待观察填写)

## 课堂表现
(待观察填写)

## 编程能力
- 理解力:
- 动手能力:
- 创造力:
- 调试能力:

## 家长沟通
(待记录)

请假记录模板

# 请假记录

**日期**: {YYYY-MM-DD}
**课程**: {课程编号}
**学生**: {学生姓名}
**状态**: 请假
**原因**: (如有)

补课追踪模板(原班级侧)

# 补课记录

**日期**: {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,大纲从独立仓库同步