初始化课评系统仓库:包含规则配置、学生档案、课程教案、班级汇总

This commit is contained in:
qiuyan
2026-05-08 14:15:00 +08:00
commit 16af260a11
300 changed files with 30338 additions and 0 deletions

View File

@@ -0,0 +1,525 @@
---
name: keping-advanced
description: 穹狼乐高编程高级课评生成Skill。当用户需要生成个性化课评、写课后反馈、创建学生评价时使用。根据学生画像、课程教案、历史课评、学期周数等多维度信息自动生成180-350字专业课评根据输入丰富度弹性调整。支持自动周数计算和主题关联。采用"生成即双轨保存"流程:课评生成后立即自动保存到班级周汇总和个人档案,无需教师确认。同时自动更新出勤统计。支持补课/体验学生的灵活处理可仅保存到班级周汇总。适用于2.5岁-小学四年级学生,支持幼儿积木、少儿编程、机器人竞赛等多种课程类型。触发词:/课评、/keping、/写课评、生成课评。
version: 3.1.0
author: 穹狼教学团队
---
# 高级课评生成 Skill
## 功能概述
本Skill根据学生画像、课程教案、历史表现等多维度信息自动生成个性化课后评价180-350字根据输入丰富度弹性调整
### 核心能力
- 读取并分析学生画像档案
- 匹配课程教案提取知识点
- 回顾近10次历史课评找规律
- 结合本节课实时表现
- 生成千人千面差异化课评
- 自动保存并更新成长记录
---
## 8步执行流程v3.1 生成即双轨保存模式 + 出勤统计自动更新)
```
┌─────────────────────────────────────────────────────────────────────────┐
│ Step 1: 读取学生用户画像 │
│ ├── 情况A学生档案存在 → 正常读取 │
│ └── 情况B学生档案不存在补课/体验学生)→ 标记类型 │
│ Step 2: 读取对应课程的课评规则 │
│ Step 3: 读取本节课教案内容(含周数计算) │
│ Step 4: 读取该学生近10次历史课评如存在
│ Step 5: 结合教师提供的本节课表现 │
│ Step 6: 生成180-350字个性化课评根据输入丰富度弹性调整
│ ↓ 【自动生成】 │
│ Step 7: 【自动双轨保存】 │
│ ├── 7.1 保存到班级周汇总:`memory/class-evaluation-summary/第X周/{班级}.md` │
│ ├── 7.2 保存到个人历史课评(如有档案): │
│ │ ├── 常规学生:`memory/student/{班级}/{学生}/历史课评记录.md` │
│ │ └── 补课学生:同时保存到补课班级汇总 + 原班级个人档案 │
│ └── 7.3 更新出勤统计:`memory/class-evaluation-summary/第X周/出勤统计.md` │
│ Step 8: 展示保存结果,教师可随时查看/修改 │
└─────────────────────────────────────────────────────────────────────────┘
```
> **重要变更**
> 1. **v3.1 生成即双轨保存**:课评生成后立即自动保存,无需教师确认
> 2. **自动更新出勤统计**:每次保存自动更新出勤统计文件
> 3. **全程可修改**:保存后教师可随时修改,修改自动同步到两个位置
### 详细流程说明
#### Step 1: 读取学生用户画像并确定称呼方式
**操作**
1. **检查学生档案是否存在**
- 检查路径:`memory/student/{班级}/{学生名}/`
- 检查文件:`用户画像.md``历史课评记录.md`
2. **情况A学生档案存在常规学生**
- 读取 `memory/student/{班级}/{学生名}/用户画像.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 | 杯子盖球 |
| AI03 | 第5周 | AI03-005 | 项目整合 |
**3.3 提取教案内容**
- 根据课程代码DISC-005, SPIKE-005定位教案
- 提取:
- 课程主题
- 核心知识点
- 教学目标
- 评价维度
- 适龄提示
**路径**`memory/lesson/{课程目录}/{课程代码}.md`
**输出**`lesson_content` 对象(含`week_number`周数信息)
---
#### Step 4: 读取该学生近10次历史课评
**操作**
- 读取 `memory/student/{班级}/{学生名}/历史课评记录.md`
- 提取最近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**等待教师确认后再执行Step7**
---
#### Step 7: 双轨保存课评(需教师确认后执行)
**触发条件**:教师确认课评内容无误后
**操作逻辑**
```
IF student_type == "regular"(常规学生):
├── 7.1 保存到班级周汇总
│ └── 路径:`memory/class-evaluation-summary/第X周/{班级}.md`
└── 7.2 保存到个人历史课评
└── 路径:`memory/student/{班级}/{学生}/历史课评记录.md`
ELSE IF student_type == "guest"(补课/体验学生):
└── 仅保存到班级周汇总
└── 路径:`memory/class-evaluation-summary/第X周/{班级}.md`
└── 标记:(补课/体验学生,无个人档案)
```
**班级周汇总文件结构**
```markdown
# 发现世界-周四19点 第7周汇总
## 学生课评列表
### 梁昕乔(常规学生)✓
[课评内容]
- 状态:已确认
- 个人档案:已同步
### 钟昀昊(常规学生)✓
[课评内容]
- 状态:已确认
- 个人档案:已同步
### 张小明(补课学生)⚠️
[课评内容]
- 状态:已确认
- 个人档案:未创建(补课/体验学生)
- 备注:如需创建档案,请回复「为张小明创建档案」
```
**输出**:保存确认 + 文件路径 + 学生类型标记
---
#### Step 8: 更新学生成长记录(常规学生执行,补课/体验学生跳过)
**触发条件**
- 仅对 `student_type = "regular"` 的学生执行
- 补课/体验学生(`student_type = "guest"`)跳过此步骤
**操作**
- 更新 `memory/student/{班级}/{学生名}/用户画像.md` 中的成长轨迹表
- 更新 `memory/student/{班级}/{学生名}/历史课评记录.md`
- 添加新记录:
- 时间:本次课日期
- 课程:课程代码
- 关键表现:一句话摘要
- 能力变化:+/- 标记
**补课/体验学生的后续处理**
如果教师后续决定为补课/体验学生创建档案:
1. 创建文件夹:`memory/student/{班级}/{学生名}/`
2. 创建通用用户画像
3. 将该学生的历史课评从班级周汇总迁移到个人档案
4. 标记为常规学生
**输出**:更新确认
---
## 输入格式规范
**详见**[`.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`
格式根据学生年龄段自动选择。
---
## 依赖文件路径
```
# 学生画像
memory/student/{班级}/{学生名}/用户画像.md
# 课程教案
memory/lesson/01-发现世界-螺丝刀/{课程代码}.md
memory/lesson/08-SPIKE/{课程代码}.md
memory/lesson/09-AI03-AICODE/{课程代码}.md
# **学期周数与主题映射(新增)**
.claude/rules/15-semester-weeks.md
# **班级周汇总(新增 - 按周期分班级)**
memory/class-evaluation-summary/第X周/{班级}.md
# 学期周数(保持独立)
.claude/rules/15-semester-weeks.md
# 风格规则已合并至10-style.md
.claude/rules/10-style.md # 全年龄段风格规范
# 评价维度已合并至00-core.md
.claude/rules/00-core.md # 核心规则(含评价维度)
# 历史课评
memory/student/{班级}/{学生名}/历史课评记录.md
# 输出目录
memory/student/{班级}/{学生名}/课评/
memory/class-evaluation-summary/第X周/ # **新增**:按周期分班级的周汇总
```
---
## 千人千面实现
### 同一节课,不同学生的课评差异
**示例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 天平秤 🔍
乔乔本周探索了"天平秤",学习了杠杆原理——两边的重量相等时天平就会平衡 ✨
这节课乔乔状态特别好,对天平主题很熟悉,老师一讲解就能跟上,话题很多,搭建速度也很快,展现出很好的学习热情。全程专注且开心,一上课就表现出浓厚兴趣,还主动和旁边的小朋友分享自己的想法,互动特别积极。和之前相比,乔乔在动手方面表现越来越稳定,能快速理解结构原理,这个进步值得肯定 💪✨
在家可以用衣架和绳子做一个简易天平,比较不同玩具的重量,巩固今天的平衡概念 🏠
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```
---
## 版本历史
| 版本 | 日期 | 更新内容 |
|-----|------|---------|
| **v2.5.0** | **2026-05-01** | **统一字数标准**将课评字数统一为弹性范围180-350字与系统规则保持一致 |
| v2.4.0 | 2026-04-16 | **补课/体验学生支持**:新增对补课、体验课学生的处理逻辑——无档案时提醒教师,可选择仅保存到班级周汇总,不强制创建个人档案 |
| v2.3.0 | 2026-04-15 | **双轨存储**:新增班级周汇总功能,确认后同时保存到 `class-evaluation-summary/`(班级视角)和 `student/`(个人视角),便于集中查看当周全班表现 |
| v2.2.0 | 2026-04-04 | **流程优化**:新增"确认后保存"模式Step 6生成后等待教师确认确认后再执行Step 7-8保存避免自动保存错误内容 |
| v2.1.0 | 2026-04-02 | **重大更新**支持学期周数自动计算基准3月2日课程主题自动匹配课评内容关联当周知识点Emoji段落末尾插入删除正文周数显示 |
| v2.0.0 | 2026-03-25 | 高级版本支持8步完整流程历史课评回顾千人千面差异化 |
| v1.0.0 | 2026-03-25 | 基础版本,单维度课评生成 |
---
*维护者:穹狼教学团队*
*最后更新2026-04-16*