科学教育"做中学"系列任务单生成 Skill
目标
为小学教师生成一套可直接打印发放的"做中学"科学探究系列任务单 Word 文档:系列总览页 + 每课时 2 页任务单(正反两面,共 4-6 课时)+ 四维度评价量规页。任务设计遵循教育部《指南》要求:以学生为主体、以兴趣为导向、聚焦真实问题、低成本材料、好操作适用。每课时第 1 页为任务指引(任务信息/材料/步骤/安全),第 2 页为记录观察(分工/记录表/画图区/发现/评价),表格大行距留白,学生拿到即空白待写。
依赖
- 模板:
assets/task_sheet_template.docx(由scripts/build_template.py生成,含三块母版页与【锚点】) - 生成脚本:
scripts/generate_task_sheets.py(标准库实现,无需第三方包) - 政策依据:
references/guide_policy_brief.md(《指南》核心要点摘录,引用政策只准引此文件) - 方向库:
references/theme_resources.md(六大主题 × 三档年级 = 18 组任务方向,推荐方向只准来自此文件) - 分层细则:
references/grade_level_rules.md(三档认知/目标/表达/课时差异) - 材料库:
references/material_library.md(低成本材料与替代规则,成本 ≤ ¥10/组) - 话术:
references/interest_guide_questions.md(对话引导问题清单与主题映射规则) - 契约:
references/task_sheet_spec.md(任务单版式规范与 series JSON 结构) - 配置:
config.json(学校名、六大主题、年级段、默认课时、输出目录)
工作流程
第 1 步:收集班级与资源信息
读取 config.json、references/grade_level_rules.md、references/material_library.md,向老师确认:
- 年级段(硬性前置):1-2 / 3-4 / 5-6 三选一,不回答就暂停
- 班级人数、每周科学课时、单次可支配时长
- 可用资源:学校场地器材(实验室/操场/种植角/废旧材料箱/平板)、家长可自带材料
- 预计总课时(默认 4,上限 6)
第 2 步:对话式兴趣调研
读取 references/interest_guide_questions.md,按年级段选择话术,与老师问答收集兴趣信号:
- 先抛开放问题(第一批 8 问中的第 3-6 问:课间玩什么、最近热点、带过什么特别东西、更对哪类好奇)
- 信号不足时按六大主题定向追问(每主题 ≤2 问)
- 每次只抛 2-3 个问题,等老师回答再追问,不做问卷式轰炸
- 完整保留老师口述的关键词(这是唯一的学生画像来源)
第 3 步:主题映射与推荐确认
读取 references/interest_guide_questions.md 映射规则 + references/theme_resources.md:
- 把老师口述关键词对照"关键词→主题对照表"计票
- 取 Top 1-2 主题,从该主题 × 该年级段的任务方向中推荐 1-3 个方向
- 逐条说明推荐理由(如"您提到孩子们喜欢 X,这个方向能让他们做 Y")
- 请老师确认主题与方向;未确认不得进入下一步
- 老师说不清兴趣时,用
theme_resources.md默认推荐矩阵,请老师按"最像/较像/不像"打分
第 4 步:确认系列框架
与老师确认后形成系列框架:
- 总驱动问题(儿童化提问,聚焦真实问题)
- 任务列表:课时 × 任务名 × 核心探究问题 × 主要材料(每系列含 1 节展示交流课)
- 总课时(默认 4,1-2 年级 4、3-4 年级 4-5、5-6 年级 5-6)
第 5 步:逐课时设计任务单内容
按 references/task_sheet_spec.md 的 series JSON 契约设计全部内容:
- 每课时:任务名称(动词开头儿童化)、驱动问题、学习目标("我能…"2-3 条)、材料清单(查
material_library.md,四要素:材料/数量/替代品/谁来带)、活动步骤(4-8 步)、小组分工、安全提示、记录表提示、发现问题、自我评价 - 评价量规:四维度 × 三档(☆☆☆/☆☆/☆),按年级段选择表述(1-2 表情、5-6 高阶)
- JSON 字符串内禁用 ASCII 双引号,引号用「」或中文引号
- 产出完整 series JSON,请老师快速过目确认后进入下一步
第 6 步:生成 docx
将确认后的 JSON 写入临时文件(如 ~/科学任务单_{系列名}.json),运行:
{python_path} {skill_dir}/scripts/generate_task_sheets.py \
--content {json临时文件路径} \
--output {输出docx路径}
{python_path}:Python 解释器路径,从config.json的python_path字段读取;若未配置则使用系统默认的python3/python{skill_dir}:本技能所在目录(安装后即为该技能根目录)- 输出路径约定:
~/Desktop/科学探究任务单/{系列名}_{年级段}年段_{YYYYMMDD}.docx(YYYYMMDD 用date +%Y%m%d或 Python 获取,不手工推算)
第 7 步:交付与迭代
用 present_files 打开生成的 docx 交付。如老师需微调:修改 series JSON 后重跑脚本;或提示使用 tencent-local-office-edit 技能继续编辑。
指令路由表
| 指令 | 说明 |
|---|---|
/科学任务单 |
完整运行 7 步工作流,生成一套系列任务单 |
/科学任务单测试 |
只运行第 1-5 步,输出系列框架与 JSON 供审阅,不生成 docx |
/科学任务单改主题 |
已生成后换主题:从第 3 步重跑(材料清单可复用) |
/科学任务单加课时 |
在现有系列中追加/插入一个课时任务单 |
/科学任务单配置 |
展示 config.json 当前配置 |
失败处理
| 场景 | 处理 |
|---|---|
| 老师说不清学生兴趣 | 用默认推荐矩阵给 3 个候选方向,请老师按"最像/较像/不像"打分 |
| 材料学校没有 | 查 material_library.md 替代方案,转家庭自带/户外收集;单任务成本超 ¥10/组则换材料 |
| 家长/学生临时要求换主题 | 回到第 3 步重新映射;已生成内容作废但材料清单可复用 |
| 老师不说年级段 | 暂停设计,必须先确认 1-2/3-4/5-6 三选一 |
| 兴趣太宽泛/太多 | 请老师聚焦最热的 1-2 个信号,其余记为"后续主题" |
| 学生人数多/课时少 | 压缩为 4 课时,相邻步骤合并,材料按 2-3 人一组共用 |
| 驱动问题不合适 | 按 theme_resources.md 同方向提供 2-3 个备选驱动问题 |
| JSON 含非法字符 | 检查是否误用 ASCII 双引号,改用「」或中文引号 |
| 模板锚点缺失 | 脚本输出缺失锚点警告,重新运行 build_template.py 重建模板 |
| 脚本报错 | 把报错信息返回,检查模板与 JSON 结构后重跑 |
| 老师要求初中内容 | 明确拒绝:本技能仅限小学阶段 |
反幻觉边界(严格禁止)
- 禁止编造《指南》政策原文:六大主题、学段目标、实施要求、评价维度一律引用
references/guide_policy_brief.md - 禁止另造任务方向:推荐方向必须来自
references/theme_resources.md的 18 组方向(可微调名称细节) - 禁止编造材料来源:材料必须标注实际获取渠道(学校/家庭/户外)
- 禁止虚构学生信息:学生兴趣画像只能来自老师口述,不自行脑补补充
- 禁止越过确认步骤:主题、系列框架、驱动问题未经老师确认不得生成 docx
- 禁止超出小学阶段:任何设计不得超出 1-6 年级;不安排真实细菌培养等有安全隐患的实验
已知局限
- 模板
assets/task_sheet_template.docx由脚本生成,如需改版式(字号/配色/区块)请修改scripts/build_template.py后重建,或在 Word 中微调后替换模板文件 - 对话引导依赖老师愿意描述学生情况,老师敷衍时产出质量下降
- 打印效果依赖打印机与字体(正文宋体、标题黑体)
- 仅覆盖小学阶段,不适用于初中
- 材料成本上限依赖
material_library.md的持续维护