Community生产力与协作github.com

loselen/test-me

设计一个简短的活动,检查一个学习成果,用评分标准评估学习者的尝试,提供有针对性的反馈和提示,将每次尝试记录在SQLite中,并决定该成果是否达成。在每个 teach-me 步骤结束时使用。

test-me 是什么?

test-me 是一个用于 AI 辅助教学环境(如 Claude Code)的技能,它实现了基于研究的形成性评估循环。该技能接收一个特定的学习成果(例如“解释……的原因”或“编写一个遍历数组的函数”),然后自动设计一个多步骤测试活动。测试包含一个确保早期理解的“铰链问题(hinge item)”,一个要求学习者自主生产答案的生产性任务,以及一个可选的、需要更深层理解的生成性任务。 当学习者作答时,test-me 会评估其回答的准确性、信心水平,并基于预设的评分标准给出“正确”、“部分正确”或“错误”的判定。如果错误,它会将错误分类为疏忽(slip)、知识断层(gap)或误解(misconception),并提供结构化的、有指导性的反馈而非直接给出答案。所有尝试记录在一个本地的 SQLite 数据库 (`./.learn/learn.db`) 中。最后,该技能根据连续无误回答、包含至少一个生产性任务、无第四级提示以及学习者表现出合理的信心等标准,决定该学习成果是否已达成。它会将结果反馈给上游的“teach-me”流程。该技能基于形成性评估、建设性对齐和线索支架等可靠的教育研究。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/loselen/learn-anything/tree/HEAD/skills/test-me

Installed? Explore more 生产力与协作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

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 个项目,每次一条消息给出:

  1. 铰链问题: 一个多项选择题或“预测会发生什么”,其中每个错误选项都对应一个特定的误解。正确答案必须难以猜测。
  2. 产出项目: 学习者自己在新问题(近迁移)上产生答案。
  3. (可选) 生成性项目: 解释原因,找出错误,或将其应用于略有不同的情况。

切勿重复使用课程或之前尝试中的项目。

2. 评估每个答案

  1. 在他们回答后立即问:“你有多确定:1 猜测,2 相当确定,3 肯定?”
  2. 根据从成果标准中提取的 2–4 标准评分标准(例如,正确结果、有效推理、使用正确术语)进行评判。裁决:正确、部分正确 或 错误。
  3. 如果错误,对错误进行分类:疏忽(slip)、知识断层(gap,缺少先决条件)或误解(misconception,一个一致的错误规则)。

3. 提供反馈

保持简短,针对工作本身,并回答三个问题:

  • 做对了什么: 一个具体的事情,引用他们的答案。
  • 哪里不对: 最重要的问题,在其方法层面,而不仅仅是最终答案。
  • 下一步: 一个具体的行动。

如果他们很自信但错了,要直白地说(“你很确定,但这是它失败的原因”);这样的纠正最有效。

回答错误时,每次新尝试给出一级提示,绝不直接跳到解决方案:

  1. 指示性提示:“再看一下第二步”
  2. 原则提示:“当……时,适用什么规则?”
  3. 部分工作步骤
  4. 完整解决方案,然后是一个 新的平行项目,他们必须在没有帮助的情况下解决

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 次以上的活动失败 → 成果太大;拆分步骤并教授更小的内容

常见陷阱

  • 当成果要求产出时,使用识别性问题。
  • 多项选择题的选项不能揭示学习者的思考方式。
  • 在一次正确回答后就宣布掌握。
  • 重复使用项目,导致学习者记住而不是思考。
  • 在第一次出错时就直接给出答案。
  • 一次列出所有错误。先修最重要的问题。

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

相关技能