test-me 是做什么的?
用一个需要恰好具备成果所命名的能力的任务来检查一个成果,然后根据答案的表现采取行动。
基于:形成性评估(Black & Wiliam 1998)、铰链问题(Wiliam 2011)、建设性对齐(Biggs 1996)、产出优先于识别(McDaniel et al. 2007)、生成性任务(Fiorella & Mayer 2016)、评分标准(Jonsson & Svingby 2007)、精细化反馈(Shute 2008;Hattie & Timperley 2007)、权变支架和提示阶梯(Wood et al. 1976;Aleven et al. 2016)、错误分析(Brown & Burton 1978)、掌握标准(Kelly et al. 2015)。
数据库: 从学习者的项目根目录(开始聊天的文件夹)运行附带的脚本;它将数据保存在
./.learn/learn.db中。${CLAUDE_SKILL_DIR}是这个技能的文件夹;Claude Code 会自动填充它,其他代理应使用包含此 SKILL.md 的文件夹路径。
1. 设计活动
将任务与成果的动词匹配:如果动词是“解释”,则要求解释;“解决”或“编写”,则提出一个具有与课程不同表面细节的未见问题;“调试”,则提供有缺陷的工作来修复。
计划 2–3 个项目,每次一条消息给出:
- 铰链问题: 一个多项选择题或“预测会发生什么”,其中每个错误选项都对应一个特定的误解。正确答案必须难以猜测。
- 产出项目: 学习者自己在新问题(近迁移)上产生答案。
- (可选) 生成性项目: 解释原因,找出错误,或将其应用于略有不同的情况。
切勿重复使用课程或之前尝试中的项目。
2. 评估每个答案
- 在他们回答后立即问:“你有多确定:1 猜测,2 相当确定,3 肯定?”
- 根据从成果标准中提取的 2–4 标准评分标准(例如,正确结果、有效推理、使用正确术语)进行评判。裁决:
正确、部分正确或错误。 - 如果错误,对错误进行分类:疏忽(slip)、知识断层(gap,缺少先决条件)或误解(misconception,一个一致的错误规则)。
3. 提供反馈
保持简短,针对工作本身,并回答三个问题:
- 做对了什么: 一个具体的事情,引用他们的答案。
- 哪里不对: 最重要的问题,在其方法层面,而不仅仅是最终答案。
- 下一步: 一个具体的行动。
如果他们很自信但错了,要直白地说(“你很确定,但这是它失败的原因”);这样的纠正最有效。
回答错误时,每次新尝试给出一级提示,绝不直接跳到解决方案:
- 指示性提示:“再看一下第二步”
- 原则提示:“当……时,适用什么规则?”
- 部分工作步骤
- 完整解决方案,然后是一个 新的平行项目,他们必须在没有帮助的情况下解决
4. 记录每次尝试
在评估每个答案后,将其保存(每个项目尝试一行):
python3 "${CLAUDE_SKILL_DIR}/scripts/db.py" attempt '{"outcome_id": 7, "activity": "<the item>", "answer": "<learner answer>", "verdict": "correct", "feedback": "<short: error type, hint level used, confidence, what you told them>"}'
如果文本包含难以处理的引号,请在 stdin 上使用 heredoc。
5. 做出决定
当以下所有条件成立时,该成果被视为达成:
- 最后 连续 3 个项目 都正确
- 其中至少有一个是产出或迁移项目
- 没有一个需要提示阶梯的第 4 级
- 学习者至少给出过一个正确的解释,且信心为 2 或 3
然后标记它:
python3 "${CLAUDE_SKILL_DIR}/scripts/db.py" met '{"outcome_id": 7}'
这会保存成果达成的日期。结果会显示该节点中还剩下多少个成果。交回给 teach-me。
如果未达成,选择一个路线并交回给 teach-me:
- 疏忽 → 再做一个新项目
- 误解 → 通过让冲突可见来重新教授,然后进行新的活动
- 知识断层 → 教授或添加缺失的先决条件(create-map)
- 对同一成果连续 3 次以上的活动失败 → 成果太大;拆分步骤并教授更小的内容
常见陷阱
- 当成果要求产出时,使用识别性问题。
- 多项选择题的选项不能揭示学习者的思考方式。
- 在一次正确回答后就宣布掌握。
- 重复使用项目,导致学习者记住而不是思考。
- 在第一次出错时就直接给出答案。
- 一次列出所有错误。先修最重要的问题。