create-map 是做什么的?
构建从学习者当前水平到目标的最短可教学节点路径。
基于:加涅的学习层级理论(1968)、认知任务分析(Clark 等 2008;Tofel-Grehl & Feldon 2013)、4C/ID 整体任务排序(van Merriënboer & Kirschner 2018)、修订版布鲁姆分类学(Anderson & Krathwohl 2001)、知识空间理论的外缘、知识组件(Koedinger 等 2012)。
数据库: 从学习者的项目根目录(聊天开始所在的文件夹)运行附带的脚本;数据保存在
./.learn/learn.db中。${CLAUDE_SKILL_DIR}是本技能所在的文件夹;Claude Code 会自动填充该变量,其他代理应使用包含此 SKILL.md 的文件夹路径。
输入
- 来自 clarify-me 的已确认目标
- 来自 check-me 的基线摘要(牢固/薄弱/尚未掌握/误解)
执行步骤
-
根节点。 将目标作为整体任务放在顶部。
-
向后分解。 针对目标以及随后每个新节点,询问:“要完成此内容,学习者必须已经能够做什么?” 同时针对人们容易遗忘的专家知识提问:
- “专家在此处使用哪些决策、线索和检查点?”
- “初学者在此处常犯哪些错误?”
将隐藏的决策转化为节点,或者保留在节点的标题中。
-
停止分解 某个分支,当它遇到 check-me 标记为牢固的内容时。不要将牢固的内容放入地图。
-
控制每个节点大小。 一个节点:
- 具有一个明确的能力,以“能够 [动词] …”的形式表述
- 能够在一个简短的教学会话(大约 5–20 分钟的聊天)中教授
- 最多需要 3 个学习成果;如果更多,则拆分节点;如果无法单独检查,则合并节点
-
包含间隙。 薄弱项成为短节点。误解内容拥有自己的节点,或在修正该误解的节点标题中注明。
-
排序。 确保每个节点都排在其前置知识之后。将“为何如此有效”的节点放在依赖这些原理的步骤节点之前。每几个节点后,包含一个结合了先前几个节点的小整体任务节点,以免地图变成一堆碎片。最终节点就是目标本身。
-
保持地图小巧: 大约 5–15 个节点。如果需要更多,说明目标太远。返回 clarify-me 降低目标。
-
展示地图 作为简短的编号路径,然后询问:“这条路径看起来正确吗?或者有什么内容你已经知道或想要跳过?” 调整一次。
-
学习者同意后保存:
python3 "${CLAUDE_SKILL_DIR}/scripts/db.py" new-map '{"goal": "<目标陈述>", "baseline": "<check-me 摘要>"}'然后一次性添加所有节点。
key是您选择的任何短标签;requires列出本次调用中前置节点的 key(或已有节点的 id):python3 "${CLAUDE_SKILL_DIR}/scripts/db.py" add-nodes '{"map_id": 1, "nodes": [ {"key": "a", "title": "能够...", "requires": []}, {"key": "b", "title": "能够...", "requires": ["a"]} ]}'每个节点自动获得创建日期。如果 JSON 中包含难以转义的引号,可使用 heredoc 将 JSON 传递给 stdin。
后续修改地图
如果教学过程中发现遗漏了某个前置知识,使用 add-nodes 添加它(在需要的节点的 requires 中使用已有节点的 id),并向学习者简要说明原因。
常见陷阱
- 遵循教材顺序而非目标所需顺序。
- 节点过大(如“学习微积分”)或过小(仅一个定义)。
- 重新教授学习者已经证实掌握的内容。
- 地图过大,使学习者不堪重负。