Files
ClassFeedback/.claude/rules/20-workflow.md
qiuyan 079a09d743 规则精简合并 v3.2 + 项目结构整理
- 将20+个独立规则合并为9个核心规则(00/10/15/20/21/22/30/50/51)
- 旧规则移入90-archive并标注已合并,请勿直接引用
- 拆分新增:21-shorthand.md(速记符号)、22-student-mgmt.md(补课/新学生/转正)
- 升级keping-advanced skill配置:v2.1 → v2.2(自动双轨保存、三段式结构、字数弹性180-350)
- 删除旧skill文件(keping.json、速查卡、使用指南)和CHANGELOG.md
- 删除各周多余的独立出勤统计文件(出勤已嵌入班级汇总)
- SPIKE02班级文件夹名称规范化(去除特殊字符)
- 将学生模板文件移入memory/student/模板/子目录
- 将fix_config.py移入src/,删除根目录test123.txt测试文件

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-09 20:45:29 +08:00

21 KiB
Raw Blame History

工作流程规则:输入格式、批量生成、存储与特殊处理

合并文件:快捷输入格式 + 批量课评生成 + 新学生/补课处理 + 速记符号 + 快速入门 版本v3.2(拆分版)| 更新日期2026-05-05

v3.2 变更

  • 速记符号系统拆分至 21-shorthand.md
  • 补课/新学生/转正规则拆分至 22-student-mgmt.md
  • 修复第10节重复子章节原10.3-10.7出现两次)

一、快速入门30秒上手

1.1 三步完成课评

第1步指定班级一次即可
/课评 班级:发现世界-周四19点

第2步输入学生表现
乔乔观望5分钟→主动搭3层→自己调整开心比上周进步
昊昊慢热搭3层反复调整稳定

第3步AI自动生成并保存
AI生成 → 自动双轨保存 → 完成!

完成!课评已自动保存到班级汇总和个人档案,无需确认。

1.2 核心理念

  • 有姓名 → AI知道是谁
  • 有行为 → AI知道做了什么
  • 其他随意 → AI自动补充

支持:口语化、碎片化、无序化、语音转文字。


二、输入格式

2.1 自然语言输入(推荐)

方式1极简一句话

乔乔今天开始不敢碰,后来主动搭了三层,球卡住自己调高度,挺稳定的,比上周主动多了

方式2关键词速记

乔乔gj5→zd3→zt ↑++
昊昊慢热→zd3→反复调 →

2.2 批量输入格式

标准列表式(推荐)

课程DISC-007
班级:发现世界-周四19点
日期4月16日

1. 乔乔gj5→zd3→zt ↑++
2. 昊昊慢热→zd3→反复调 →
3. 张小明[体验]搭了3层开心
4. 李小红[补课]:专注完成,稳定

简化表格式

学生      核心表现              情绪   对比
─────────────────────────────────────────
乔乔      gj5→zd3→zt            ↑      ++
昊昊      慢热→zd3→反复调        →      渐入佳境
小明[体验] 搭3层参与             ↑      积极

2.3 语音输入优化

AI自动匹配班级学生名单实时纠正谐音

  • "良心桥" → "梁昕乔"
  • "中云浩" → "钟昀昊"

速记符号完整定义:参见 21-shorthand.md


三、学生类型标记

3.1 标记说明

标记 含义 处理方式 保存位置
无标记 正式学生 双轨保存 班级汇总+个人档案
[补课] 补课学生 自动检测档案位置,跨班级自动双轨保存 班级汇总+个人档案
[体验] 体验课学生 仅班级汇总 班级汇总(标记体验)
[缺课] 今天缺席 记录缺席 班级汇总(标记缺课)
[new] 新学生首次 创建档案 班级汇总+个人档案

3.2 标记使用示例

批量输入示例:

周四19点 DISC-007

乔乔gj5→zd3→zt ↑++
昊昊慢热→zd3→反复调 →
张小明[体验]搭了3层开心
李小红[补课]:专注完成,稳定

AI自动处理

  • 乔乔、昊昊:双轨保存
  • 张小明[体验]:仅保存到班级汇总,不询问
  • 李小红[补课]:检查档案 → 当前班级存在 → 双轨保存;其他班级存在 → 自动跨班级双轨保存

补课/新学生/转正详细规则:参见 22-student-mgmt.md


四、批量生成流程

4.1 标准流程

教师极简输入 → AI并行解析每个学生 → 预加载课程/档案 →
并行生成个性化课评 → 质量检查 → 【自动双轨保存】→ 完成

预加载说明

  • 课程预加载:系统根据日期自动计算学期周数,匹配课程主题和知识点(详见 15-semester-weeks.md
  • 档案预加载:调取学生画像(性格气质、学习特点、历史表现)实现千人千面生成(详见 30-student.md

4.2 批量输出界面

━━━━━━━━━━━━━━━━━━━━━━━
📊 批量生成完成5份发现世界-周四19点DISC-007
━━━━━━━━━━━━━━━━━━━━━━━

✅ 乔乔      198字  正常
✅ 昊昊      205字  正常
⚠️  小强      165字  偏短
✅ 张小明[体验] 192字  体验学生
✅ 李小红[补课] 201字  补课学生

【批量操作】
[全部发送] [逐个查看] [标记修改] [取消]
━━━━━━━━━━━━━━━━━━━━━━━

4.3 自动通过条件(同时满足)

  • 学生有完整档案
  • 字数在弹性范围内180-350字
  • 无敏感词/异常表述
  • 情绪描述合理

4.4 需教师关注条件(任一满足)

  • ⚠️ 体验/补课学生(无档案)
  • ⚠️ 字数偏差>20字
  • ⚠️ 检测到负面情绪词
  • ⚠️ 与上周表现差异过大
  • ⚠️ 内容重复度高

五、存储规则

5.1 双轨保存机制

存储位置 文件路径 用途 时机
班级周汇总 memory/class-evaluation-summary/第X周/{班级}.md 每周全班课评汇总(含出勤) 生成后自动保存
个人档案 memory/student/{班级}/{学生名}/历史课评记录.md 个人完整轨迹 生成后自动保存

5.2 存储优先级

  1. 第一优先级:班级周汇总(必须成功)
  2. 第二优先级:个人档案(允许失败,下次补存)

5.3 失败处理

  • 班级汇总保存成功,个人档案保存失败 → 记录到待补存队列,下次生成前自动补存
  • 教师可输入补存同步手动触发

5.4 学生类型保存对照

类型 标记 保存位置
正式学生 无标记 班级汇总 + 个人档案
本班补课 [补课] + 当前班级档案存在 班级汇总 + 个人档案
跨班级补课 [补课] + 其他班级档案存在 班级汇总(补课班级)+ 个人档案(原班级,标注补课信息)
体验学生 [体验] 仅班级汇总
缺课学生 [缺课] 仅班级汇总(记录缺席)

5.5 班级周汇总文件格式

班级周汇总文件包含以下部分:

头部信息

# {班级名} 第{X}周汇总

> 课程代码:{CODE-XXX}  
> 课程主题:{主题名称}{知识点}  
> 上课日期:{YYYY-MM-DD}{星期} {时间段}  
> 班级人数:{N}人(出勤{M}人,缺勤{K}人)
> 代课老师:{老师姓名(如有)}

规则

  1. 如未特别标明代课老师,默认本班由常规老师授课,头部信息中不显示代课老师字段,班级整体情况中不显示代课老师反馈部分。
  2. 出勤判定:有课评=出勤,无课评=缺课。补课/体验在课评状态表中标注。

本周课评状态

## 本周课评状态

| 学生 | 状态 | 类型 | 档案位置 | 操作 |
|:-----|:----:|:----:|:---------|:----:|
| {姓名}{小名} | ✅ 已保存 | 常规学生 | 本班 | [查看] [修改] |
| {姓名}{小名} | ✅ 已保存 | 补课学生 | {原班级} | [查看] [修改] |
| {姓名}{小名} | ✅ 已保存 | 体验学生 | - | [查看] [修改] |

学生课评列表

每个学生包含:

  • 学生姓名(小名)
  • 类型标记(补课/体验/常规)
  • 三段式课评内容
  • 教师备注

本周班级整体情况

## 本周班级整体情况

### 课程目标达成度
- **知识点掌握**{主题}{N}/{N}学生掌握)
- **技能操作**{技能点}{掌握情况}
- **{其他维度}**{评估结果}

### 共性亮点
1. {亮点1}
2. {亮点2}
3. {亮点3}

### 共性问题
1. {问题1}
2. {问题2}

### 教师反馈
> {授课老师的整体评价}
> 
> **注**:如为代课老师授课,标题改为"代课老师反馈",并注明代课老师姓名。

六、推荐工作流程

6.1 课后5分钟快速流程

Step 11分钟: 指定班级
/课评 班级:发现世界-周四19点

Step 22分钟: 速记输入
乔乔gj5→zd3→zt ↑++
昊昊慢热→zd3→反复调 →
小明[体验]zd3 ↑
小红[补课]:专注完成 →

Step 32分钟: 查看并保存
AI生成 → 查看质量报告 → 完成(已自动双轨保存)

完成!课评已自动双轨保存,无需确认。

6.2 不同场景推荐

场景 推荐方式 预计时间
常规课后8人 速记批量输入 3-5分钟
重点关注学生 自然语言详细描述 2-3分钟/人
边走边记 语音转文字 实时
周汇总整理 查看班级周汇总文件 1分钟

七、自动双轨保存机制(核心功能)

课评生成后立即自动保存到班级汇总和个人档案,无需教师确认

7.1 机制概述

生成阶段                    保存阶段                    完成阶段
─────────                  ─────────                  ─────────
AI生成课评              →  【自动双轨保存】      →  教师可随时查看/修改
     ↓                         ↓                          ↓
质量检查通过            →  班级汇总 + 个人档案    →  完成(无需确认)

核心原则

  • 生成即双轨保存:课评生成后立即自动保存到班级周汇总和个人档案
  • 无需确认:教师无需点击"确认",课评直接生效
  • 全程可修改:生成后教师可随时修改,修改后自动同步到两个位置
  • 出勤自动记录:有课评即视为出勤,状态直接体现在班级汇总中

7.2 保存流程

标准流程

教师输入表现 → AI生成课评 → 质量检查 → 【自动双轨保存】→ 完成

详细步骤

def on_evaluation_generated(student, evaluation):
    """课评生成后自动触发"""
    
    # 1. 质量检查
    if not quality_check(evaluation):
        return regenerate(student)
    
    # 2. 自动保存到班级汇总
    try:
        save_to_class_summary(student, evaluation)
        log_success(f"{student} 课评已保存到班级汇总")
    except SaveError as e:
        log_error(f"班级汇总保存失败:{e}")
        return retry_or_alert()
    
    # 3. 自动保存到个人档案(如有档案)
    if has_archive(student):
        try:
            save_to_personal_archive(student, evaluation)
            log_success(f"{student} 课评已保存到个人档案")
        except SaveError as e:
            add_to_compensation_queue(student, evaluation, error=e)
            log_warning(f"{student} 个人档案保存失败,已加入补存队列")
    
    # 4. 展示给教师(已保存状态)
    return show_to_teacher(student, evaluation, status="已保存")

7.3 学生类型处理

类型 档案状态 保存位置
正式学生 有档案 班级汇总 + 个人档案
本班补课 有档案(本班) 班级汇总 + 个人档案
跨班级补课 有档案(他班) 班级汇总 + 个人档案(原班级)
其他老师班级补课 有档案(其他老师班级) 班级汇总(仅)
体验/临时学生 无档案 班级汇总(仅)
缺课学生 有档案 不生成课评

7.4 自动触发条件

场景 触发动作 自动保存
单学生课评生成完成 立即触发 班级汇总 + 个人档案(双轨)
批量课评全部生成完成 全部生成后批量触发 班级汇总 + 个人档案(双轨,批量)
课评修改完成 立即触发 班级汇总 + 个人档案(双轨,更新)

自动保存优先级

优先级1必须成功班级周汇总文件写入
   ↓ 成功
优先级2允许失败个人档案写入
   ↓ 失败
加入待补存队列,下次触发时重试

7.5 教师交互指令

查看类指令

指令 功能 返回内容
查看{学生} 查看指定学生课评详情 完整课评内容 + 状态 + 操作按钮
查看全部 查看所有已生成课评 列表视图,含快速操作
查看本周 查看本周班级汇总 打开本周班级汇总文件

修改类指令

指令 功能 触发动作
修改{学生}{内容} 修改指定学生课评 直接编辑,更新班级汇总和个人档案
重生成{学生} 完全重新生成 删除原课评,重新生成,自动双轨保存
删除{学生} 删除该学生课评 从班级汇总和个人档案中删除(保留记录)

7.6 修改规则

支持修改的范围

修改类型 示例 处理方式 字数限制
词语替换 "搭建"→"拼搭" 直接替换 不影响
称呼修改 "乔乔"→"昕乔" 全文替换 不影响
内容补充 在"完成了"后添加"还帮助了同伴" 插入文本 单条≤50字
内容删除 删除"这个调整值得注意" 删除文本 单条≤50字
情绪调整 "开心"→"兴奋" 替换关键词 不影响

不支持修改的场景(需重生成)

  • 改变课评结构如从3段改为4段
  • 改变评价基调(从负面改为正面)
  • 补充大量内容(>100字
  • 改变课程主题理解

修改流程

教师:修改乔乔:把"搭建"改为"拼搭"
      ↓
AI定位班级汇总中乔乔的课评
      ↓
执行替换 → 字数检查 → 质量检查
      ↓
更新班级汇总文件
      ↓
同步更新个人档案(如有)
      ↓
提示修改完成

7.7 个人档案存储格式规范

文件结构

个人档案memory/student/{班级}/{学生名}/历史课评记录.md必须遵循以下结构:

# 历史课评记录

> 按时间倒序记录所有课后评价(最新课评始终在最上方)

## 学生信息
- **姓名**{学生姓名}
- **班级**{班级名称}
- **建档日期**{YYYY-MM-DD}

## 课评记录列表

### 最新记录

### {日期} | {课程代码} | {课程主题}
**核心表现**{关键词}

**课评内容**
{三段式课评内容}

**能力评估**(当时):
- 专注度:/5
- 精细动作:/5
- 工具使用:/5
- 问题解决:/5
- 社交合作:/5

**教师备注**
- 亮点:
- 需关注:
- 保存时间:{日期时间}
- 代课老师:{如有}

---

### {更早日期} | {课程代码} | {课程主题}
...

存储顺序规则(重要)

必须遵循:时间倒序排列,最新课评在最上方

文件结构示意:

# 历史课评记录

### 最新记录  ← 这是占位符,指向最新的课评

### 2026-05-01 | DISC-009  ← 最新课评第1条刚保存的
...
---

### 2026-04-23 | DISC-008  ← 次新课评第2条
...
---

### 2026-04-17 | DISC-007  ← 更早前课评第3条
...
---

追加新课的算法

def append_evaluation_to_archive(student, new_evaluation):
    """
    将新课评追加到个人档案
    规则:插入到文件顶部(最新记录位置)
    """
    
    # 1. 读取现有档案
    archive = read_personal_archive(student)
    
    # 2. 定位插入点("### 最新记录"标记之后)
    insert_position = find_marker(archive, "### 最新记录")
    
    # 3. 构建新课评条目(包含日期、课程代码、内容等)
    new_entry = format_evaluation_entry(new_evaluation)
    
    # 4. 插入到顶部(确保最新在最上面)
    archive.insert_after(insert_position, new_entry)
    
    # 5. 保存文件
    write_personal_archive(student, archive)
    
    log_success(f"{student} 新课评已保存到个人档案顶部")

现有档案顺序修复

对于已存在顺序混乱的档案,提供修复指令:

教师输入:修复{学生}档案顺序
或
教师输入:整理{学生}历史课评

AI处理
1. 读取该学生所有历史课评
2. 按日期降序排序(最新的在前)
3. 重写个人档案文件
4. 报告修复结果

7.8 失败处理机制

失败类型 处理方式 教师感知 补偿机制
班级汇总写入失败 立即重试3次仍失败则报错 显示错误提示 手动重试按钮
个人档案写入失败 标记FAILED加入待补存队列 静默处理,下次提示 自动补存
并发冲突(班级) 自动合并(追加模式) 无感知 自动解决
并发冲突(个人) 队列化处理,串行重试 延迟1-2秒 自动重试
磁盘满/权限不足 加入待补存队列,提醒教师 显示警告 手动触发补存

待补存队列处理

检测到待补存课评2条

1. 乔乔 - 第7周发现世界
   状态:班级汇总已保存,个人档案保存失败
   原因:磁盘临时满
   [立即补存] [忽略]

2. 昊昊 - 第7周发现世界
   状态:班级汇总已保存,个人档案保存失败
   原因:权限被拒绝
   [立即补存] [忽略]

[全部补存]

7.9 批量生成界面

生成完成展示

━━━━━━━━━━━━━━━━━━━━━━━
📊 课评生成完成5份发现世界-周四19点DISC-007
━━━━━━━━━━━━━━━━━━━━━━━

✅ 已保存

✅ 乔乔      198字  已保存
✅ 昊昊      205字  已保存
✅ 张小明    192字  体验学生(仅班级汇总)
✅ 李小红    201字  补课学生(跨班级自动保存)
⚠️  小强      165字  字数偏短(建议检查)

【操作选项】
[查看全部] [修改] [重生成]
━━━━━━━━━━━━━━━━━━━━━━━

逐个查看模式

━━━━━━━━━━━━━━━━━━━━━━━
📋 课评详情 1/5 |乔乔
━━━━━━━━━━━━━━━━━━━━━━━

【课评内容】
乔乔本节课学习了"旋转飞机"...
(完整课评内容)

【状态】✅ 已双轨保存
【字数】198字 ✅ 符合标准
【质量】✅ 无敏感词 ✅ 情绪合理 ✅ 学生档案完整

【操作】
[查看下一份] [修改] [重生成]
━━━━━━━━━━━━━━━━━━━━━━━

7.10 状态管理面板

在班级汇总文件顶部自动维护状态面板:

---
class: 发现世界-周四19点
week: 7
course: DISC-007
generated_at: 2026-04-17T16:00:00
status:
  total: 5
  saved: 5
  failed: 0
students:
  - name: 乔乔
    status: saved
    saved_at: 2026-04-17T16:05:00
  - name: 昊昊
    status: saved
    saved_at: 2026-04-17T16:06:00
  - name: 张小明
    status: saved
    saved_at: 2026-04-17T16:07:00
    note: 体验学生,仅班级汇总
---

## 本周课评状态

| 学生 | 状态 | 操作 |
|:-----|:----:|:----:|
| 乔乔 | ✅ 已保存 | [查看] [修改] |
| 昊昊 | ✅ 已保存 | [查看] [修改] |
| 张小明 | ✅ 已保存 | [查看] [修改] |
| 李小红 | ✅ 已保存 | [查看] [修改] |
| 小强 | ⚠️ 保存失败 | [重试] [查看] |

7.11 快捷指令速查

场景 指令 效果
查看全部 查看全部 查看本周所有已保存课评
查看单个 查看乔乔 查看乔乔的课评详情
修改课评 修改乔乔:把"搭建"改为"拼搭" 修改指定课评内容
重生成 重生成乔乔 重新生成乔乔的课评
手动补存 补存 / 同步 手动触发待补存队列处理

八、出勤统计(嵌入班级汇总)

出勤信息直接记录在班级周汇总文件中,无需独立的出勤统计文件

8.1 出勤判定规则

状态 图标 判定方式
出勤 有档案 + 已生成课评
补课 🔄 档案在其他班级 + 来本班上课(课评状态表标注)
体验/临时 📝 无档案 + 已生成课评(课评状态表标注)
缺课 有档案 + 未生成课评(头部人数自动体现)

8.2 出勤信息位置

出勤数据直接体现在班级周汇总文件中:

头部信息(一行搞定):

> 班级人数:{N}人(出勤{M}人,缺勤{K}人)

课评状态表(已有,兼做出勤记录):

| 学生 | 状态 | 类型 | 操作 |
|:-----|:----:|:----:|:----:|
| 乔乔 | ✅ 已保存 | 常规 | [查看] |
| 小红 | ✅ 已保存 | 补课 | [查看] |
| 小明 | ✅ 已保存 | 体验 | [查看] |

8.3 查看出勤

指令 功能 返回内容
查看出勤 查看本周各班级出勤 读取各班级汇总头部信息汇总
查看{班级}出勤 查看指定班级 返回该班级汇总的头部+状态表
标记缺课 {学生} 手动标记缺课 在班级汇总中添加缺课记录

九、快速编辑功能

支持小修改直接编辑,无需重新生成:

修改乔乔:把"搭建"改为"拼搭"
修改昊昊:称呼改为"昊昊小朋友"
修改小明:在"完成了"后添加"还帮助了同伴"

限制单次修改不超过50字单篇累计不超过100字。超出限制建议重新生成。