---
name: keping-advanced
description: 穹狼乐高编程高级课评生成Skill。当用户需要生成个性化课评、写课后反馈、创建学生评价时使用。根据学生画像、课程教案、历史课评、学期周数等多维度信息，自动生成180-350字专业课评（根据输入丰富度弹性调整）。支持自动周数计算和主题关联。采用"生成即自动保存"流程：课评生成后立即自动保存到 feedback/ 个人课评文件（课评规范V1.0标准），无需教师确认。支持补课/体验学生的灵活处理。适用于2.5岁-小学四年级学生，支持幼儿积木、少儿编程、机器人竞赛等多种课程类型。交互式流程：输入 /周几（如 /周六）、/今天 或 /交互式 启动友好的多轮对话流程。触发词：/课评、/keping、/写课评、生成课评、/周六、/今天、/交互式、/批量。
version: 4.3.0
author: 穹狼教学团队
---

# 高级课评生成 Skill

## 命令识别与流程选择

本技能根据不同的触发命令，自动选择相应的流程：

| 触发命令 | 流程选择 | 说明 |
|---------|---------|------|
| **`/周几`** | **交互式流程（推荐）** | **按上课日快速索引**，如 `/周六`、`/周日`、`/周四` |
| `/今天` | 交互式流程（今天的班级） | 自动判断当天星期几，启动交互式流程 |
| `/交互式` | 交互式流程（通用） | 启动交互式流程，显示完整班级列表 |
| `/批量` | 批量输入模式 | 启动批量输入模式 |
| `/课评`/`/keping`/`/写课评`/`生成课评` | 标准模式 | 需要用户提供日期、班级、学生表现等完整信息 |

## 交互式流程实现（v4.3）

### 第一步：按上课日快速索引

当用户输入 `/周六`（或 `/今天`、`/周四` 等）时，执行以下操作：

1. 根据星期几匹配对应班级（如 `/周六` → 匹配所有含"周六"的班级目录）
2. 如果输入的 `/今天`，自动计算当天星期几再匹配
3. 读取 `.claude/memory/class/` 目录，筛选匹配的班级
4. 使用 AskUserQuestions 工具，以单选形式展示匹配的班级选项
5. 添加"其他班级（手动输入）"选项
6. 记录用户选择的班级

**工作日对照表**：

| 指令 | 匹配班级示例 |
|:-----|:-------------|
| `/周四` | 发现世界-周四19点 |
| `/周五` | AICODE03小Q周五1900 |
| `/周六` | 发现世界-周六09点、Wedo创造世界-周六1030、AICODE03小Q周六1400 等 |
| `/周日` | 发明世界-周日14点、SPIKE02-周日1030 等 |

**AskUserQuestions 参数配置（以 /周六 为例）：**
```
{
  "questions": [
    {
      "question": "请选择今天要写课评的班级",
      "header": "班级选择",
      "options": [
        "发现世界-周六09点",
        "Wedo创造世界-周六1030",
        "AICODE03小Q周六1400",
        "Wedo创造世界-周六16点",
        "发现世界-周六19点",
        "手动输入其他班级名称"
      ],
      "multiSelect": false
    }
  ]
}
```

### 第二步：学生名单加载（B模式分开展示）

选择班级后：
1. 检查该班级目录：`.claude/memory/class/{班级}/`
2. 查找该班级下的现有学生（有 profile.md 的子目录）
3. 展示学生列表（B模式：每人独立显示，含状态标记按钮）
4. 如果无学生，提示教师手动输入学生名单

**B模式展示格式**：

```
┌─ 学生1: 乔乔 ─────────────────────────┐
│  状态：[✅出勤] [🚫请假] [📝体验] [🔄补课]  │
│  表现：_____________________________    │
└────────────────────────────────────────┘

┌─ 学生2: 昊昊 ─────────────────────────┐
│  状态：[✅出勤] [🚫请假] [📝体验] [🔄补课]  │
│  表现：_____________________________    │
└────────────────────────────────────────┘
...
```

### 第三步：一次性批量填写学生表现

教师在输入框中一次性输入所有学生表现（多行）：

```
乔乔：gj5→zd3→zt ↑++
昊昊：慢热→zd3→反复调 →
小明 体验
小红：搭了3层，开心 ↑
```

**标记快捷操作**：
- `{学生} 请假` → 标记为请假（不生成课评）
- `{学生} 体验` → 标记为体验学生（仅汇总）
- `{学生} 补课` → 标记为补课学生（跨班级自动保存）
- `{学生} 出勤` → 恢复默认出勤状态

### 第四步：确认并批量生成

展示已填写的所有学生预览汇总表，待教师确认后一次性生成所有课评。

**汇总格式**：

```
| 学生 | 状态 | 表现摘要 | 标记 |
|:-----|:----:|:---------|:----:|
| 乔乔 | ✅ 待生成 | gj5→zd3→zt ↑++ | 出勤 |
| 昊昊 | ✅ 待生成 | 慢热→zd3→反复调 → | 出勤 |
| 小明 | 📝 仅汇总 | 体验课 | 体验 |
| 小红 | ✅ 待生成 | 搭3层 ↑ | 出勤 |

[全部生成] → 一次性生成所有课评
```

---

## 功能概述

本Skill根据学生画像、课程教案、历史表现等多维度信息，自动生成个性化课后评价（180-350字，根据输入丰富度弹性调整）。

### 核心能力
- 读取并分析学生画像档案
- 匹配课程教案提取知识点
- 回顾近10次历史课评找规律
- 结合本节课实时表现
- 生成千人千面差异化课评
- 自动保存并更新成长记录

---

## 8步执行流程（v4.0 课评规范V1.0标准 + 自动保存）

```
┌─────────────────────────────────────────────────────────────────────────┐
│  Step 1: 读取学生用户画像                                                │
│       ├── 情况A：学生档案存在 → 正常读取 `.claude/memory/class/{班级}/{学生}/profile.md` │
│       └── 情况B：学生档案不存在（补课/体验学生）→ 标记类型                  │
│  Step 2: 读取对应课程的课评规则                                          │
│  Step 3: 读取本节课教案内容（含周数计算）                                │
│  Step 4: 读取该学生近10次历史课评（如存在，从 feedback/ 目录读取）       │
│  Step 5: 结合教师提供的本节课表现                                        │
│  Step 6: 生成180-350字个性化课评（根据输入丰富度弹性调整）               │
│       ↓ 【自动生成】                                                      │
│  Step 7: 【自动保存】（课评规范V1.0标准）                                │
│       ├── 7.1 保存个人课评文件：`.claude/memory/class/{班级}/{学生}/feedback/YYYYMMDD_课程编号-课次.md` │
│       ├── 7.2 班级总结：`.claude/memory/class/{班级}/summaries/YYYYMMDD_课程编号-课次_班级反馈.md` │
│       └── 7.3 补课/体验学生：补课班级 `补课/` 目录 + 原班级（双向追踪）       │
│  Step 8: 展示保存结果，教师可随时查看/修改                               │
└─────────────────────────────────────────────────────────────────────────┘
```

> **重要变更**：
> 1. **v4.0 课评规范V1.0标准**：改用 `.claude/memory/class/` 目录结构，个人课评存为 `feedback/YYYYMMDD_课程编号-课次.md`
> 2. **课程编号统一**：AI编程班统一用 `AICODE` 前缀（如 AICODE03），C++班统一用 `CSP` 前缀
> 3. **补课双向追踪**：补课学生在原班级侧生成追踪文件 `(补课-去班级名).md`
> 4. **全程可修改**：保存后教师可随时修改，修改自动同步

### 详细流程说明

#### Step 1: 读取学生用户画像并确定称呼方式

**操作**：
1. **检查学生档案是否存在**：
   - 检查路径：`.claude/memory/class/{班级}/{学生}/`
   - 检查文件：`profile.md`

2. **情况A：学生档案存在（常规学生）**
   - 读取 `.claude/memory/class/{班级}/{学生}/profile.md`
   - 提取完整信息：气质类型、学习风格、历史表现等
   - **标记类型**：`student_type = "regular"`

3. **情况B：学生档案不存在（补课/体验学生）**
   - **提醒教师**：
     ```
     ⚠️ 检测到新学生：[学生姓名]
     
     该学生暂无个人档案，可能是：
     1. 补课学生（已有档案在其他班级）
     2. 体验课学生（首次到店试听）
     3. 新转入学生（尚未建立档案）
     
     是否需要为该学生创建个人档案？
     [是，创建档案]  [否，仅保留在班级周汇总]
     ```
   - **标记类型**：`student_type = "guest"`（补课/体验）
   - 使用通用模板生成课评
   - **称呼方式**：使用输入姓名（不去除姓氏）

**姓名处理详细规则**：

1. **谐音纠正（输入匹配）**：
   - **问题**：教师输入可能有谐音词（如"小鱼"→黄晓瑜、"君玲"→罗钧龄）
   - **解决**：将输入姓名与班级学生名单进行拼音/字形相似度匹配
   - **匹配优先级**：
     - 相似度>90%：自动纠正，不打扰
     - 相似度70-90%：生成前提示确认
     - 相似度<70%：要求重新输入
   - **示例**：
     - 输入"小鱼" → 匹配"黄晓瑜"（小名/昵称关联）
     - 输入"良心桥" → 纠正为"梁昕乔"
     - 输入"中云浩" → 纠正为"钟昀昊"

2. **称呼方式确定（输出优先级）**：
   ```
   优先级1：小名/昵称（画像中"nickname"字段，如"小鱼"）
   优先级2：去姓称名（双字名，如"晓瑜""钧龄""思霖"）
   优先级3：叠字称呼（单字名，如"昊昊""婷婷"）
   优先级4：全名（特殊要求，如"黄晓瑜"）
   ```

3. **称呼示例**：
   | 全名 | 小名/昵称 | 去姓称名 | 课评最终称呼 |
   |------|----------|---------|-------------|
   | 黄晓瑜 | 小鱼 | 晓瑜 | 小鱼（昵称优先）|
   | 罗钧龄 | 无 | 钧龄 | 钧龄（去姓）|
   | 简思霖 | 无 | 思霖 | 思霖（去姓）|
   | 梁昕乔 | 乔乔 | 昕乔 | 乔乔（小名优先）|
   | 钟昀昊 | 无 | 昀昊 | 昀昊（去姓）|
   | 张昊 | 无 | 昊昊（叠字）| 昊昊（单字名叠字）|

**输出**：`student_profile` 对象（含`display_name`课评用称呼）

---

#### Step 2: 读取对应课程的课评规则
**操作**：
- 根据课程类型（幼儿/小学低/小学中）读取对应风格规则：
  - 幼儿（2.5-6岁）：`.claude/rules/10-style.md`（第3.1节）
  - 小学低年级（6-8岁）：`.claude/rules/10-style.md`（第3.2节）
  - 小学中高年级（8-10岁）：`.claude/rules/10-style.md`（第3.3节）
- 提取：
  - 字数要求（弹性范围180-350字）
  - 必写模块结构
  - 语言风格要求
  - 禁用词汇

**输出**：`style_rules` 对象

---

#### Step 3: 读取本节课教案内容（含周数计算）
**操作**：

**3.1 周数自动计算（新增）**
- 读取学期周数规则：`.claude/rules/15-semester-weeks.md`（保持独立，未合并）
- **基准设定**：2026年3月2日 = 第一周
- **计算公式**：`周数 = Floor((当前日期 - 3月2日) / 7) + 1`
- **周数速查**（2026春季学期）：
  - 3月2日-8日 = 第1周
  - 3月9日-15日 = 第2周
  - 3月16日-22日 = 第3周
  - 3月23日-29日 = 第4周
  - **3月30日-4月5日 = 第5周（当前周）**
  - 以此类推...

**3.2 课程代码自动匹配（新增）**
根据班级类型和周数，自动匹配课程代码：

| 班级类型 | 周数 | 自动匹配课程代码 | 主题 |
|---------|:---:|:---------------:|:-----|
| 发现世界 | 第5周 | DISC-005 | 天平秤 |
| SPIKE | 第5周 | SPIKE-005 | 杯子盖球 |
| AI编程 | 第5周 | AICODE03-005 | 项目整合 |

**3.3 提取教案内容**
- 根据课程代码（如：DISC-005, SPIKE-005）定位教案
- 提取：
  - 课程主题
  - 核心知识点
  - 教学目标
  - 评价维度
  - 适龄提示

**路径**：`.claude/memory/lesson/{课程目录}/{课程代码}.md`

**输出**：`lesson_content` 对象（含`week_number`周数信息）

---

#### Step 4: 读取该学生近10次历史课评
**操作**：
- 读取 `.claude/memory/class/{班级}/{学生}/feedback/` 目录下的所有课评文件
- 提取最近10条记录（按文件名日期排序）
- 分析：
  - 能力发展趋势
  - 进步轨迹
  - 反复出现的问题
  - 优势稳定领域
  - 与本次课可对比的点

**输出**：`history_reviews` 数组 + `trend_analysis` 分析

---

#### Step 5: 结合教师提供的本节课表现
**操作**：
- 解析教师输入的核心表现描述
- 提取关键行为词（如：主动、坚持、创新、求助等）
- 识别情绪状态
- 判断与常态的差异

**输入格式**：
```
学生:小明 表现:观望5分钟→主动搭3层→自己调高度 情绪:稳定 对比:比上周主动
```

**输出**：`current_performance` 对象

---

#### Step 6: 生成200-300字个性化课评
**核心逻辑**：

1. **使用正确的称呼**：
   - 全程使用 `display_name`（Step1确定的小名/去姓/叠字）
   - 禁止使用全名（除非家长特殊要求）

2. **插入Emoji（每段末尾）**：
   - **幼儿版**（2.5-6岁）：
     - **模块1**（课程知识点）：🔍
     - **模块2**（掌握程度）：✨ 或 ✋
     - **模块3**（课程环节与目标达成）：🎯 或 📋
     - **模块4**（成长亮点）：🌱 或 💪
     - **模块5**（课后建议）：🏠 或 🎮
     - 总计10-15个emoji，每段末尾1-2个
   - **小学低年级版**（6-8岁，Kitten/SPIKE）：
     - **模块1**（课程知识点）：💡 或 📚
     - **模块2**（掌握程度）：✓ 或 ⚡
     - **模块3**（课程环节与目标达成）：🎯 或 ✅
     - **模块4**（成长亮点）：📈 或 💪
     - **模块5**（课后建议）：🏠 或 🔧
     - 总计5个emoji，每段末尾1个，简洁专业
   - **小学高年级版**（8-10岁，机器人/AI）：
     - **模块1**（课程知识点）：⚙️ 或 🤖
     - **模块2**（掌握程度）：📊 或 ⚡
     - **模块3**（课程环节与目标达成）：🎯 或 ✅
     - **模块4**（成长亮点）：📈 或 🚀
     - **模块5**（课后建议）：🏠 或 🔧
     - 总计5个emoji，每段末尾1个，体现竞技感

3. **确定侧重点**（基于画像差异化）：
   - 活泼型学生 → 突出创意和参与热情
   - 谨慎型学生 → 肯定尝试勇气
   - 敏感型学生 → 强调支持和情绪管理
   - 慢热型学生 → 认可渐入佳境的过程

4. **选择对比维度**（基于历史）：
   - 与上节课比：最近进步
   - 与入学初比：长期成长
   - 与班级常态比：独特表现

5. **首次上课/补课表述规则（重要）**：
   - **原则**：仅在教师输入中**明确写明**"第一次上课"、"新学生"等关键词时，才能在课评中提及相关内容
   - **补课特殊情况**：若学生是**补课**（非首次到店），即使第一次上这节课，也**不要**写"第一次上课"、"第一次接触"等表述
   - **区分方式**：
     - 教师写"新学生"/"第一次来"/"首次上课" → 可写"第一次上课"
     - 教师写"补课"/"插班" → 不写"第一次上课"，即使第一次上这节课
   - **示例**：
     - ✅ 教师输入"余正逸是新学生，第一次来上课" → 课评可写"正逸这节课是第一次接触天平秤"
     - ✅ 教师输入"余正逸是补课" → 课评不写"第一次"，可写"正逸这节课表现..."
     - ❌ 教师未提及，但AI推断是补课 → 课评不得写"作为补课学生"、"第一次接触"等

6. **构建3段内容**（新段落结构）：

   **段落分配**：
   - **第1段**：课程知识点（30-40字）- 介绍本节课核心知识/技能
   - **第2段**：课堂细节长段落（100-130字）- 包含掌握程度、课程环节表现、成长亮点等详细描述
   - **第3段**：课后建议（30-40字）- 家庭延伸活动建议

   | 内容模块 | 字数 | 归属段落 |
   |---------|:---:|:--------:|
   | 课程知识点 | 30-40 | 第1段 |
   | 掌握程度 | 30-40 | 第2段（长段落）|
   | 课程环节与目标达成 | 40-50 | 第2段（长段落）|
   | 成长亮点 | 40-50 | 第2段（长段落）|
   | 课后建议 | 30-40 | 第3段 |
   
   **注意**：第2段为长段落，整合掌握程度、课堂表现、成长亮点等内容，用1-2个emoji自然分隔

7. **语言风格适配**：
   - 幼儿期：温暖具体，画面感，丰富emoji
   - 小学低段：尊重专业，平等对话，简洁emoji
   - 小学高段：成长视角，数据支撑，结构化

**输出**：`evaluation_text`（180-350字，含emoji），**自动进入保存流程**

---

#### Step 7: 自动保存课评（课评规范V1.0标准，无需确认）
**触发条件**：课评生成完成后自动触发

**操作逻辑**：
```
IF student_type == "regular"（常规学生）:
    ├── 7.1 保存个人课评文件
    │   └── 路径：`.claude/memory/class/{班级}/{学生}/feedback/YYYYMMDD_课程编号-课次.md`
    │   └── 内容：三段式课评正文
    └── 7.2 保存班级总结
        └── 路径：`.claude/memory/class/{班级}/summaries/YYYYMMDD_课程编号-课次_班级反馈.md`
    
ELSE IF student_type == "guest"（补课/体验学生）:
    ├── 7.1 保存个人课评文件
    │   └── 路径：`.claude/memory/class/{补课班级}/补课/{学生}/feedback/YYYYMMDD_课程编号.md`
    └── 7.2 原班级追踪（跨班级补课）
        └── 生成追踪文件：`.claude/memory/class/{原班级}/{学生}/feedback/YYYYMMDD_课程编号(补课-去班级名).md`
```

**个人课评文件格式**：
```markdown
# {日期} | {课程代码} | {课程主题}

**课评内容**：
{三段式课评正文}

**课堂表现**（摘要）：
- 专注度：/5
- 动手操作：/5
- 问题解决：/5
- 情绪表现：{描述}

---

注意：状态通过文件名后缀自动识别
- 正常文件名 `.md` = 出勤
- `(请假).md` = 请假
- `(补课-去班级名).md` = 补课追踪
```

**输出**：保存确认 + 文件路径

---

#### Step 8: 更新学生成长记录（常规学生执行，补课/体验学生跳过）
**触发条件**：
- 仅对 `student_type = "regular"` 的学生执行
- 补课/体验学生（`student_type = "guest"`）跳过此步骤

**操作**：
- 更新 `.claude/memory/class/{班级}/{学生}/profile.md` 中的成长轨迹表
- 在 `.claude/memory/class/{班级}/{学生}/feedback/` 目录下已保存课评文件

**补课/体验学生的后续处理**：
如果教师后续决定为补课/体验学生创建档案：
1. 创建目录：`.claude/memory/class/{班级}/{学生}/`
2. 创建 `profile.md` 通用画像
3. 将该学生的历史课评从 `补课/` 目录迁移到正式 `feedback/` 目录

**输出**：更新确认

---

## 输入格式规范

**详见**：[`.claude/rules/20-workflow.md`](../../rules/20-workflow.md) — 包含极简输入、速记符号、批量输入、语音输入、补课处理等完整规范。

**快速参考**：
```
日期：4月2日
班级：发现世界-周四19点
乔乔：知道这个主题，话题多，搭建快
昊昊：活跃，认真，开心
```

---

## 输出格式（双版本）

- **学龄前版（2.5-6岁）**：表情增强型，参考 `.claude/rules/50-output-format-preschool.md`
- **小学版（6-10岁）**：结构化型，参考 `.claude/rules/51-output-format-elementary.md`

> 注：50/51输出格式文件保留了独立的排版样式示例，核心规则已合并至 `10-style.md`

格式根据学生年龄段自动选择。

---

## 依赖文件路径

```
# 学生画像（课评规范V1.0标准）
.claude/memory/class/{班级}/{学生}/profile.md
.claude/memory/class/{班级}/{学生}/feedback/

# 课程教案
.claude/memory/lesson/01-发现世界-螺丝刀/{课程代码}.md
.claude/memory/lesson/08-SPIKE/{课程代码}.md
.claude/memory/lesson/09-AICODE03/{课程代码}.md

# 学期周数与主题映射
.claude/rules/15-semester-weeks.md

# 班级总结
.claude/memory/class/{班级}/summaries/

# 风格规则
.claude/rules/10-style.md                # 全年龄段风格规范

# 评价维度
.claude/rules/00-core.md                 # 核心规则（含评价维度、课程编号规范）
```

---

## 千人千面实现

### 同一节课，不同学生的课评差异

**示例：DISC-003 互锁结构**

| 学生 | 气质 | 侧重点 | 开头句式 |
|------|------|--------|---------|
| 梁昕乔 | 活泼型 | 快速启动、创意表现 | "昕乔今天一上课就..." |
| 钟昀昊 | 平和型+慢热 | 渐入佳境、坚持过程 | "昀昊今天用了点时间进入状态..." |
| 李怡瞳 | 平和型+初学 | 参与度、降低难度 | "怡瞳今天尝试了..." |

### 差异化策略

1. **开头差异化**：
   - 快速启动型："一上课就..."
   - 慢热型："今天用了点时间..."
   - 进步型："和上周相比..."
   - 突破型："今天终于..."

2. **侧重点差异化**：
   - 创意优势学生 → 肯定创新设计
   - 坚持性弱学生 → 突出不放弃
   - 社交活跃学生 → 强调合作分享
   - 敏感型学生 → 强调情绪管理

3. **建议差异化**：
   - 同一知识点，给不同家庭活动建议

---

## 质量检查清单

生成后自动检查（详见 `.claude/rules/00-core.md` 质量检查清单）：

- [ ] 字数 180-350 字（根据输入丰富度弹性调整）
- [ ] 5个必写模块完整
- [ ] 学生称呼正确（使用display_name）
- [ ] 课程知识点准确
- [ ] Emoji在段落末尾
- [ ] 无周数显示

---

## 异常处理

| 场景 | 处理方式 |
|------|---------|
| 未找到学生画像 | 提示建立画像，使用通用模板继续 |
| 未找到课程教案 | 提示补充教案，或教师手动输入知识点 |
| 表现描述过于简单 | 提示补充关键行为细节 |
| 字数不足 | 提示补充具体事例 |
| **补课/体验学生** | 详见 [20-workflow.md](../../rules/20-workflow.md)（第5-6节） |

> **补课/体验学生处理**、**跨班级补课自动保存**等详细规则，参见 [`.claude/rules/20-workflow.md`](../../rules/20-workflow.md)（第5-6节）和 [`CLAUDE.md`](../../../CLAUDE.md) 存储双轨制章节。

---

## 示例运行

### 示例1：极简输入（推荐）- 自动计算周数和主题

#### 输入
```
/keping 日期：4月2日 班级：发现世界-周四19点

乔乔：知道这个主题，话题多，搭建快，开心
昊昊：活跃，认真，开心
```

#### 执行过程
1. ✓ 解析日期：4月2日 → 2026-04-02
2. ✓ **计算周数**：(4月2日 - 3月2日) = 31天 → Floor(31/7) + 1 = **第5周**
3. ✓ **匹配课程**：发现世界 + 第5周 → **DISC-005 天平秤**
4. ✓ **提取主题**：杠杆原理、平衡判断、重量比较
5. ✓ 读取画像：乔乔（活泼型、快速启动、创意突出）、昊昊（平和型+慢热、渐入佳境）
6. ✓ 读取历史：10次课评，表现稳定
7. ✓ 解析表现：乔乔（快速启动+创意）、昊昊（渐入佳境+认真）
8. → **生成关联课评**：结合"天平秤"主题，强调杠杆原理探索
9. → 保存文件
10. → 更新记录

#### 输出课评（乔乔）
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【学生：梁昕乔（乔乔）】DISC-005 天平秤 🔍

乔乔本周探索了"天平秤"，学习了杠杆原理——两边的重量相等时天平就会平衡 ✨

这节课乔乔状态特别好，对天平主题很熟悉，老师一讲解就能跟上，话题很多，搭建速度也很快，展现出很好的学习热情。全程专注且开心，一上课就表现出浓厚兴趣，还主动和旁边的小朋友分享自己的想法，互动特别积极。和之前相比，乔乔在动手方面表现越来越稳定，能快速理解结构原理，这个进步值得肯定 💪✨

在家可以用衣架和绳子做一个简易天平，比较不同玩具的重量，巩固今天的平衡概念 🏠
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

---

## 版本历史

| 版本 | 日期 | 更新内容 |
|-----|------|---------|
| **v4.3.0** | **2026-05-16** | **交互式流程优化**：新增 `/周几` 快速索引指令；B模式分开展示学生 + 独立输入区 + 快捷标记按钮（请假/体验/补课/出勤）；批量输入+批量生成 |
| **v4.0.0** | **2026-05-14** | **同步课评规范V1.0**：改用 `.claude/memory/class/` 目录结构（feedback/*.md 单次文件）；统一课程编号（AI编程→AICODE，C++→CSP）；补课双向追踪（`(补课-去班级名).md`）；删除"待确认"步骤，生成即自动保存 |
| v3.1.0 | 2026-05-05 | **生成即双轨保存**：删除"待确认"状态，改为生成后立即自动保存；出勤嵌入班级汇总 |
| v2.5.0 | 2026-05-01 | **统一字数标准**：将课评字数统一为弹性范围180-350字，与系统规则保持一致 |
| v2.4.0 | 2026-04-16 | **补课/体验学生支持**：新增对补课、体验课学生的处理逻辑 |
| v2.3.0 | 2026-04-15 | **双轨存储**：新增班级周汇总功能 |
| v2.2.0 | 2026-04-04 | **流程优化**：新增确认后保存模式 |
| v2.1.0 | 2026-04-02 | **重大更新**：支持学期周数自动计算、课程主题自动匹配 |
| v2.0.0 | 2026-03-25 | 高级版本，支持8步完整流程，千人千面差异化 |
| v1.0.0 | 2026-03-25 | 基础版本 |

---

*维护者：穹狼教学团队*
*最后更新：2026-05-14*
