Files
ClassFeedback/.claude/rules/90-archive/32-batch-generation.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

11 KiB
Raw Blame History

⚠️ 本文件已归档:内容已合并至核心规则文件,此处仅作历史备份。请勿直接引用本文件,请使用 .claude/rules/ 下的核心规则。

批量课评生成规则 v2.0(优化版)

⚠️ 注意:本文档为 v2.0 旧版本归档文件,描述的是"生成-确认-保存"两阶段流程。 当前系统已升级为 v3.1 "生成即双轨保存"模式,详见 20-workflow.md 第7节和第10节。

关键差异

  • v2.0:先生成 → 等待教师确认 → 再双轨保存
  • v3.1:生成后立即自动双轨保存,无需确认

🚀 批量生成流程v2.0 旧流程 - 仅供参考)

输入表格 → AI并行解析每个学生 → 预加载课程/档案 → 
并行生成多份课评 → 质量检查 → 【自动双轨保存】→ 完成
                                          ↓
                                 同步更新出勤统计

:以上为 v3.1 更新后的流程。原 v2.0 流程包含"教师确认"步骤,现已简化为"生成即保存"。

核心优势8人课评从15-20分钟缩短至3-5分钟效率提升75%


📝 批量输入格式

标准列表式(推荐)

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

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

简化表格式

课程DISC-007  班级:发现世界-周四19点

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

纯速记式(高效用户)

DISC-007 发现世界-周四19点

乔乔 gj5→zd3→zt ↑++
昊昊 慢热→zd3→反复调 →
小明[体验] zd3 ↑

批量输出格式(优化)

统一展示界面

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

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

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

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

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

需人工确认条件(任一满足):

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

🔍 自动质量检查

检查维度

检查项 描述
字数检查 是否符合弹性范围180-350字
重复检查 开头句式是否差异化
差异化检查 各课评侧重点是否不同
待关注项 特殊情绪/行为标记

差异化策略

1. 开头差异化

学生类型 开头句式示例
谨慎型 "今天[学生]终于主动尝试了..."
活跃型 "[学生]今天一如既往充满活力..."
进步型 "和上周相比,[学生]有了明显进步..."
补课型 "这节课[学生]融入得很好..."
体验型 "欢迎[学生]第一次来到..."

2. 侧重点差异化

同一节课,不同学生类型侧重不同:

  • 谨慎型 → 参与度和勇气
  • 熟练型 → 创意和拓展
  • 困难型 → 过程价值

3. 建议差异化

根据学生能力推荐不同课后活动:

  • 参与少:在家可以用纸筒做简单旋转玩具
  • 能力强:可以尝试用不同材料做对比实验
  • 坚持短可以从5分钟小目标开始练习专注

📦 存储流程(优化后)

存储路径

位置 路径 说明
班级周汇总 memory/class-evaluation-summary/第X周/{班级}.md 全班汇总,含确认状态
个人档案 memory/student/{班级}/{学生}/历史课评记录.md 个人完整轨迹
跨班级补课 memory/student/{原班级}/{学生}/历史课评记录.md 档案在原班级,来当前班级补课

跨班级补课存储示例

  • 林瀚丞档案在"发现世界-周四19点",来"发现世界-周六09点"补课
  • 课评保存到:class-evaluation-summary/第X周/发现世界-周六09点.md
  • 课评追加到:student/发现世界-周四19点/林瀚丞/历史课评记录.md
  • 个人档案标注:【跨班级补课】本节课程在周六09点班完成

完整存储规则和学生类型处理详见 CLAUDE.md33-first-class-rules.md

并发控制与文件名规范

文件名规范化

# 文件名非法字符处理
invalid_chars = ['/', '\\', ':', '*', '?', '"', '<', '>', '|']
replacement = '_'

def sanitize_filename(filename):
    for char in invalid_chars:
        filename = filename.replace(char, replacement)
    return filename.strip()

并发写入策略

场景 策略 说明
同时写入同一班级汇总 文件锁 + 合并写入 后写入者追加到文件,不覆盖
同时写入同一学生档案 队列化处理 串行写入,避免冲突
班级汇总 + 个人档案同时写入 独立事务 互不影响,各自重试

写入保障

  • 原子写入:先写入临时文件(.md.tmp),成功后重命名
  • 备份机制:写入前自动备份上次版本(.md.bak
  • 冲突检测:检测到修改时间变化时自动合并
  • 教师协作提示当检测到其他教师正在编辑时显示「教师A正在编辑请稍后」

存储失败补偿机制

场景:班级汇总保存成功,但个人档案保存失败(磁盘满、权限问题、并发冲突等)

处理策略

失败类型 处理方式 教师感知
磁盘/IO错误 加入补偿队列5分钟后自动重试 静默处理,下次生成时提示
并发冲突 自动合并(追加模式),不重试 无感知
权限不足 加入补偿队列,提醒教师检查权限 显示警告
路径不存在 自动创建路径后重试 无感知

补偿队列检查时机

  1. 每次生成课评前(自动检查并补存)
  2. 教师输入补存同步指令时
  3. 每日定时检查如每天18:00

批量补存界面

━━━━━━━━━━━━━━━━━━━━━━━━━
📋 待补存课评2条

1. 乔乔 - 第7周发现世界
   失败原因:磁盘临时满
   [立即补存] [忽略]

2. 昊昊 - 第7周发现世界  
   失败原因:权限被拒绝
   [立即补存] [忽略]

[全部补存] [稍后提醒]
━━━━━━━━━━━━━━━━━━━━━━━━━

🏷️ 特殊情况批量处理

标记速查

标记 处理逻辑 保存位置
[补课] 检查档案:①当前班级存在→双轨保存 ②其他班级存在→自动跨班级双轨保存 ③不存在→询问是否建档 班级汇总+个人档案(含跨班级自动保存)
[体验] 仅班级汇总,不询问 仅班级汇总(标记体验)
[缺课] 记录缺席,不生成课评 班级汇总(标记缺课)
[new] 创建新档案,双轨保存 班级汇总+个人档案

[补课]处理详细逻辑(自动版):

  1. 检查 memory/student/{当前班级}/{学生名}/ 是否存在
  2. 如存在 → 该学生为本班补课 → 双轨保存(班级汇总+个人档案)
  3. 如不存在 → 搜索 memory/student/ 下其他班级是否存在该学生档案
    • 如存在(跨班级补课)→ 自动双轨保存(跨班级模式)
      • 自动保存到补课班级周汇总
      • 自动追加到原班级个人档案(标注补课班级信息)
      • 无需询问,自动完成
    • 如不存在 → 询问处理方式
      • [1] 仅保存到班级汇总
      • [2] 创建新档案

批量处理示例

输入:
DISC-007 发现世界-周四19点

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

AI处理
✓ 乔乔、昊昊:正常生成,双轨保存(正式学生,档案在当前班级)
⚠ 张小明[体验]:生成标记为"体验学生",仅班级汇总
⚠ 李小红[补课]:检查档案 → 在当前班级存在 → 双轨保存(本班补课)
✓ 林瀚丞[补课]:检查档案 → 在周四19点班存在 → **自动跨班级双轨保存**
  → 保存到周六09点班级汇总 + 追加到周四19点个人档案
✓ 王大力[缺课]:记录"王大力:缺课",不生成课评

💡 效率优化技巧

1. 上下文复用

/课评 班级:发现世界-周四19点  # 首次指定

# 后续直接输入学生,无需重复班级
乔乔搭3层
昊昊:慢热

2. 语音批量录入

语音输入多学生表现AI自动分段生成课评。


📊 批量生成检查清单

生成前检查

  • 班级信息正确(或已在上下文中)
  • 学生姓名无遗漏
  • 标记使用正确([补课]/[体验]/[缺课]

生成后检查

  • 全部学生课评已生成
  • 字数符合弹性范围
  • 开头句式差异化
  • 建议内容个性化
  • 特殊学生已标记

发送前检查

  • 内容准确无误
  • 称呼正确(小名/去姓)
  • 补课/体验学生处理完毕

🎯 使用建议

推荐工作流程

Step 1: 指定班级(一次)
        /课评 班级:发现世界-周四19点
        
Step 2: 批量输入(使用速记)
        乔乔gj5→zd3→zt ↑++
        昊昊慢热→zd3→反复调 →
        小明[体验]zd3 ↑
        
Step 3: AI批量生成自动质量检查

Step 4: 查看质量报告,一键确认

Step 5: 自动保存并发送

不同场景推荐

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

核心理念:批量不批量,千人千面不打折