规则精简合并 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,80 +1,20 @@
|
||||
{
|
||||
"skill_name": "keping-advanced",
|
||||
"version": "2.1.0",
|
||||
"description": "高级课评生成Skill v2.1 - 支持学期周数自动计算(仅用于后端课程主题匹配)、课程主题自动匹配、课评内容关联当周知识点(不显示周数)",
|
||||
"version": "2.2.0",
|
||||
"description": "高级课评生成Skill v2.2 - 支持学期周数自动计算(仅用于后端课程主题匹配)、课程主题自动匹配、三段式课评生成、自动双轨保存(班级汇总+个人档案)",
|
||||
"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"
|
||||
"current_week": 10,
|
||||
"current_date": "2026-05-09"
|
||||
},
|
||||
|
||||
"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"
|
||||
}
|
||||
}
|
||||
"发现世界": {"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", "6": "AI03-006", "7": "AI03-007", "8": "AI03-008", "9": "AI03-009", "10": "AI03-010", "11": "AI03-011", "12": "AI03-012", "13": "AI03-013", "14": "AI03-014", "15": "AI03-015", "16": "AI03-016", "17": "AI03-017", "18": "AI03-018", "19": "AI03-019", "20": "AI03-020"}}
|
||||
},
|
||||
|
||||
"workflow": {
|
||||
"steps": [
|
||||
{
|
||||
@@ -96,14 +36,12 @@
|
||||
},
|
||||
{
|
||||
"id": "step2",
|
||||
"name": "读取对应课程的课评规则",
|
||||
"name": "读取课评风格规则(全年龄段统一)",
|
||||
"action": "read_style_rules",
|
||||
"input": ["年龄段"],
|
||||
"output": ["字数要求", "必写模块", "语言风格", "禁用词汇"],
|
||||
"output": ["字数要求", "三段式结构", "语言风格", "禁用词汇", "Emoji规范"],
|
||||
"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"
|
||||
"all_ages": ".claude/rules/10-style.md"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -137,14 +75,20 @@
|
||||
},
|
||||
{
|
||||
"id": "step6",
|
||||
"name": "生成200-300字个性化课评(使用display_name称呼,不显示周数)",
|
||||
"name": "生成180-350字三段式个性化课评(使用display_name称呼,不显示周数)",
|
||||
"action": "generate_evaluation",
|
||||
"input": ["step1-5的所有数据", "display_name(课评用称呼)", "课程主题", "核心知识点"],
|
||||
"output": ["课评文本"],
|
||||
"theme_association": true,
|
||||
"rules": {
|
||||
"word_count": {"min": 180, "max": 300, "target": 250},
|
||||
"modules": ["课程知识点(兴趣度)", "掌握程度(学习表现)", "课堂状态", "成长亮点", "课后建议"],
|
||||
"word_count": {"min": 180, "max": 350, "target": 250, "note": "弹性范围:精简版180-220字,标准版220-280字,详细版280-350字"},
|
||||
"paragraph_count": 3,
|
||||
"structure": {
|
||||
"paragraph_1": {"name": "课程知识点", "word_range": "30-55字", "emoji_count": 1},
|
||||
"paragraph_2": {"name": "课堂细节(掌握+环节+亮点)", "word_range": "100-220字(弹性)", "emoji_count": "1-3"},
|
||||
"paragraph_3": {"name": "课后建议", "word_range": "30-55字", "emoji_count": 1}
|
||||
},
|
||||
"modules": ["课程知识点(兴趣度)", "掌握程度(学习表现)", "课程环节与目标达成", "成长亮点", "课后建议"],
|
||||
"week_number_in_content": false,
|
||||
"name_usage": {
|
||||
"use_display_name": true,
|
||||
@@ -153,43 +97,17 @@
|
||||
},
|
||||
"emoji_usage": {
|
||||
"enabled": true,
|
||||
"style": "学龄前版",
|
||||
"total_count": {"min": 3, "max": 5, "ideal": "3-5"},
|
||||
"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": ["📱", "🧩", "🎨", "🔬"]
|
||||
}
|
||||
"paragraph_1_课程知识点": {"count": 1, "recommended": ["🔍", "💡", "⚙️"], "note": "根据课程主题自动适配"},
|
||||
"paragraph_2_课堂细节": {"count": "1-3", "recommended": ["💪", "✨", "📈", "🌟", "😊", "🤝"], "note": "根据课堂情节亮点数量灵活适配"},
|
||||
"paragraph_3_课后建议": {"count": 1, "recommended": ["🏠", "🔧"], "note": "根据建议内容适配"}
|
||||
},
|
||||
"principles": [
|
||||
"每段配1-2个表情符号",
|
||||
"每段末尾添加emoji",
|
||||
"表情与内容情绪一致",
|
||||
"相邻段落不用相同表情",
|
||||
"总计10-15个表情为宜"
|
||||
"总计3-5个",
|
||||
"第2段可根据亮点数量使用2-3个表情"
|
||||
]
|
||||
},
|
||||
"personalization": {
|
||||
@@ -203,39 +121,35 @@
|
||||
},
|
||||
{
|
||||
"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": "{原始输入}"
|
||||
"name": "自动双轨保存(班级汇总+个人档案)",
|
||||
"action": "save_evaluation_dual_track",
|
||||
"outputs": {
|
||||
"class_summary": {
|
||||
"path": "memory/class-evaluation-summary/第{周数}周/{班级}.md",
|
||||
"priority": 1,
|
||||
"required": true,
|
||||
"content": "本周所有学生课评汇总(含出勤统计)"
|
||||
},
|
||||
"personal_archive": {
|
||||
"path": "memory/student/{班级}/{学生名}/历史课评记录.md",
|
||||
"priority": 2,
|
||||
"required": false,
|
||||
"content": "个人课评记录(时间倒序,最新在上)",
|
||||
"on_failure": "加入待补存队列,下次生成前自动补存"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "step8",
|
||||
"name": "更新学生成长记录",
|
||||
"action": "update_growth_record",
|
||||
"files": [
|
||||
"memory/student/{班级}/{学生名}/用户画像.md",
|
||||
"memory/student/{班级}/{学生名}/历史课评记录.md"
|
||||
],
|
||||
"record": {
|
||||
"date": "{日期}",
|
||||
"week": "{周数}",
|
||||
"course": "{课程代码}",
|
||||
"summary": "{一句话摘要}"
|
||||
}
|
||||
},
|
||||
"student_type_handling": {
|
||||
"正式学生": "双轨保存(班级汇总+个人档案)",
|
||||
"本班补课": "双轨保存(班级汇总+个人档案)",
|
||||
"跨班级补课": "自动双轨保存(补课班级汇总+原班级个人档案)",
|
||||
"体验学生": "仅班级汇总",
|
||||
"缺课学生": "仅记录缺席"
|
||||
},
|
||||
"auto_save": true,
|
||||
"no_confirmation_needed": true
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"input_templates": {
|
||||
"single_quick": {
|
||||
"format": "日期:{date} 班级:{class} {name}:{performance} [情绪:{emotion}]",
|
||||
@@ -250,40 +164,35 @@
|
||||
"header": ["学生", "核心表现", "情绪"]
|
||||
}
|
||||
},
|
||||
|
||||
"quality_standards": {
|
||||
"word_count": {
|
||||
"幼儿": {"min": 180, "max": 220, "ideal": 200},
|
||||
"小学低": {"min": 190, "max": 230, "ideal": 210},
|
||||
"小学中高": {"min": 200, "max": 300, "ideal": 250}
|
||||
"min": 180,
|
||||
"max": 350,
|
||||
"ranges": {
|
||||
"精简版": {"min": 180, "max": 220, "trigger": "输入简洁,仅包含基本行为描述"},
|
||||
"标准版": {"min": 220, "max": 280, "trigger": "输入有具体细节或1-2个亮点"},
|
||||
"详细版": {"min": 280, "max": 350, "trigger": "输入有精彩瞬间、多个亮点或特殊表现"}
|
||||
}
|
||||
},
|
||||
"paragraph_count": {"min": 4, "max": 5},
|
||||
"paragraph_count": {"min": 3, "max": 3, "note": "三段式结构:课程知识点+课堂细节+课后建议"},
|
||||
"emoji_usage": {
|
||||
"enabled": true,
|
||||
"count": {"min": 6, "max": 20, "ideal": "10-15"},
|
||||
"count": {"min": 3, "max": 5, "ideal": "3-5"},
|
||||
"style_mapping": {
|
||||
"幼儿(2.5-6岁)": "学龄前版(丰富表情)",
|
||||
"小学低(6-8岁)": "小学版(简洁点缀)",
|
||||
"小学中高(8-10岁)": "小学版(简洁点缀)"
|
||||
"幼儿(2.5-6岁)": "温暖活泼(🔍💪✨🏠)",
|
||||
"小学低(6-8岁)": "简洁专业(💡📈🏠)",
|
||||
"小学中高(8-10岁)": "专业竞技感(⚙️📈🏠)"
|
||||
},
|
||||
"check_items": [
|
||||
"模块1使用🌟🔍等",
|
||||
"模块2使用👀✨✋等",
|
||||
"模块3使用😊😄🤝等",
|
||||
"模块4使用🌱💪🚀等",
|
||||
"模块5使用🏠👨👩👧🎮等",
|
||||
"相邻段落表情不重复",
|
||||
"第1段末尾有1个课程主题相关emoji",
|
||||
"第2段末尾有1-3个课堂情节相关emoji",
|
||||
"第3段末尾有1个家庭延伸相关emoji",
|
||||
"总计3-5个emoji",
|
||||
"表情与内容情绪匹配"
|
||||
]
|
||||
},
|
||||
"forbidden_words": ["宝贝", "小天才", "最棒", "无敌", "超级厉害", "完美", "秒杀", "碾压", "大神"],
|
||||
"forbidden_patterns": [
|
||||
"比.*小朋友.*",
|
||||
"其他.*不好",
|
||||
"最差",
|
||||
"最慢",
|
||||
"最笨"
|
||||
],
|
||||
"forbidden_patterns": ["比.*小朋友.*", "其他.*不好", "最差", "最慢", "最笨"],
|
||||
"name_usage_check": {
|
||||
"priority": ["小名/昵称", "去姓称名", "叠字称呼"],
|
||||
"forbidden": ["全名(除非家长要求)"],
|
||||
@@ -297,67 +206,39 @@
|
||||
"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"
|
||||
}
|
||||
"style_rules": ".claude/rules/10-style.md",
|
||||
"workflow_rules": ".claude/rules/20-workflow.md",
|
||||
"shorthand_rules": ".claude/rules/21-shorthand.md",
|
||||
"student_mgmt_rules": ".claude/rules/22-student-mgmt.md",
|
||||
"student_rules": ".claude/rules/30-student.md",
|
||||
"output_format_preschool": ".claude/rules/50-output-format-preschool.md",
|
||||
"output_format_elementary": ".claude/rules/51-output-format-elementary.md"
|
||||
},
|
||||
|
||||
"output_paths": {
|
||||
"evaluation": "memory/student/{班级}/{学生名}/课评/{日期}-{课程代码}.md",
|
||||
"growth_record": "memory/student/{班级}/{学生名}/用户画像.md",
|
||||
"history_append": "memory/student/{班级}/{学生名}/历史课评记录.md"
|
||||
"class_summary": "memory/class-evaluation-summary/第{周数}周/{班级}.md",
|
||||
"personal_archive": "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"
|
||||
}
|
||||
"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"},
|
||||
"class_summary_save_failed": {"message": "班级汇总保存失败,正在重试...", "action": "retry_3_times", "fallback": "显示错误提示,提供手动重试按钮"},
|
||||
"personal_archive_save_failed": {"message": "个人档案保存失败,已加入待补存队列。", "action": "add_to_compensation_queue", "fallback": "下次生成课评前自动补存,或教师输入'补存'手动触发"}
|
||||
},
|
||||
|
||||
"created_at": "2026-03-25",
|
||||
"updated_at": "2026-04-02"
|
||||
"updated_at": "2026-05-09"
|
||||
}
|
||||
|
||||
@@ -1,255 +0,0 @@
|
||||
# 课评生成 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*
|
||||
@@ -1,80 +0,0 @@
|
||||
# 课评生成 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*
|
||||
@@ -1,247 +0,0 @@
|
||||
{
|
||||
"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": "初始版本,支持单学生和批量模式"}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user