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

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": "初始版本,支持单学生和批量模式"}
]
}