规则精简合并 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>
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
# 工作流程规则:输入格式、批量生成、存储与特殊处理
|
||||
|
||||
> 合并文件:快捷输入格式 + 批量课评生成 + 新学生/补课处理 + 速记符号 + 快速入门
|
||||
> 版本:v3.1(简化版)| 更新日期:2026-05-05
|
||||
> 版本:v3.2(拆分版)| 更新日期:2026-05-05
|
||||
>
|
||||
> **v3.1 变更**:
|
||||
> - 删除"待确认"状态,改为"生成即双轨保存"
|
||||
> - 出勤信息嵌入班级周汇总(取消独立出勤文件)
|
||||
> - 简化教师操作流程
|
||||
> **v3.2 变更**:
|
||||
> - 速记符号系统拆分至 `21-shorthand.md`
|
||||
> - 补课/新学生/转正规则拆分至 `22-student-mgmt.md`
|
||||
> - 修复第10节重复子章节(原10.3-10.7出现两次)
|
||||
|
||||
---
|
||||
|
||||
@@ -86,78 +86,13 @@ AI自动匹配班级学生名单,实时纠正谐音:
|
||||
- "良心桥" → "梁昕乔"
|
||||
- "中云浩" → "钟昀昊"
|
||||
|
||||
---
|
||||
|
||||
## 三、速记符号系统
|
||||
|
||||
### 3.1 核心速记(必会,覆盖80%场景)
|
||||
|
||||
| 速记 | 含义 | 示例 |
|
||||
|------|------|------|
|
||||
| `gj#` | 观望#分钟 | `gj5` = 观望5分钟 |
|
||||
| `zd#` | 主动搭#层 | `zd3` = 主动搭3层 |
|
||||
| `zt` | 自己调整 | 遇到问题时自己调整 |
|
||||
| `wb` | 完成 | 独立完成搭建 |
|
||||
| `↑` / `kx` | 开心/积极 | 情绪↑ |
|
||||
| `→` / `wd` | 稳定/平和 | 情绪→ |
|
||||
| `↓` / `fd` | 烦躁/低落 | 情绪↓ |
|
||||
| `++` | 比上周进步 | 比上周++ |
|
||||
| `--` | 需关注 | 需-- |
|
||||
|
||||
### 3.2 扩展速记(进阶,覆盖90%场景)
|
||||
|
||||
| 速记 | 含义 | 示例 |
|
||||
|------|------|------|
|
||||
| `zx#` | 专注#分钟 | `zx15` = 专注15分钟 |
|
||||
| `sb#` | 失败#次后调整 | `sb2` = 失败2次后成功 |
|
||||
| `ts#` | 探索#分钟 | `ts5` = 探索5分钟 |
|
||||
| `cz#` | 创造#种方案 | `cz3` = 3种创意方案 |
|
||||
| `wt#` | 提问#次 | `wt3` = 提问3次 |
|
||||
| `hz` | 合作 | hz完成 |
|
||||
| `fx` | 分享 | fx想法 |
|
||||
| `tq` | 求助 | tq→zd |
|
||||
| `mr` | 融入 | mr→hz |
|
||||
| `~` / `bd` | 情绪波动 | 情绪~ |
|
||||
| `=` | 和之前一样 | 和之前= |
|
||||
|
||||
### 3.3 编程/技术速记(SPIKE/AI03)
|
||||
|
||||
| 速记 | 全称 | 示例 |
|
||||
|------|------|------|
|
||||
| `bc` | 编程 | bc→ts |
|
||||
| `ts#` | 调试#次 | ts3 |
|
||||
| `cx` | 创新/优化 | cx→效果更好 |
|
||||
| `tj` | 分析/提交 | tj→解决 |
|
||||
| `cw` | 错误/bug | cw→fx→修正 |
|
||||
|
||||
### 3.4 速记组合示例
|
||||
|
||||
```
|
||||
输入: 乔乔:gj5→zd3→zt ↑++
|
||||
展开: 乔乔观望5分钟后主动搭3层,自己调整,开心,比上周进步
|
||||
|
||||
输入: 丞丞:ts5→cz2→wt3 ↑↑
|
||||
展开: 丞丞探索5分钟,创造了2种方案,主动提问3次,非常兴奋
|
||||
|
||||
输入: 一栩:bc→ts3→cx ↑+
|
||||
展开: 一栩编程后调试3次,然后优化了方案,情绪好转
|
||||
```
|
||||
|
||||
### 3.5 速记与自然语言混用规则
|
||||
|
||||
**优先级**:速记符号 > 自然语言描述
|
||||
|
||||
| 场景 | 处理方式 |
|
||||
|------|---------|
|
||||
| 无冲突 | 正常解析 |
|
||||
| 时间冲突 | 以速记数值为准,自然语言作为补充描述 |
|
||||
| 行为冲突 | 以速记为准,数值冲突时提示确认 |
|
||||
> **速记符号完整定义**:参见 `21-shorthand.md`
|
||||
|
||||
---
|
||||
|
||||
## 四、学生类型标记
|
||||
## 三、学生类型标记
|
||||
|
||||
### 4.1 标记说明
|
||||
### 3.1 标记说明
|
||||
|
||||
| 标记 | 含义 | 处理方式 | 保存位置 |
|
||||
|------|------|----------|---------|
|
||||
@@ -167,7 +102,7 @@ AI自动匹配班级学生名单,实时纠正谐音:
|
||||
| `[缺课]` | 今天缺席 | 记录缺席 | 班级汇总(标记缺课) |
|
||||
| `[new]` | 新学生首次 | 创建档案 | 班级汇总+个人档案 |
|
||||
|
||||
### 4.2 标记使用示例
|
||||
### 3.2 标记使用示例
|
||||
|
||||
```
|
||||
批量输入示例:
|
||||
@@ -185,109 +120,24 @@ AI自动匹配班级学生名单,实时纠正谐音:
|
||||
- 张小明[体验]:仅保存到班级汇总,不询问
|
||||
- 李小红[补课]:检查档案 → 当前班级存在 → 双轨保存;其他班级存在 → **自动跨班级双轨保存**
|
||||
|
||||
---
|
||||
|
||||
## 五、补课学生处理
|
||||
|
||||
### 5.1 核心规则
|
||||
|
||||
**绝对禁止**:课评正文中绝对不能提及学生来补课相关内容。
|
||||
|
||||
- ❌ 禁止出现"补课"、"补课上"、"来补课"、"本次补课"
|
||||
- ❌ 禁止暗示学生非正常上课("今天特别来参加"、"临时加入"、"从其他班级过来")
|
||||
- ✅ 课评正文完全按正常学生撰写
|
||||
- ✅ `[补课]`标记仅用于后台档案管理
|
||||
|
||||
**示例**:
|
||||
|
||||
```
|
||||
教师输入:李小红[补课]:搭了3层,专注完成
|
||||
|
||||
课评输出(正确):
|
||||
小红本节课学习了"旋转飞机",认识了游乐园旋转设施的中心轴结构...
|
||||
(正常撰写,完全不提"补课")
|
||||
|
||||
课评输出(错误):
|
||||
小红本节课作为补课学生,学习了"旋转飞机"... ❌
|
||||
小红今天来补课,学习了"旋转飞机"... ❌
|
||||
```
|
||||
|
||||
### 5.2 补课学生分类处理
|
||||
|
||||
**情况A:自己班级的学生补课**
|
||||
- **判断**:学生在 `memory/student/{当前班级}/` 目录中存在
|
||||
- **处理**:正常双轨保存(班级汇总 + 个人档案)
|
||||
|
||||
**情况B:跨班级补课(档案在其他班级)**
|
||||
- **判断**:学生在 `memory/student/{其他班级}/` 目录中存在
|
||||
- **处理**:自动双轨保存(跨班级模式)
|
||||
- ✅ 保存到补课班级周汇总
|
||||
- ✅ 追加到原班级个人历史课评记录.md(标注补课班级信息)
|
||||
- **无需询问,自动完成**
|
||||
|
||||
**情况C:其他老师班级补课学生**
|
||||
- **判断**:任何班级都不存在该学生档案
|
||||
- **处理**:询问后决定
|
||||
- [1] 仅保存到班级汇总
|
||||
- [2] 创建新档案(双轨保存)
|
||||
|
||||
### 5.3 跨班级补课示例
|
||||
|
||||
```
|
||||
教师输入:班级:发现世界-周六09点,林瀚丞[补课]:积极分析课程任务,专注完成了绿色身体、黑色头部的蜥蜴设计
|
||||
|
||||
AI检测:
|
||||
- 未找到「林瀚丞」在「发现世界-周六09点」的个人档案
|
||||
- ✅ 找到「林瀚丞」在「发现世界-周四19点」的个人档案
|
||||
|
||||
判断:跨班级补课学生(原班级周四19点,补课班级周六09点)
|
||||
|
||||
自动处理:
|
||||
→ 课评保存到「第8周/发现世界-周六09点.md」(补课班级周汇总)
|
||||
→ 课评追加到「student/发现世界-周四19点/林瀚丞/历史课评记录.md」(原班级个人档案)
|
||||
标注:【跨班级补课】本节课程在周六09点班完成
|
||||
```
|
||||
> **补课/新学生/转正详细规则**:参见 `22-student-mgmt.md`
|
||||
|
||||
---
|
||||
|
||||
## 六、新学生处理
|
||||
## 四、批量生成流程
|
||||
|
||||
### 6.1 首次上课(新学生)
|
||||
|
||||
**课评提及条件**:
|
||||
- **仅在教师输入中明确写明"第一次上课"、"新学生"等关键词时,才能在课评中提及**
|
||||
- 如果教师未明确说明,课评中**不自动添加**"这是孩子第一次上课"等表述
|
||||
|
||||
**正确示例**:
|
||||
```
|
||||
教师输入:小明(第一次上课):开始不敢碰,后来搭了3层
|
||||
课评输出:这节课是小明第一次上课,开始有点害羞...
|
||||
```
|
||||
|
||||
**错误示例**:
|
||||
```
|
||||
教师输入:小明:开始不敢碰,后来搭了3层
|
||||
课评输出:这节课是小明第一次上课... ❌(教师未说明)
|
||||
```
|
||||
|
||||
### 6.2 禁止自动推断
|
||||
|
||||
- ❌ **禁止AI自动推断学生是补课还是第一次上课**
|
||||
- ❌ 禁止根据表现猜测(如"表现生疏"→"可能是第一次")
|
||||
- ✅ 完全依赖教师输入中的明确标记
|
||||
|
||||
---
|
||||
|
||||
## 七、批量生成流程
|
||||
|
||||
### 7.1 标准流程
|
||||
### 4.1 标准流程
|
||||
|
||||
```
|
||||
教师极简输入 → AI并行解析每个学生 → 预加载课程/档案 →
|
||||
教师极简输入 → AI并行解析每个学生 → 预加载课程/档案 →
|
||||
并行生成个性化课评 → 质量检查 → 【自动双轨保存】→ 完成
|
||||
```
|
||||
|
||||
### 7.2 批量输出界面
|
||||
**预加载说明**:
|
||||
- **课程预加载**:系统根据日期自动计算学期周数,匹配课程主题和知识点(详见 [`15-semester-weeks.md`](15-semester-weeks.md))
|
||||
- **档案预加载**:调取学生画像(性格气质、学习特点、历史表现)实现千人千面生成(详见 [`30-student.md`](30-student.md))
|
||||
|
||||
### 4.2 批量输出界面
|
||||
|
||||
```
|
||||
━━━━━━━━━━━━━━━━━━━━━━━
|
||||
@@ -305,14 +155,14 @@ AI检测:
|
||||
━━━━━━━━━━━━━━━━━━━━━━━
|
||||
```
|
||||
|
||||
### 7.3 自动通过条件(同时满足)
|
||||
### 4.3 自动通过条件(同时满足)
|
||||
|
||||
- ✅ 学生有完整档案
|
||||
- ✅ 字数在弹性范围内(180-350字)
|
||||
- ✅ 无敏感词/异常表述
|
||||
- ✅ 情绪描述合理
|
||||
|
||||
### 7.4 需教师关注条件(任一满足)
|
||||
### 4.4 需教师关注条件(任一满足)
|
||||
|
||||
- ⚠️ 体验/补课学生(无档案)
|
||||
- ⚠️ 字数偏差>20字
|
||||
@@ -322,26 +172,26 @@ AI检测:
|
||||
|
||||
---
|
||||
|
||||
## 八、存储规则
|
||||
## 五、存储规则
|
||||
|
||||
### 8.1 双轨保存机制
|
||||
### 5.1 双轨保存机制
|
||||
|
||||
| 存储位置 | 文件路径 | 用途 | 时机 |
|
||||
|---------|---------|------|------|
|
||||
| **班级周汇总** | `memory/class-evaluation-summary/第X周/{班级}.md` | 每周全班课评汇总(含出勤) | 生成后自动保存 |
|
||||
| **个人档案** | `memory/student/{班级}/{学生名}/历史课评记录.md` | 个人完整轨迹 | 生成后自动保存 |
|
||||
|
||||
### 8.2 存储优先级
|
||||
### 5.2 存储优先级
|
||||
|
||||
1. **第一优先级**:班级周汇总(必须成功)
|
||||
2. **第二优先级**:个人档案(允许失败,下次补存)
|
||||
|
||||
### 8.3 失败处理
|
||||
### 5.3 失败处理
|
||||
|
||||
- 班级汇总保存成功,个人档案保存失败 → 记录到待补存队列,下次生成前自动补存
|
||||
- 教师可输入`补存`或`同步`手动触发
|
||||
|
||||
### 8.4 学生类型保存对照
|
||||
### 5.4 学生类型保存对照
|
||||
|
||||
| 类型 | 标记 | 保存位置 |
|
||||
|------|------|---------|
|
||||
@@ -351,7 +201,7 @@ AI检测:
|
||||
| 体验学生 | `[体验]` | 仅班级汇总 |
|
||||
| 缺课学生 | `[缺课]` | 仅班级汇总(记录缺席)|
|
||||
|
||||
### 8.5 班级周汇总文件格式
|
||||
### 5.5 班级周汇总文件格式
|
||||
|
||||
班级周汇总文件包含以下部分:
|
||||
|
||||
@@ -418,9 +268,9 @@ AI检测:
|
||||
|
||||
---
|
||||
|
||||
## 九、推荐工作流程
|
||||
## 六、推荐工作流程
|
||||
|
||||
### 9.1 课后5分钟快速流程
|
||||
### 6.1 课后5分钟快速流程
|
||||
|
||||
```
|
||||
Step 1(1分钟): 指定班级
|
||||
@@ -438,7 +288,7 @@ AI生成 → 查看质量报告 → 完成(已自动双轨保存)
|
||||
完成!课评已自动双轨保存,无需确认。
|
||||
```
|
||||
|
||||
### 9.2 不同场景推荐
|
||||
### 6.2 不同场景推荐
|
||||
|
||||
| 场景 | 推荐方式 | 预计时间 |
|
||||
|------|---------|----------|
|
||||
@@ -449,13 +299,11 @@ AI生成 → 查看质量报告 → 完成(已自动双轨保存)
|
||||
|
||||
---
|
||||
|
||||
## 十、自动双轨保存机制(核心功能)
|
||||
## 七、自动双轨保存机制(核心功能)
|
||||
|
||||
> 课评生成后立即自动保存到班级汇总和个人档案,无需教师确认
|
||||
>
|
||||
> **变更说明**:v3.1 简化流程,删除"待确认"状态,改为"生成即双轨保存"
|
||||
|
||||
### 10.1 机制概述
|
||||
### 7.1 机制概述
|
||||
|
||||
```
|
||||
生成阶段 保存阶段 完成阶段
|
||||
@@ -471,7 +319,7 @@ AI生成课评 → 【自动双轨保存】 → 教师可随
|
||||
- ✅ **全程可修改**:生成后教师可随时修改,修改后自动同步到两个位置
|
||||
- ✅ **出勤自动记录**:有课评即视为出勤,状态直接体现在班级汇总中
|
||||
|
||||
### 10.2 保存流程
|
||||
### 7.2 保存流程
|
||||
|
||||
#### 标准流程
|
||||
|
||||
@@ -503,7 +351,6 @@ def on_evaluation_generated(student, evaluation):
|
||||
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} 个人档案保存失败,已加入补存队列")
|
||||
|
||||
@@ -511,7 +358,7 @@ def on_evaluation_generated(student, evaluation):
|
||||
return show_to_teacher(student, evaluation, status="已保存")
|
||||
```
|
||||
|
||||
### 10.3 学生类型处理
|
||||
### 7.3 学生类型处理
|
||||
|
||||
| 类型 | 档案状态 | 保存位置 |
|
||||
|:-----|:---------|:---------|
|
||||
@@ -522,16 +369,59 @@ def on_evaluation_generated(student, evaluation):
|
||||
| **体验/临时学生** | 无档案 | ✅ 班级汇总(仅) |
|
||||
| **缺课学生** | 有档案 | ❌ 不生成课评 |
|
||||
|
||||
### 10.4 修改机制
|
||||
### 7.4 自动触发条件
|
||||
|
||||
| 场景 | 触发动作 | 自动保存 |
|
||||
|:-----|:---------|:--------:|
|
||||
| 单学生课评生成完成 | 立即触发 | 班级汇总 + 个人档案(双轨)|
|
||||
| 批量课评全部生成完成 | 全部生成后批量触发 | 班级汇总 + 个人档案(双轨,批量)|
|
||||
| 课评修改完成 | 立即触发 | 班级汇总 + 个人档案(双轨,更新)|
|
||||
|
||||
**自动保存优先级**:
|
||||
```
|
||||
优先级1(必须成功):班级周汇总文件写入
|
||||
↓ 成功
|
||||
优先级2(允许失败):个人档案写入
|
||||
↓ 失败
|
||||
加入待补存队列,下次触发时重试
|
||||
```
|
||||
|
||||
### 7.5 教师交互指令
|
||||
|
||||
#### 查看类指令
|
||||
|
||||
| 指令 | 功能 | 返回内容 |
|
||||
|:-----|:-----|:---------|
|
||||
| `查看{学生}` | 查看指定学生课评详情 | 完整课评内容 + 状态 + 操作按钮 |
|
||||
| `查看全部` | 查看所有已生成课评 | 列表视图,含快速操作 |
|
||||
| `查看本周` | 查看本周班级汇总 | 打开本周班级汇总文件 |
|
||||
|
||||
#### 修改类指令
|
||||
|
||||
| 指令 | 功能 | 触发动作 |
|
||||
|:-----|:-----|:---------|
|
||||
| `修改{学生}:{内容}` | 修改指定学生课评 | 直接编辑,更新班级汇总和个人档案 |
|
||||
| `重生成{学生}` | 完全重新生成 | 删除原课评,重新生成,自动双轨保存 |
|
||||
| `删除{学生}` | 删除该学生课评 | 从班级汇总和个人档案中删除(保留记录)|
|
||||
|
||||
### 7.6 修改规则
|
||||
|
||||
#### 支持修改的范围
|
||||
|
||||
| 修改类型 | 示例 | 处理方式 | 同步规则 |
|
||||
|:---------|:-----|:---------|:---------|
|
||||
| 词语替换 | "搭建"→"拼搭" | 直接替换 | 同步更新两个位置 |
|
||||
| 称呼修改 | "乔乔"→"昕乔" | 全文替换 | 同步更新两个位置 |
|
||||
| 内容补充 | 添加"还帮助了同伴" | 插入文本 | 单条≤50字,同步更新 |
|
||||
| 内容删除 | 删除某句话 | 删除文本 | 单条≤50字,同步更新 |
|
||||
| 修改类型 | 示例 | 处理方式 | 字数限制 |
|
||||
|:---------|:-----|:---------|:--------:|
|
||||
| 词语替换 | "搭建"→"拼搭" | 直接替换 | 不影响 |
|
||||
| 称呼修改 | "乔乔"→"昕乔" | 全文替换 | 不影响 |
|
||||
| 内容补充 | 在"完成了"后添加"还帮助了同伴" | 插入文本 | 单条≤50字 |
|
||||
| 内容删除 | 删除"这个调整值得注意" | 删除文本 | 单条≤50字 |
|
||||
| 情绪调整 | "开心"→"兴奋" | 替换关键词 | 不影响 |
|
||||
|
||||
#### 不支持修改的场景(需重生成)
|
||||
|
||||
- 改变课评结构(如从3段改为4段)
|
||||
- 改变评价基调(从负面改为正面)
|
||||
- 补充大量内容(>100字)
|
||||
- 改变课程主题理解
|
||||
|
||||
#### 修改流程
|
||||
|
||||
@@ -544,22 +434,12 @@ AI定位班级汇总中乔乔的课评
|
||||
↓
|
||||
更新班级汇总文件
|
||||
↓
|
||||
如有个人档案,同步更新个人档案
|
||||
同步更新个人档案(如有)
|
||||
↓
|
||||
提示修改完成
|
||||
```
|
||||
|
||||
#### 修改指令
|
||||
|
||||
| 指令 | 功能 |
|
||||
|:-----|:-----|
|
||||
| `修改{学生}:把"{旧词}"改为"{新词}"` | 替换词语 |
|
||||
| `修改{学生}:称呼改为"{新称呼}"` | 修改称呼 |
|
||||
| `修改{学生}:添加"{内容}"` | 补充内容 |
|
||||
| `修改{学生}:删除"{内容}"` | 删除内容 |
|
||||
| `重生成{学生}` | 完全重新生成 |
|
||||
|
||||
### 10.5 个人档案存储格式规范
|
||||
### 7.7 个人档案存储格式规范
|
||||
|
||||
#### 文件结构
|
||||
|
||||
@@ -655,105 +535,51 @@ def append_evaluation_to_archive(student, new_evaluation):
|
||||
log_success(f"{student} 新课评已保存到个人档案顶部")
|
||||
```
|
||||
|
||||
### 10.6 失败处理机制
|
||||
#### 现有档案顺序修复
|
||||
|
||||
对于已存在顺序混乱的档案,提供修复指令:
|
||||
|
||||
```
|
||||
教师输入:修复{学生}档案顺序
|
||||
或
|
||||
教师输入:整理{学生}历史课评
|
||||
|
||||
AI处理:
|
||||
1. 读取该学生所有历史课评
|
||||
2. 按日期降序排序(最新的在前)
|
||||
3. 重写个人档案文件
|
||||
4. 报告修复结果
|
||||
```
|
||||
|
||||
### 7.8 失败处理机制
|
||||
|
||||
| 失败类型 | 处理方式 | 教师感知 | 补偿机制 |
|
||||
|:---------|:---------|:---------|:---------|
|
||||
| 班级汇总写入失败 | 立即重试3次 | 显示错误提示 | 手动重试 |
|
||||
| 个人档案写入失败 | 标记加入待补存队列 | 静默,下次提示 | 自动补存 |
|
||||
| 班级汇总写入失败 | 立即重试3次,仍失败则报错 | 显示错误提示 | 手动重试按钮 |
|
||||
| 个人档案写入失败 | 标记FAILED,加入待补存队列 | 静默处理,下次提示 | 自动补存 |
|
||||
| 并发冲突(班级) | 自动合并(追加模式) | 无感知 | 自动解决 |
|
||||
| 并发冲突(个人) | 队列化处理,串行重试 | 延迟1-2秒 | 自动重试 |
|
||||
| 磁盘满/权限不足 | 加入待补存队列,提醒教师 | 显示警告 | 手动触发补存 |
|
||||
|
||||
### 10.7 快捷指令速查
|
||||
|
||||
| 场景 | 指令 | 效果 |
|
||||
|:-----|:-----|:-----|
|
||||
| 查看课评 | `查看{学生}` | 查看指定学生课评 |
|
||||
| 修改词语 | `修改{学生}:把"A"改为"B"` | 替换指定词语,同步更新两个位置 |
|
||||
| 修改称呼 | `修改{学生}:称呼改为"XX"` | 修改全文称呼 |
|
||||
| 重生成 | `重生成{学生}` | 完全重新生成并保存 |
|
||||
| 手动补存 | `补存` / `同步` | 手动触发待补存队列处理 |
|
||||
|
||||
---
|
||||
|
||||
## 十一、出勤统计(嵌入班级汇总)
|
||||
|
||||
> 出勤信息直接记录在班级周汇总文件中,无需独立的出勤统计文件
|
||||
|
||||
### 11.1 出勤判定规则
|
||||
|
||||
| 状态 | 图标 | 判定方式 |
|
||||
|:-----|:----:|:---------|
|
||||
| **出勤** | ✅ | 有档案 + 已生成课评 |
|
||||
| **补课** | 🔄 | 档案在其他班级 + 来本班上课(课评状态表标注) |
|
||||
| **体验/临时** | 📝 | 无档案 + 已生成课评(课评状态表标注) |
|
||||
| **缺课** | ❌ | 有档案 + 未生成课评(头部人数自动体现) |
|
||||
|
||||
### 11.2 出勤信息位置
|
||||
|
||||
出勤数据直接体现在班级周汇总文件中:
|
||||
|
||||
**头部信息**(一行搞定):
|
||||
```markdown
|
||||
> 班级人数:{N}人(出勤{M}人,缺勤{K}人)
|
||||
```
|
||||
|
||||
**课评状态表**(已有,兼做出勤记录):
|
||||
```markdown
|
||||
| 学生 | 状态 | 类型 | 操作 |
|
||||
|:-----|:----:|:----:|:----:|
|
||||
| 乔乔 | ✅ 已保存 | 常规 | [查看] |
|
||||
| 小红 | ✅ 已保存 | 补课 | [查看] |
|
||||
| 小明 | ✅ 已保存 | 体验 | [查看] |
|
||||
```
|
||||
|
||||
### 11.3 查看出勤
|
||||
|
||||
| 指令 | 功能 | 返回内容 |
|
||||
|:-----|:-----|:---------|
|
||||
| `查看出勤` | 查看本周各班级出勤 | 读取各班级汇总头部信息汇总 |
|
||||
| `查看{班级}出勤` | 查看指定班级 | 返回该班级汇总的头部+状态表 |
|
||||
| `标记缺课 {学生}` | 手动标记缺课 | 在班级汇总中添加缺课记录 |
|
||||
|
||||
---
|
||||
|
||||
### 10.3 自动触发条件
|
||||
|
||||
#### 触发时机
|
||||
|
||||
| 场景 | 触发动作 | 自动保存 |
|
||||
|:-----|:---------|:--------:|
|
||||
| 单学生课评生成完成 | 立即触发 | 班级汇总 + 个人档案(双轨)|
|
||||
| 批量课评全部生成完成 | 全部生成后批量触发 | 班级汇总 + 个人档案(双轨,批量)|
|
||||
| 课评修改完成 | 立即触发 | 班级汇总 + 个人档案(双轨,更新)|
|
||||
|
||||
#### 自动保存优先级
|
||||
#### 待补存队列处理
|
||||
|
||||
```
|
||||
优先级1(必须成功):班级周汇总文件写入
|
||||
↓ 成功
|
||||
优先级2(允许失败):个人档案写入
|
||||
↓ 失败
|
||||
加入待补存队列,下次触发时重试
|
||||
检测到待补存课评(2条):
|
||||
|
||||
1. 乔乔 - 第7周发现世界
|
||||
状态:班级汇总已保存,个人档案保存失败
|
||||
原因:磁盘临时满
|
||||
[立即补存] [忽略]
|
||||
|
||||
2. 昊昊 - 第7周发现世界
|
||||
状态:班级汇总已保存,个人档案保存失败
|
||||
原因:权限被拒绝
|
||||
[立即补存] [忽略]
|
||||
|
||||
[全部补存]
|
||||
```
|
||||
|
||||
### 10.4 教师交互指令
|
||||
|
||||
#### 查看类指令
|
||||
|
||||
| 指令 | 功能 | 返回内容 |
|
||||
|:-----|:-----|:---------|
|
||||
| `查看{学生}` | 查看指定学生课评详情 | 完整课评内容 + 状态 + 操作按钮 |
|
||||
| `查看全部` | 查看所有已生成课评 | 列表视图,含快速操作 |
|
||||
| `查看本周` | 查看本周班级汇总 | 打开本周班级汇总文件 |
|
||||
|
||||
#### 修改类指令
|
||||
|
||||
| 指令 | 功能 | 触发动作 |
|
||||
|:-----|:-----|:---------|
|
||||
| `修改{学生}:{内容}` | 修改指定学生课评 | 直接编辑,更新班级汇总和个人档案 |
|
||||
| `重生成{学生}` | 完全重新生成 | 删除原课评,重新生成,自动双轨保存 |
|
||||
| `删除{学生}` | 删除该学生课评 | 从班级汇总和个人档案中删除(保留记录)|
|
||||
|
||||
### 10.5 批量生成界面
|
||||
### 7.9 批量生成界面
|
||||
|
||||
#### 生成完成展示
|
||||
|
||||
@@ -795,223 +621,7 @@ def append_evaluation_to_archive(student, new_evaluation):
|
||||
━━━━━━━━━━━━━━━━━━━━━━━
|
||||
```
|
||||
|
||||
### 10.6 失败处理机制
|
||||
|
||||
#### 自动保存失败场景
|
||||
|
||||
| 失败类型 | 处理方式 | 教师感知 | 补偿机制 |
|
||||
|:---------|:---------|:---------|:---------|
|
||||
| 班级汇总写入失败 | 立即重试3次,仍失败则报错 | 显示错误提示 | 手动重试按钮 |
|
||||
| 个人档案写入失败 | 标记FAILED,加入待补存队列 | 静默处理,下次提示 | 自动补存 |
|
||||
| 并发冲突(班级) | 自动合并(追加模式) | 无感知 | 自动解决 |
|
||||
| 并发冲突(个人) | 队列化处理,串行重试 | 延迟1-2秒 | 自动重试 |
|
||||
| 磁盘满/权限不足 | 加入待补存队列,提醒教师 | 显示警告 | 手动触发补存 |
|
||||
|
||||
#### 待补存队列处理
|
||||
|
||||
```
|
||||
检测到待补存课评(2条):
|
||||
|
||||
1. 乔乔 - 第7周发现世界
|
||||
状态:班级汇总已保存,个人档案保存失败
|
||||
原因:磁盘临时满
|
||||
[立即补存] [忽略]
|
||||
|
||||
2. 昊昊 - 第7周发现世界
|
||||
状态:班级汇总已保存,个人档案保存失败
|
||||
原因:权限被拒绝
|
||||
[立即补存] [忽略]
|
||||
|
||||
[全部补存]
|
||||
```
|
||||
|
||||
### 10.7 修改规则
|
||||
|
||||
#### 支持修改的范围
|
||||
|
||||
| 修改类型 | 示例 | 处理方式 | 字数限制 |
|
||||
|:---------|:-----|:---------|:--------:|
|
||||
| 词语替换 | "搭建"→"拼搭" | 直接替换 | 不影响 |
|
||||
| 称呼修改 | "乔乔"→"昕乔" | 全文替换 | 不影响 |
|
||||
| 内容补充 | 在"完成了"后添加"还帮助了同伴" | 插入文本 | 单条≤50字 |
|
||||
| 内容删除 | 删除"这个调整值得注意" | 删除文本 | 单条≤50字 |
|
||||
| 情绪调整 | "开心"→"兴奋" | 替换关键词 | 不影响 |
|
||||
|
||||
#### 不支持修改的场景(需重生成)
|
||||
|
||||
- 改变课评结构(如从3段改为4段)
|
||||
- 改变评价基调(从负面改为正面)
|
||||
- 补充大量内容(>100字)
|
||||
- 改变课程主题理解
|
||||
|
||||
#### 修改流程
|
||||
|
||||
```
|
||||
教师:修改乔乔:把"搭建"改为"拼搭"
|
||||
↓
|
||||
AI定位班级汇总中乔乔的课评
|
||||
↓
|
||||
执行替换 → 字数检查 → 质量检查
|
||||
↓
|
||||
更新班级汇总文件
|
||||
↓
|
||||
保存成功
|
||||
↓
|
||||
同步更新个人档案(如有)
|
||||
```
|
||||
|
||||
### 10.8 个人档案存储格式规范
|
||||
|
||||
#### 文件结构
|
||||
|
||||
个人档案`memory/student/{班级}/{学生名}/历史课评记录.md`必须遵循以下结构:
|
||||
|
||||
```markdown
|
||||
# 历史课评记录
|
||||
|
||||
> 按时间倒序记录所有课后评价(最新课评始终在最上方)
|
||||
|
||||
## 学生信息
|
||||
- **姓名**:{学生姓名}
|
||||
- **班级**:{班级名称}
|
||||
- **建档日期**:{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条)
|
||||
...
|
||||
---
|
||||
```
|
||||
|
||||
#### 追加新课的算法
|
||||
|
||||
当保存新课评到个人档案时,必须:
|
||||
|
||||
```python
|
||||
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. 报告修复结果
|
||||
```
|
||||
|
||||
### 10.9 自动双轨保存伪代码
|
||||
|
||||
```python
|
||||
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="已保存")
|
||||
```
|
||||
|
||||
### 10.10 状态管理面板
|
||||
### 7.10 状态管理面板
|
||||
|
||||
在班级汇总文件顶部自动维护状态面板:
|
||||
|
||||
@@ -1049,7 +659,7 @@ students:
|
||||
| 小强 | ⚠️ 保存失败 | [重试] [查看] |
|
||||
```
|
||||
|
||||
### 10.11 快捷指令速查
|
||||
### 7.11 快捷指令速查
|
||||
|
||||
| 场景 | 指令 | 效果 |
|
||||
|:-----|:-----|:-----|
|
||||
@@ -1061,9 +671,48 @@ students:
|
||||
|
||||
---
|
||||
|
||||
## 十二、其他功能
|
||||
## 八、出勤统计(嵌入班级汇总)
|
||||
|
||||
### 12.1 快速编辑功能
|
||||
> 出勤信息直接记录在班级周汇总文件中,无需独立的出勤统计文件
|
||||
|
||||
### 8.1 出勤判定规则
|
||||
|
||||
| 状态 | 图标 | 判定方式 |
|
||||
|:-----|:----:|:---------|
|
||||
| **出勤** | ✅ | 有档案 + 已生成课评 |
|
||||
| **补课** | 🔄 | 档案在其他班级 + 来本班上课(课评状态表标注) |
|
||||
| **体验/临时** | 📝 | 无档案 + 已生成课评(课评状态表标注) |
|
||||
| **缺课** | ❌ | 有档案 + 未生成课评(头部人数自动体现) |
|
||||
|
||||
### 8.2 出勤信息位置
|
||||
|
||||
出勤数据直接体现在班级周汇总文件中:
|
||||
|
||||
**头部信息**(一行搞定):
|
||||
```markdown
|
||||
> 班级人数:{N}人(出勤{M}人,缺勤{K}人)
|
||||
```
|
||||
|
||||
**课评状态表**(已有,兼做出勤记录):
|
||||
```markdown
|
||||
| 学生 | 状态 | 类型 | 操作 |
|
||||
|:-----|:----:|:----:|:----:|
|
||||
| 乔乔 | ✅ 已保存 | 常规 | [查看] |
|
||||
| 小红 | ✅ 已保存 | 补课 | [查看] |
|
||||
| 小明 | ✅ 已保存 | 体验 | [查看] |
|
||||
```
|
||||
|
||||
### 8.3 查看出勤
|
||||
|
||||
| 指令 | 功能 | 返回内容 |
|
||||
|:-----|:-----|:---------|
|
||||
| `查看出勤` | 查看本周各班级出勤 | 读取各班级汇总头部信息汇总 |
|
||||
| `查看{班级}出勤` | 查看指定班级 | 返回该班级汇总的头部+状态表 |
|
||||
| `标记缺课 {学生}` | 手动标记缺课 | 在班级汇总中添加缺课记录 |
|
||||
|
||||
---
|
||||
|
||||
## 九、快速编辑功能
|
||||
|
||||
支持小修改直接编辑,无需重新生成:
|
||||
|
||||
@@ -1074,18 +723,3 @@ students:
|
||||
```
|
||||
|
||||
**限制**:单次修改不超过50字,单篇累计不超过100字。超出限制建议重新生成。
|
||||
|
||||
### 12.2 体验学生转正
|
||||
|
||||
当体验学生连续上课达到3次时,AI主动提示转正建议:
|
||||
|
||||
```
|
||||
💡 转正建议
|
||||
|
||||
张小明已连续上3节课(第5周、第6周、第7周)
|
||||
建议为其创建正式档案,便于追踪完整成长轨迹。
|
||||
|
||||
[创建正式档案] [继续体验] [下周再提醒]
|
||||
```
|
||||
|
||||
**快捷指令**:`小明转正` 或 `小明[正式]`
|
||||
|
||||
Reference in New Issue
Block a user