Initial commit: 课评反馈系统 v1.0

This commit is contained in:
2026-04-17 21:21:15 +08:00
commit c04f1d18a6
264 changed files with 23365 additions and 0 deletions

View File

@@ -0,0 +1,561 @@
---
name: keping-advanced
description: 穹狼乐高编程高级课评生成Skill。当用户需要生成个性化课评、写课后反馈、创建学生评价时使用。根据学生画像、课程教案、历史课评、学期周数等多维度信息自动生成200-300字专业课评。支持自动周数计算和主题关联。采用"生成-确认-保存"流程:先生成课评供教师审核,确认后再双轨保存到班级周汇总和个人档案。支持补课/体验学生的灵活处理可仅保存到班级周汇总。适用于2.5岁-小学四年级学生,支持幼儿积木、少儿编程、机器人竞赛等多种课程类型。触发词:/课评、/keping、/写课评、生成课评。
version: 2.4.0
author: 穹狼教学团队
---
# 高级课评生成 Skill
## 功能概述
本Skill根据学生画像、课程教案、历史表现等多维度信息自动生成个性化课后评价200-300字
### 核心能力
- 读取并分析学生画像档案
- 匹配课程教案提取知识点
- 回顾近10次历史课评找规律
- 结合本节课实时表现
- 生成千人千面差异化课评
- 自动保存并更新成长记录
---
## 8步执行流程v2.3 双轨存储模式 + 补课/体验学生支持)
```
┌─────────────────────────────────────────────────────────────────────────┐
│ Step 1: 读取学生用户画像 │
│ ├── 情况A学生档案存在 → 正常读取 │
│ └── 情况B学生档案不存在补课/体验学生)→ 提醒教师 │
│ Step 2: 读取对应课程的课评规则 │
│ Step 3: 读取本节课教案内容(含周数计算) │
│ Step 4: 读取该学生近10次历史课评如存在
│ Step 5: 结合教师提供的本节课表现 │
│ Step 6: 生成200-300字个性化课评 │
│ ↓ 【等待教师确认】 │
│ Step 7: **双轨保存**(确认后执行) │
│ ├── 7.1 保存到班级周汇总:`memory/class-evaluation-summary/第X周/{班级}.md` │
│ └── 7.2 保存到个人历史课评(可选): │
│ ├── 常规学生:`memory/student/{班级}/{学生}/历史课评记录.md` │
│ └── 补课/体验学生:暂不创建个人档案,仅保留在班级周汇总 │
│ Step 8: 更新学生成长记录(常规学生执行,补课/体验学生跳过) │
└─────────────────────────────────────────────────────────────────────────┘
```
> **重要变更**
> 1. **双轨存储模式**:确认后同时保存到班级周汇总和个人历史课评(如适用)
> 2. **补课/体验学生支持**:检测到无档案学生时提醒教师,可选择是否创建档案
### 详细流程说明
#### 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/20-style-building.md`
- 小学低年级6-8岁`.claude/rules/21-style-coding.md`
- 小学中高年级8-10岁`.claude/rules/22-style-robotics.md`
- 提取:
- 字数要求180-220 / 190-230 / 200-240
- 必写模块结构
- 语言风格要求
- 禁用词汇
**输出**`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`200-300字含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. 标记为常规学生
**输出**:更新确认
---
## 输入格式规范v3.1 支持周数自动计算)
### 极简输入(推荐)
```
日期4月2日
班级:发现世界-周四19点
乔乔:知道这个主题,话题多,搭建快
昊昊:活跃,认真,开心
```
**系统自动**:推算日期→计算周数→匹配课程代码→提取主题→生成课评
### 其他输入方式
- **标准输入**:指定课程代码
- **自然对话**:任意口语化描述
- **批量输入**Markdown表格格式
详见:`.claude/rules/30-input-format.md`
---
## 输出格式(双版本)
- **学龄前版2.5-6岁**:表情增强型,参考 `.claude/rules/50-output-format-preschool.md`
- **小学版6-10岁**:结构化型,参考 `.claude/rules/51-output-format-elementary.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/20-style-building.md # 幼儿
.claude/rules/21-style-coding.md # 小学低
.claude/rules/22-style-robotics.md # 小学中高
# 评价维度
.claude/rules/03-evaluation-dimensions.md
# 历史课评
memory/student/{班级}/{学生名}/历史课评记录.md
# 输出目录
memory/student/{班级}/{学生名}/课评/
memory/class-evaluation-summary/第X周/ # **新增**:按周期分班级的周汇总
```
---
## 千人千面实现
### 同一节课,不同学生的课评差异
**示例DISC-003 互锁结构**
| 学生 | 气质 | 侧重点 | 开头句式 |
|------|------|--------|---------|
| 梁昕乔 | 活泼型 | 快速启动、创意表现 | "昕乔今天一上课就..." |
| 钟昀昊 | 平和型+慢热 | 渐入佳境、坚持过程 | "昀昊今天用了点时间进入状态..." |
| 李怡瞳 | 平和型+初学 | 参与度、降低难度 | "怡瞳今天尝试了..." |
### 差异化策略
1. **开头差异化**
- 快速启动型:"一上课就..."
- 慢热型:"今天用了点时间..."
- 进步型:"和上周相比..."
- 突破型:"今天终于..."
2. **侧重点差异化**
- 创意优势学生 → 肯定创新设计
- 坚持性弱学生 → 突出不放弃
- 社交活跃学生 → 强调合作分享
- 敏感型学生 → 强调情绪管理
3. **建议差异化**
- 同一知识点,给不同家庭活动建议
---
## 质量检查清单
生成后自动检查(详见 `.claude/rules/00-system.md` 质量检查清单):
- [ ] 字数 200-300 字±10%
- [ ] 5个必写模块完整
- [ ] 学生称呼正确使用display_name
- [ ] 课程知识点准确
- [ ] Emoji在段落末尾
- [ ] 无周数显示
---
## 异常处理
| 场景 | 处理方式 |
|------|---------|
| 未找到学生画像 | 提示建立画像,使用通用模板继续 |
| 未找到课程教案 | 提示补充教案,或教师手动输入知识点 |
| 表现描述过于简单 | 提示补充关键行为细节 |
| 字数不足 | 提示补充具体事例 |
| **补课/体验学生** | 仅保存到班级周汇总,询问是否创建个人档案 |
### 补课/体验学生特殊处理
**场景描述**
- 学生到班级补课或参加体验课
- 该学生暂无个人档案(`memory/student/{班级}/{学生}/` 不存在)
**处理流程**
1. **检测**Step 1自动检测学生档案是否存在
2. **提醒**:生成前提醒教师该学生无档案
3. **选项**
- **选项A**:回复「创建档案」→ 创建文件夹 + 生成课评 + 双轨保存
- **选项B**:回复「跳过」→ 生成课评 + 仅保存到班级周汇总
4. **标记**:在班级周汇总中标记为 `(补课/体验学生,无个人档案)`
**后续处理**
- 补课学生后续转为正式学员:回复「为[姓名]创建档案」
- 体验学生报名:创建档案后将历史课评从班级周汇总迁移到个人档案
**示例**
```
教师输入:班级:发现世界-周四19点张小明搭了3层开心
AI检测未找到「张小明」的个人档案
AI提醒
⚠️ 检测到新学生:张小明
该学生暂无个人档案。请选择:
[1] 创建档案(补课/新学生)
[2] 仅保留在班级汇总(体验课学生)
教师选择 [2]
AI处理
✓ 生成课评
✓ 保存到「第7周/发现世界-周四19点.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.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*

View File

@@ -0,0 +1,363 @@
{
"skill_name": "keping-advanced",
"version": "2.1.0",
"description": "高级课评生成Skill v2.1 - 支持学期周数自动计算(仅用于后端课程主题匹配)、课程主题自动匹配、课评内容关联当周知识点(不显示周数)",
"triggers": ["/课评", "/keping", "/写课评", "生成课评"],
"semester_config": {
"baseline_date": "2026-03-02",
"week_calculation": "Floor((current_date - baseline) / 7) + 1",
"total_weeks": 20,
"current_week": 5,
"current_date": "2026-04-02"
},
"course_mapping": {
"发现世界": {
"prefix": "DISC",
"week_mapping": {
"1": "DISC-001",
"2": "DISC-002",
"3": "DISC-003",
"4": "DISC-004",
"5": "DISC-005",
"6": "DISC-006",
"7": "DISC-007",
"8": "DISC-008",
"9": "DISC-009",
"10": "DISC-010",
"11": "DISC-011",
"12": "DISC-012",
"13": "DISC-013",
"14": "DISC-014",
"15": "DISC-015",
"16": "DISC-016",
"17": "DISC-017",
"18": "DISC-018",
"19": "DISC-019",
"20": "DISC-020"
}
},
"SPIKE": {
"prefix": "SPIKE",
"week_mapping": {
"1": "SPIKE-001",
"2": "SPIKE-002",
"3": "SPIKE-003",
"4": "SPIKE-004",
"5": "SPIKE-005",
"6": "SPIKE-006",
"7": "SPIKE-007",
"8": "SPIKE-008",
"9": "SPIKE-009",
"10": "SPIKE-010",
"11": "SPIKE-011",
"12": "SPIKE-012",
"13": "SPIKE-013",
"14": "SPIKE-014",
"15": "SPIKE-015",
"16": "SPIKE-016",
"17": "SPIKE-017",
"18": "SPIKE-018",
"19": "SPIKE-019",
"20": "SPIKE-020"
}
},
"AI03": {
"prefix": "AI03",
"week_mapping": {
"1": "AI03-001",
"2": "AI03-002",
"3": "AI03-003",
"4": "AI03-004",
"5": "AI03-005"
}
}
},
"workflow": {
"steps": [
{
"id": "step1",
"name": "读取学生用户画像并确定称呼方式",
"action": "read_student_profile",
"input": ["学生姓名", "班级"],
"output": ["气质类型", "学习风格", "核心优势", "待发展能力", "历史表现模式", "display_name(课评用称呼)"],
"file_pattern": "memory/student/{班级}/{学生名}/用户画像.md",
"name_processing": {
"priority": ["小名/昵称", "去姓称名", "叠字称呼", "全名"],
"rules": {
"小名/昵称": "画像中有填写则优先使用",
"去姓称名": "双字名且无小名时,去掉姓氏(如:梁昕乔→昕乔)",
"叠字称呼": "单字名且无小名时,叠字化(如:张昊→昊昊)",
"全名": "特殊要求时使用"
}
}
},
{
"id": "step2",
"name": "读取对应课程的课评规则",
"action": "read_style_rules",
"input": ["年龄段"],
"output": ["字数要求", "必写模块", "语言风格", "禁用词汇"],
"file_mapping": {
"幼儿(2.5-6岁)": ".claude/rules/20-style-building.md",
"小学低(6-8岁)": ".claude/rules/21-style-coding.md",
"小学中高(8-10岁)": ".claude/rules/22-style-robotics.md"
}
},
{
"id": "step3",
"name": "计算周数并读取本节课教案内容",
"action": "read_lesson_content_with_week",
"input": ["日期", "班级", "课程代码(可选)"],
"output": ["周数", "课程代码", "课程主题", "核心知识点", "教学目标"],
"week_calculation": {
"baseline": "2026-03-02",
"formula": "Floor((date - baseline) / 7) + 1"
},
"auto_mapping": true,
"file_pattern": "memory/lesson/**/{课程代码}.md"
},
{
"id": "step4",
"name": "读取该学生近10次历史课评",
"action": "read_history_reviews",
"input": ["学生姓名", "班级"],
"output": ["最近10次课评", "能力发展趋势", "进步轨迹", "反复问题"],
"file_pattern": "memory/student/{班级}/{学生名}/历史课评记录.md",
"limit": 10
},
{
"id": "step5",
"name": "结合教师提供的本节课表现",
"action": "parse_current_performance",
"input": ["表现描述", "情绪", "对比"],
"output": ["关键行为词", "情绪状态", "与常态差异"]
},
{
"id": "step6",
"name": "生成200-300字个性化课评使用display_name称呼不显示周数",
"action": "generate_evaluation",
"input": ["step1-5的所有数据", "display_name(课评用称呼)", "课程主题", "核心知识点"],
"output": ["课评文本"],
"theme_association": true,
"rules": {
"word_count": {"min": 180, "max": 300, "target": 250},
"modules": ["课程知识点(兴趣度)", "掌握程度(学习表现)", "课堂状态", "成长亮点", "课后建议"],
"week_number_in_content": false,
"name_usage": {
"use_display_name": true,
"display_name_source": "step1确定的称呼小名/去姓/叠字)",
"full_name_forbidden": true
},
"emoji_usage": {
"enabled": true,
"style": "学龄前版",
"rules": {
"模块1_课程主题": {
"title": "🌟",
"content": "🔍",
"alternatives": ["⭐", "🎯", "📚", "💡", "🏗️"]
},
"模块2_课堂表现": {
"title": "👀",
"content": "✨",
"hands": "✋",
"alternatives": ["🤗", "😊", "🔧", "🏗️", "👍"]
},
"模块3_情绪状态": {
"title": "😊",
"positive": "😄",
"social": "🤝",
"alternatives": ["😢", "😴", "🤗", "💪", "❤️"]
},
"模块4_成长亮点": {
"title": "🌱",
"content": "💪",
"highlight": "🚀",
"alternatives": ["⭐", "✨", "🎉", "👏", "🏆"]
},
"模块5_课后建议": {
"title": "🏠",
"family": "👨‍👩‍👧",
"activity": "🎮",
"alternatives": ["📱", "🧩", "🎨", "🔬"]
}
},
"principles": [
"每段配1-2个表情符号",
"表情与内容情绪一致",
"相邻段落不用相同表情",
"总计10-15个表情为宜"
]
},
"personalization": {
"活泼型": "突出创意和参与热情",
"谨慎型": "肯定尝试勇气",
"平和型": "强调稳定进步",
"敏感型": "强调支持和情绪管理",
"慢热型": "认可渐入佳境的过程"
}
}
},
{
"id": "step7",
"name": "自动保存到学生对应目录",
"action": "save_evaluation",
"output_path": "memory/student/{班级}/{学生名}/课评/{日期}-{课程代码}.md",
"content": {
"evaluation_text": "{课评正文}",
"metadata": {
"student": "{学生名}",
"course": "{课程代码}",
"week": "{周数}",
"date": "{日期}",
"generated_by": "keping-advanced v2.1.0",
"teacher_input": "{原始输入}"
}
}
},
{
"id": "step8",
"name": "更新学生成长记录",
"action": "update_growth_record",
"files": [
"memory/student/{班级}/{学生名}/用户画像.md",
"memory/student/{班级}/{学生名}/历史课评记录.md"
],
"record": {
"date": "{日期}",
"week": "{周数}",
"course": "{课程代码}",
"summary": "{一句话摘要}"
}
}
]
},
"input_templates": {
"single_quick": {
"format": "日期:{date} 班级:{class} {name}:{performance} [情绪:{emotion}]",
"example": "日期:4月2日 班级:发现世界-周四19点 乔乔:知道这个主题,话题多,搭建快 情绪:开心"
},
"single_detailed": {
"format": "yaml",
"fields": ["日期", "班级", "学生", "表现", "情绪", "对比"]
},
"batch": {
"format": "markdown_table",
"header": ["学生", "核心表现", "情绪"]
}
},
"quality_standards": {
"word_count": {
"幼儿": {"min": 180, "max": 220, "ideal": 200},
"小学低": {"min": 190, "max": 230, "ideal": 210},
"小学中高": {"min": 200, "max": 300, "ideal": 250}
},
"paragraph_count": {"min": 4, "max": 5},
"emoji_usage": {
"enabled": true,
"count": {"min": 6, "max": 20, "ideal": "10-15"},
"style_mapping": {
"幼儿(2.5-6岁)": "学龄前版(丰富表情)",
"小学低(6-8岁)": "小学版(简洁点缀)",
"小学中高(8-10岁)": "小学版(简洁点缀)"
},
"check_items": [
"模块1使用🌟🔍等",
"模块2使用👀✨✋等",
"模块3使用😊😄🤝等",
"模块4使用🌱💪🚀等",
"模块5使用🏠👨👩👧🎮等",
"相邻段落表情不重复",
"表情与内容情绪匹配"
]
},
"forbidden_words": ["宝贝", "小天才", "最棒", "无敌", "超级厉害", "完美", "秒杀", "碾压", "大神"],
"forbidden_patterns": [
"比.*小朋友.*",
"其他.*不好",
"最差",
"最慢",
"最笨"
],
"name_usage_check": {
"priority": ["小名/昵称", "去姓称名", "叠字称呼"],
"forbidden": ["全名(除非家长要求)"],
"check_items": [
"课评中使用的是display_name小名/去姓/叠字)",
"未使用全名(除非有特殊要求)",
"谐音姓名已纠正",
"单字名已叠字化"
]
},
"required_elements": [
"课程知识点(体现兴趣度)",
"掌握程度(体现学习表现)",
"课堂状态(专注度、情绪、互动)",
"成长亮点(纵向对比)",
"课后建议(可操作的家庭活动)"
]
},
"data_sources": {
"student_profile": "memory/student/{班级}/{学生名}/用户画像.md",
"history_reviews": "memory/student/{班级}/{学生名}/历史课评记录.md",
"lesson_content": "memory/lesson/**/{课程代码}.md",
"semester_weeks": ".claude/rules/15-semester-weeks.md",
"style_rules": {
"building": ".claude/rules/20-style-building.md",
"coding": ".claude/rules/21-style-coding.md",
"robotics": ".claude/rules/22-style-robotics.md"
}
},
"output_paths": {
"evaluation": "memory/student/{班级}/{学生名}/课评/{日期}-{课程代码}.md",
"growth_record": "memory/student/{班级}/{学生名}/用户画像.md",
"history_append": "memory/student/{班级}/{学生名}/历史课评记录.md"
},
"error_handling": {
"date_not_found": {
"message": "请输入日期4月2日",
"action": "prompt_for_date"
},
"profile_not_found": {
"message": "未找到学生画像,使用通用模板继续。建议后续建立画像以获得更个性化课评。",
"action": "continue_with_default"
},
"name_not_found": {
"message": "无法识别学生姓名,请检查姓名是否正确或建立画像档案。",
"action": "prompt_for_name",
"homophone_correction": {
"enabled": true,
"confidence_threshold": 0.8,
"message": "检测到可能的谐音输入 '{输入}',是否纠正为 '{建议}'"
}
},
"nickname_not_set": {
"message": "学生画像中未设置小名/昵称,将使用去姓称名或叠字称呼。",
"action": "use_fallback_name",
"fallback_order": ["去姓称名", "叠字称呼", "全名"]
},
"lesson_not_found": {
"message": "未找到课程教案,请手动输入知识点或补充教案。",
"action": "prompt_for_manual_input"
},
"insufficient_history": {
"message": "历史课评不足10次使用全部可用记录。",
"action": "use_available_records"
},
"word_count_short": {
"message": "字数偏短,建议补充具体事例。",
"action": "suggest_expansion"
}
},
"created_at": "2026-03-25",
"updated_at": "2026-04-02"
}

View File

@@ -0,0 +1,193 @@
# 高级课评 Skill - 快速参考
## 🔥 触发命令
```bash
/课评 # 最简触发
/keping # 英文触发
/写课评 # 中文触发
生成课评 # 自然语言触发
```
---
## ⚡ 快速用法v2.1 新增周数自动计算)
### 1. 极简输入(推荐)- 自动计算周数和主题
```
/课评 日期4月2日 班级:发现世界-周四19点
乔乔:知道这个主题,话题多,搭建快,开心
昊昊:活跃,认真,开心
```
**系统自动**
1. 推算完整日期2026-04-02
2. 计算周数:**第5周**3月2日基准
3. 匹配课程:**DISC-005 天平秤**
4. 提取主题:杠杆原理、平衡判断
5. 生成关联课评
### 2. 标准用法 - 指定课程代码
```
/课评 学生:小明 班级:发现世界-周四19点 课程:DISC-005 表现:观望5分钟后主动尝试 情绪:稳定
```
### 3. 批量生成
```
/课评 批量:true 日期:4月2日 班级:发现世界-周四19点
| 学生 | 核心表现 | 情绪 |
|-----|---------|------|
| 梁昕乔 | 快速启动→话题多→搭建快 | 开心 |
| 钟昀昊 | 活跃→认真→渐入佳境 | 开心 |
```
---
## 📅 学期周数速查2026春季
**基准日期**3月2日 = 第1周
| 日期 | 周数 | 发现世界 | SPIKE | AI03 |
|-----|:---:|:--------:|:-----:|:----:|
| 3月2日-8日 | 第1周 | DISC-001 | SPIKE-001 | AI03-001 |
| 3月9日-15日 | 第2周 | DISC-002 | SPIKE-002 | AI03-002 |
| 3月16日-22日 | 第3周 | DISC-003 | SPIKE-003 | AI03-003 |
| 3月23日-29日 | 第4周 | DISC-004 | SPIKE-004 | AI03-004 |
| **3月30日-4月5日** | **第5周** | **DISC-005** | **SPIKE-005** | **AI03-005** |
| 4月6日-12日 | 第6周 | DISC-006 | SPIKE-006 | AI03-006 |
**当前**2026年4月2日 = **第5周**
---
## 📋 8步流程速览v2.1更新)
| 步骤 | 动作 | 耗时 | 输出 |
|:---:|:-----|:---:|:----|
| 1 | 读取用户画像 | <1s | 气质、风格、优势 |
| 2 | 读取课评规则 | <1s | 字数、模块、风格 |
| **3** | **计算周数+匹配主题** | **<1s** | **第X周、课程代码、知识点** |
| 4 | 读取历史课评 | <1s | 10次记录、趋势 |
| 5 | 解析本节课表现 | <1s | 关键行为、情绪 |
| 6 | 生成个性化课评 | 2-3s | 200-300字文本关联主题 |
| 7 | 保存到学生目录 | <1s | 文件路径确认 |
| 8 | 更新成长记录 | <1s | 更新确认 |
**总耗时**:约 5-8 秒
---
## 🎯 输入字段
| 字段 | 必填 | 说明 | 示例 |
|------|:---:|:----|:----|
| `日期` | ❌ | **日期(自动计算周数)** | `日期:4月2日` |
| `学生` | ✅ | 学生姓名 | `学生:小明` |
| `表现` | ✅ | 核心课堂观察 | `表现:主动搭3层` |
| `班级` | ❌ | 班级名称(用于匹配主题) | `班级:发现世界-周四19点` |
| `课程` | ❌ | 课程代码(可选,自动匹配) | `课程:DISC-005` |
| `情绪` | ❌ | 情绪状态 | `情绪:稳定/开心` |
---
## 📚 第5周主题速查当前周4月2日
| 班级 | 课程代码 | 主题 | 核心知识点 | 课评关联建议 |
|-----|:-------:|:-----|:-----------|:-------------|
| 发现世界 | DISC-005 | **天平秤** | 杠杆原理、平衡判断、重量比较 | 用衣架做简易天平比较重量 |
| SPIKE | SPIKE-005 | **杯子盖球** | 传感器应用、条件判断、精准控制 | 调整传感器参数练习 |
| AI03 | AI03-005 | **项目整合** | 多AI协作、工作流设计 | 整合前面所学完成小项目 |
---
## 📝 表现描述速记符号
| 符号 | 含义 | 示例 |
|:---:|------|:----|
| `→` | 行为发展/时间线 | `观望5分钟→主动尝试` |
| `,` | 并列行为 | `搭3层,自己调高度` |
| `→`情绪 | 情绪变化 | `兴奋→烦躁` |
| `比上周` | 纵向对比 | `比上周主动` |
---
## 🎨 年龄风格对照
| 年龄段 | 字数 | 语气 | 侧重点 |
|-------|:---:|:----|:-------|
| 2.5-6岁 | 180-220 | 温暖具体 | 参与、情绪、兴趣 |
| 6-8岁 | 190-230 | 尊重专业 | 能力、习惯、逻辑 |
| 8-10岁 | 200-300 | 成长数据 | 项目、竞赛、自主 |
---
## 🔍 差异化示例
**同一节课第5周 DISC-005 天平秤):**
| 学生 | 气质 | 课评侧重 | 开头句式 |
|------|------|---------|---------|
| 梁昕乔 | 活泼型 | 快速理解杠杆原理、创意搭建 | "乔乔今天一上课就..." |
| 钟昀昊 | 慢热型 | 渐入佳境、认真探索平衡 | "昊昊今天认真观察了..." |
| 李怡瞳 | 初学型 | 参与度、支持理解重量比较 | "怡瞳今天尝试了..." |
---
## ✅ 质量检查清单
生成后自动检查:
- [ ] 字数 200-300 字
- [ ] 5个必写模块完整
- [ ] 学生姓名正确
- [ ] **知识点与当周主题关联**
- [ ] **周数标记正确第X周**
- [ ] 无禁用词汇
- [ ] 纵向对比有据
- [ ] 建议可操作
---
## 📂 文件路径
```
# 读取
memory/student/{班级}/{学生名}/用户画像.md ← Step 1
.claude/rules/15-semester-weeks.md ← Step 3周数计算
.claude/rules/20-style-building.md ← Step 2
memory/lesson/**/{课程代码}.md ← Step 3
memory/student/{班级}/{学生名}/历史课评记录.md ← Step 4
# 写入
memory/student/{班级}/{学生名}/课评/{日期}-{课程}.md ← Step 7
memory/student/{班级}/{学生名}/用户画像.md ← Step 8
memory/student/{班级}/{学生名}/历史课评记录.md ← Step 8
```
---
## ⚠️ 异常处理
| 场景 | 提示 | 处理 |
|------|------|:----:|
| 无日期 | "请输入日期4月2日" | 提示补充 |
| 周数计算 | "自动计算4月2日 = 第5周" | 自动处理 |
| 无画像 | "未找到画像,使用通用模板" | 继续生成 |
| 无教案 | "请手动输入知识点" | 提示补充 |
| 历史不足 | "历史不足10次使用全部" | 继续生成 |
| 字数不足 | "字数偏短,建议补充" | 提示扩展 |
---
## 📞 支持
如有问题,联系:穹狼教学团队
---
*速查卡 v2.1 | 2026-04-02*

View File

@@ -0,0 +1,255 @@
# 课评生成 Skill 使用指南
> Skill名称`keping` | 触发命令:`/课评` `/keping` `/kp`
---
## 📋 功能简介
课评生成 Skill 是穹狼乐高编程课评系统的核心组件,根据教师极简输入自动生成个性化课后评价。
**核心价值**
- 教师只需记录关键观察AI自动扩展为完整课评
- 基于学生画像实现"千人千面"差异化输出
- 自动匹配课程知识点和教学风格
- 确保字数、格式、专业性符合标准
---
## 🚀 快速开始
### 基础用法(单学生)
```
/课评 学生:小明 表现:观望5分钟→主动搭3层→自己调高度
```
### 完整用法
```
/课评 \
学生:小明 \
班级:发现世界-周四19点 \
课程:DISC-003 \
表现:观望5分钟后主动尝试搭了3层管道球卡住时能自己调整入口高度 \
情绪:稳定 \
对比:比上周主动
```
---
## 📖 参数说明
| 参数 | 必填 | 说明 | 示例 |
|------|:---:|:----|:----|
| `学生` | ✅ | 学生姓名 | `学生:小明` |
| `表现` | ✅ | 核心课堂观察(关键行为) | `表现:主动搭3层自己调高度` |
| `班级` | ❌ | 班级名称(用于匹配画像) | `班级:发现世界-周四19点` |
| `课程` | ❌ | 课程代码(用于提取知识点) | `课程:DISC-003` |
| `情绪` | ❌ | 情绪状态 | `情绪:稳定` / `情绪:开心→烦躁` |
| `对比` | ❌ | 与之前课对比 | `对比:比上周主动` / `对比:和之前一样` |
| `特殊` | ❌ | 特殊情况 | `特殊:中途上厕所` |
---
## 🎯 执行流程8步
```
输入解析 → 学生匹配 → 课程匹配 → 风格匹配 → 内容生成 → 个性化 → 格式校验 → 输出
```
### 详细流程
| 步骤 | 动作 | 说明 |
|:---:|------|------|
| 1 | **输入解析** | 提取姓名、班级、表现、情绪等关键信息 |
| 2 | **学生匹配** | 调取学生画像档案,获取气质、能力、历史表现 |
| 3 | **课程匹配** | 调取课程教案,提取知识点和目标 |
| 4 | **风格匹配** | 根据年龄确定语言风格(幼儿/小学低/小学中)|
| 5 | **内容生成** | 基于5个必写模块生成内容 |
| 6 | **个性化** | 根据学生画像调整侧重点和措辞 |
| 7 | **格式校验** | 检查字数、段落、禁用词、质量清单 |
| 8 | **输出** | 生成最终课评,附带审核状态 |
---
## 📝 输入示例
### 示例1极简速记推荐日常使用
```
/课评 小明观望5分钟→主动搭3层→自己调高度情绪稳定比上周主动
```
### 示例2批量生成一节课多学生
```
/课评 批量:true
课程TUBE-001
班级小小班A班
| 学生 | 核心表现 | 情绪 | 亮点 |
|-----|---------|------|------|
| 小明 | 观望5分钟→主动搭3层→自己调高度 | 稳定 | 比上周主动 |
| 小红 | 全程专注→搭5层→加弯管 | 开心 | 主动帮助旁边 |
| 小强 | 频繁换玩法→未完整搭建 | 兴奋→烦躁 | 需引导坚持 |
```
### 示例3详细输入特殊学生
```
/课评 \
学生:天天 \
班级:发现世界-周四19点 \
课程:DISC-005 \
表现:搭了4层但一倒就哭老师安抚后继续完成最后加了创意装饰 \
情绪:敏感但可安抚 \
对比:抗挫比上周有进步 \
特殊:作品倒塌时情绪波动明显
```
---
## 🎨 输出格式
### 单学生输出
```
━━━━━━━━━━━━━━━━━━━━━━━
【学生小明】198字 | 5段
小明今天学习了"互锁结构"——把积木像砌墙一样交错叠放...
[5段完整课评内容]
---
生成时间2026-03-25 19:30
模板:幼儿积木-180-220字
审核状态:待教师审核
━━━━━━━━━━━━━━━━━━━━━━━
```
### 批量输出
```
━━━━━━━━━━━━━━━━━━━━━━━
【学生1小明】198字 | 5段
[课评内容]
━━━━━━━━━━━━━━━━━━━━━━━
【学生2小红】210字 | 5段
[课评内容]
━━━━━━━━━━━━━━━━━━━━━━━
【学生3小强】175字 | 5段
⚠️ 字数偏短,建议补充
━━━━━━━━━━━━━━━━━━━━━━━
批量生成完成3份
✓ 字数检查2份符合1份偏短
✓ 重复检查:无雷同表述
✓ 差异化检查3份侧重点各不相同
```
---
## ⚙️ 配置文件
Skill配置文件位置`.claude/skills/keping.json`
### 可自定义项
| 配置项 | 说明 | 默认值 |
|-------|------|:------:|
| `quality_standards.word_count` | 字数标准 | 幼儿180-220 |
| `quality_standards.forbidden_words` | 禁用词汇 | ["宝贝", "小天才"...] |
| `workflow.steps` | 流程步骤 | 8步标准流程 |
---
## 🔄 与其他系统的协作
### 依赖数据源
```
memory/student/**/用户画像.md → 学生性格、能力、历史表现
memory/lesson/** → 课程知识点、目标
.claude/rules/20-style-*.md → 语言风格规则
.claude/rules/03-evaluation-dimensions.md → 评价维度
```
### 输出目的地
```
.claude/output/课评-待审核/ → 生成后待教师审核
memory/student/**/历史课评记录.md → 审核通过后归档
```
---
## ⚠️ 常见错误处理
| 场景 | 提示 | 处理方式 |
|------|------|---------|
| 未找到学生画像 | "未找到学生画像,使用通用模板..." | 先建立画像或继续用通用模板 |
| 未找到课程 | "未找到课程教案..." | 手动输入知识点或补充教案 |
| 字数偏短 | "⚠️ 字数偏短175字建议补充..." | 补充具体事例细节 |
| 缺少必填项 | "课堂表现为必填项..." | 补充 `表现:` 参数 |
---
## 📚 进阶用法
### 结合画像生成
当学生画像已建立时Skill会自动
- 识别气质类型(活泼/谨慎/平和/敏感)
- 匹配学习风格(视觉/听觉/动觉)
- 对比历史表现(纵向进步)
- 调整侧重点(如:谨慎型侧重勇气,敏感型侧重情绪)
### 千人千面实现
同一节课不同学生的课评会自动差异化:
- **开头句式**:避免雷同
- **侧重点**:根据学生特点
- **建议内容**:个性化家庭活动
---
## 🎯 最佳实践
### 教师记录技巧
```
# 高效速记格式
小明观望5分钟→主动搭3层→自己调高度稳定比上周主动
# 解析:行为链(时间+动作+结果),情绪,对比
# 关键动词识别
- "主动" = 积极性
- "自己调整" = 掌握较好
- "坚持" = 抗挫能力
- "创新/加装饰" = 创意表现
```
### 审核检查清单
课评生成后,教师需确认:
- [ ] 学生姓名正确
- [ ] 日期/课程正确
- [ ] 具体事例真实
- [ ] 建议可操作
- [ ] 语气恰当
---
## 📞 支持
如有问题或建议,请联系:穹狼教学团队
---
*文档版本v1.0 | 2026-03-25*

View File

@@ -0,0 +1,80 @@
# 课评生成 Skill 速查卡
## 🔥 最常用命令
```bash
# 极简速记(日常使用)
/课评 小明观望5分钟→主动搭3层→自己调高度
# 完整信息
/课评 学生:小明 班级:发现世界-周四19点 课程:DISC-003 表现:主动搭3层 情绪:稳定
# 批量生成
/课评 批量:true
课程:TUBE-001
|学生|表现|情绪|
|小明|搭3层|稳定|
|小红|搭5层|开心|
```
---
## 📋 8步执行流程
```
输入解析 → 学生匹配 → 课程匹配 → 风格匹配 → 内容生成 → 个性化 → 格式校验 → 输出
```
---
## 🎯 5个必写模块
| 模块 | 字数 | 要点 |
|------|:---:|:----|
| 1.课程知识点 | 30-40 | 具体知识,从教案提取 |
| 2.掌握程度 | 30-40 | 客观描述,避免评价 |
| 3.课堂表现 | 40-50 | 专注、情绪、互动 |
| 4.成长亮点 | 40-50 | 纵向对比,独特进步 |
| 5.课后建议 | 30-40 | 可操作,家庭延伸 |
---
## 📝 输入速记符号
| 符号 | 含义 | 示例 |
|:---:|------|:----|
| `→` | 行为发展/时间线 | 观望5分钟→主动尝试 |
| `,` | 并列行为 | 搭3层,自己调高度 |
| `→`情绪 | 情绪变化 | 兴奋→烦躁 |
| `比上周` | 纵向对比 | 比上周主动 |
---
## 🎨 年龄风格对照
| 年龄段 | 字数 | 语气 | 禁用词 |
|-------|:---:|:----|:-------|
| 2.5-6岁 | 180-220 | 温暖具体 | "宝贝""天才""最棒" |
| 6-8岁 | 190-230 | 尊重专业 | "秒杀""大神" "碾压" |
| 8-10岁 | 200-240 | 竞技成长 | "无敌""完美" "核心奥秘" |
---
## ⚠️ 质量检查
**必须包含**:具体事例、可操作建议、肯定努力
**禁止**:负面标签、不当比较、敏感信息、过度承诺
---
## 🔗 依赖文件
```
memory/student/**/用户画像.md ← 学生档案
memory/lesson/** ← 课程教案
.claude/skills/keping.json ← Skill配置
```
---
*速查卡 v1.0 | 2026-03-25*

247
.claude/skills/keping.json Normal file
View File

@@ -0,0 +1,247 @@
{
"name": "keping",
"version": "1.0.0",
"description": "穹狼乐高编程AI课评生成系统 - 根据教师极简输入自动生成个性化课后评价",
"author": "穹狼教学团队",
"triggers": ["/课评", "/keping", "/kp"],
"args": {
"student": {
"type": "string",
"description": "学生姓名",
"required": true
},
"class": {
"type": "string",
"description": "班级名称(如:发现世界-周四19点",
"required": false
},
"course": {
"type": "string",
"description": "课程代码TUBE-001, DISC-003, SPIKE-005",
"required": false
},
"performance": {
"type": "string",
"description": "课堂表现描述(核心观察)",
"required": true
},
"emotion": {
"type": "string",
"description": "情绪状态(稳定/开心/兴奋/低落/烦躁等)",
"required": false
},
"compare": {
"type": "string",
"description": "与之前对比(比上周主动/保持/退步等)",
"required": false
},
"special": {
"type": "string",
"description": "特殊情况备注",
"required": false
},
"batch": {
"type": "boolean",
"description": "是否为批量模式(一节课多学生)",
"default": false
}
},
"workflow": {
"steps": [
{
"id": "step1_parse_input",
"name": "输入解析",
"description": "解析教师输入,提取关键信息",
"action": "parse_input",
"rules": [
"识别学生姓名、班级、课程代码",
"提取核心表现描述(关键动词+具体行为)",
"识别情绪关键词",
"提取对比词(比上周/和之前/退步等)"
],
"output": ["parsed_data"]
},
{
"id": "step2_match_student",
"name": "学生画像匹配",
"description": "调取学生历史档案,实现千人千面",
"action": "match_student_profile",
"rules": [
"根据学生姓名匹配画像档案",
"提取气质类型、学习风格、能力优势",
"获取历史表现对比基准",
"识别需要特别关注的维度"
],
"sources": ["memory/student/**/用户画像.md"],
"output": ["student_profile"]
},
{
"id": "step3_match_course",
"name": "课程教案匹配",
"description": "调取课程信息,提取知识点",
"action": "match_course_content",
"rules": [
"根据课程代码匹配教案",
"提取本节课核心知识点",
"获取课程目标和评价维度",
"确定适用年龄和课程类型"
],
"sources": ["memory/lesson/**"],
"output": ["course_content", "age_group", "course_type"]
},
{
"id": "step4_determine_style",
"name": "风格规则匹配",
"description": "确定课评语言风格和结构",
"action": "determine_style",
"rules": [
"根据年龄段确定模板(幼儿/小学低/小学中)",
"根据课程类型确定字数180-220/190-230/200-240",
"根据学生画像调整个性化侧重点",
"选择必写模块的具体表述方式"
],
"references": [
".claude/rules/20-style-building.md",
".claude/rules/21-style-coding.md",
".claude/rules/22-style-robotics.md"
],
"output": ["style_config", "word_count", "tone"]
},
{
"id": "step5_generate_content",
"name": "内容生成",
"description": "基于5个必写模块生成课评内容",
"action": "generate_evaluation",
"modules": [
{
"id": "module1_knowledge",
"name": "课程知识点",
"rules": [
"30-40字幼儿/ 35-45字编程/ 40-50字竞赛",
"点明具体知识,避免笼统",
"从教案自动提取并适配"
]
},
{
"id": "module2_mastery",
"name": "掌握程度",
"rules": [
"基于课堂表现关键词判断",
"'自己调整/主动尝试'=掌握较好",
"'需提醒/帮助'=掌握一般",
"客观描述,避免评价性词语"
]
},
{
"id": "module3_performance",
"name": "课堂表现",
"rules": [
"专注度、情绪状态、互动情况",
"结合学生画像对比常态",
"真实记录,不夸大不回避"
]
},
{
"id": "module4_highlight",
"name": "成长亮点",
"rules": [
"纵向对比历史表现",
"突出独特进步或品质",
"千人千面,避免雷同"
]
},
{
"id": "module5_suggestion",
"name": "课后建议",
"rules": [
"可操作的家庭活动",
"关联本节课知识点",
"尊重家庭,用'可以'而非'必须'"
]
}
],
"output": ["evaluation_content"]
},
{
"id": "step6_personalize",
"name": "个性化处理",
"description": "根据学生画像进行差异化调整",
"action": "personalize",
"rules": [
"活泼型学生:突出创意和参与热情",
"谨慎型学生:肯定尝试勇气",
"敏感型学生:温和措辞,强调支持",
"慢热型学生:肯定渐入佳境的过程",
"根据能力优势调整侧重点"
],
"output": ["personalized_content"]
},
{
"id": "step7_format_check",
"name": "格式校验",
"description": "检查输出格式和质量",
"action": "format_check",
"checklist": [
"字数符合要求±10%",
"5个必写模块完整",
"学生姓名正确",
"无错别字",
"无负面标签",
"无比较性语言",
"段落间距正确(段间空一行)"
],
"output": ["verified_content"]
},
{
"id": "step8_output",
"name": "输出与反馈",
"description": "生成最终课评并呈现",
"action": "output",
"format": {
"header": "【学生:{student}】{word_count}字 | {paragraph_count}段",
"content": "{evaluation_content}",
"footer": "---\n生成时间{datetime}\n模板{style_type}\n审核状态待教师审核"
},
"batch_mode": {
"separator": "\n━━━━━━━━━━━━━━━━━━━━━━━\n",
"summary": "批量生成完成({count}份)\n字数检查{word_check}\n重复检查{duplicate_check}"
}
}
]
},
"input_templates": {
"single_quick": "{student}{performance} → {highlight}",
"single_yaml": "学生:{student}\n班级{class}\n课程{course}\n表现{performance}\n情绪{emotion}\n对比{compare}",
"batch_table": "| 学生 | 核心表现 | 情绪 | 亮点/需关注 |\n|-----|---------|------|------------|"
},
"quality_standards": {
"word_count": {
"幼儿积木": {"min": 180, "max": 220, "target": 200},
"少儿编程": {"min": 190, "max": 230, "target": 210},
"机器人竞赛": {"min": 200, "max": 240, "target": 220}
},
"paragraph_count": {
"min": 4,
"max": 5
},
"forbidden_words": ["宝贝", "小天才", "最棒", "无敌", "超级厉害", "完美", "秒杀", "碾压"],
"forbidden_patterns": ["比.*小朋友.*好", "其他.*不好", "最差", "最慢"]
},
"error_handling": {
"student_not_found": "未找到学生画像,使用通用模板生成。建议先建立画像档案以获得更个性化的课评。",
"course_not_found": "未找到课程教案,请提供课程代码或手动输入知识点。",
"missing_performance": "课堂表现为必填项,请描述学生本节课的关键行为。",
"word_count_short": "⚠️ 字数偏短({actual}字),建议补充具体事例。",
"word_count_long": "⚠️ 字数偏长({actual}字),建议精简描述。"
},
"examples": {
"example1": {
"input": "小明观望5分钟→主动搭3层→自己调高度情绪稳定比上周主动",
"output": "小明今天学习了'互锁结构'——把积木像砌墙一样交错叠放,这样搭出来的墙更稳固。\n\n互锁的方法听懂了实际操作时前两块需要老师扶着手指对齐第三块开始能自己完成。\n\n这节课专注了约30分钟中间想玩旁边教具提醒后回来继续。最后主动给房子加了烟囱和窗户。\n\n和上周比今天结构倒了没有发脾气而是拆开重新观察了一下底座平不平这个调整值得注意。\n\n家里如果有积木可以和孩子一起搭两堵墙一堵直着叠、一堵交错叠推推看哪个更稳巩固今天的概念。"
}
},
"created_at": "2026-03-25",
"version_history": [
{"version": "1.0.0", "date": "2026-03-25", "note": "初始版本,支持单学生和批量模式"}
]
}