跳转至

教学

它的作用

teach 会将你运行它的目录变成一个持久教学工作区,并通过许多会话,以简短的自包含 HTML 课程形式教你一个主题。

它不根据模型已经知道的内容来教学。它将参数化知识视为不可信。在教学之前,它会寻找高可信资源,将它们记录在 RESOURCES.md 中,并在每节课中引用它们。它也是有状态的。任务、资源、课程以及你已学会内容的记录都以文件形式存在于目录中,因此下一次会话会从这些文件继续,而不是从上次对话的残留继续。

何时使用

你通过输入 /teach 来调用它;智能体不会自行使用它。

当学习本身就是项目时,请使用它:一门语言、一个框架、你刚加入的代码库、瑜伽、着色器、一项认证。它不是用于顺带解释一个概念的工具。

你想要的 该用什么
用数周时间学习一个主题,且会话可以累积 teach
在当前会话中解释一个想法 就在当前会话中直接问
智能体的上一条消息没有讲清楚,需要重新表述 wait-what
打磨你已有的思考,而不是获取新材料 grill-me
一个后台智能体阅读一手来源,并给你一份带引用的文档 research
学习盘问过程中出现的内容,而不打断盘问 handoff 交接到一个教学工作区,然后在那里 teach

前提条件

teach 构建的是一个目录,而不是生成一个文件,并且该技能假设每个工作区只有一个任务,因此请在你愿意将其完全交给单一主题的地方运行。不要把它放在你正在工作的项目中。单独的仓库是最佳归宿,比全局 ~/.learnings/ 文件夹或当前工作项目本身更好。专用仓库还可以让你提交课程,团队正是通过这种方式共享课程的。

该目录中会累积以下内容:

路径 内容
MISSION.md 你为什么学习这个主题。其他所有文件都依赖它。如果它缺失,teach 做的第一件事就是向你提问,直到它不再缺失
RESOURCES.md 它据以教学的经过审核的来源,分为“知识”和“智慧(社区)”
lessons/*.html 编号课程:教学的主要单元
reference/*.html 压缩版速查表、算法、术语表:你会反复查阅的文档
learning-records/*.md 关于你已可证明学会的内容的 ADR 风格笔记,用于决定接下来教什么
assets/* 可复用组件,从共享样式表开始,使课程看起来像一门课程
NOTES.md 你明确说明的教学偏好

关于该列表有两点说明。术语表适合大多数主题,但该技能附带了一个 GLOSSARY-FORMAT.md,而 SKILL.md 不再链接到它,因此只有你要求时才会生成一个(问题 #559)。所有内容都会落在你运行 /teach 的目录中。

存储强度,而非流畅度

用来思考的关键词是存储强度:长期保持,与流畅度相对,后者是当下回忆,阅读时感觉像已经掌握,但一周后就消失了。teach 通过有益难度来构建前者:提取练习、间隔和交错练习。知识学习在先。在这个阶段,难度会对你不利,因为它会消耗你理解所需的工作记忆。然后 teach 通过紧密的反馈循环来训练技能,在这个阶段难度就是工具。

两件事决定你会被教什么。任务(你想要这个的具体现实原因)是每节课的基础。没有它,课程会变得抽象,也没有任何东西决定接下来教什么。根据任务和学习记录,teach 会在你的最近发展区内选择下一课:足够难以需要付出努力,但不会超前到你无法学会。

存储强度也是该技能会反驳而不是附和的原因。需要智慧(现实世界判断力)的问题会得到一个尝试性答案,然后指向一个你可以验证它的社区。该技能不让你跳过测验。一位用户报告说,自己说了“非常感谢”,却被告知训练还没有完成。

课程、参考资料和组件

一个课程是一个自包含的 HTML 文件,短到可以一次完成,与任务相关,并带来一个具体成果。它引用来源,推荐一个一手来源让你亲自去读,并链接到同级课程和参考文档。

你很少会回到一个课程,但你会回到参考文档。因此,课程的简短形式(语法表、算法、体式序列、术语表)应放在 reference/ 中,而不是埋没在介绍它的课程里。

课程由 assets/ 中的组件构建:样式表、测验组件、模拟器、图表辅助工具。复用是默认做法。智能体在编写课程前会读取 assets/,并基于已有内容构建。对于第二个课程可能用到的任何新内容,它都会写成组件,而不是内联。共享样式表是每个工作区中的第一个组件,它使课程看起来像一门课程,而不是许多无关页面。

常见问题

它把文件放在哪里?我的文件最终出现在 ~/.claude/skills 中。 在你运行 /teach 的目录中(#377)。

我应该保持在一个会话中,还是每节课开始一个新会话? 三种方式都可以:保持在同一会话中、在新会话中重新调用 /teach,或在同一文件夹中打开新会话。每节课都是独立的一次调用。课程状态保存在文件夹中,而不是保存在对话中。常见做法是在工作区打开一个新会话,并说 /teach next lesson for <topic>。

我怎么知道它没有教我编造的内容? 仅凭该 skill 的保证,你无法知道。你需要阅读一手资料。teach 并不可靠到可以不加检查地信任,任何基于 LLM 构建的 skill 都是如此。其依据(RESOURCES.md、每节课中的引用、每节课推荐一个一手资料)让检查一节课变得成本很低。但这并不能消除检查的必要性。这种失败已经发生过:一位学习 2x2 Rubik's cube 的用户得到了编造的、无法解开的操作序列。遇到这种情况时,检查模型、harness、effort 设置和来源。在具有精确记号的过程性领域中风险最高,在输出可立即验证的地方风险最低,例如可以运行的代码。

测验的正确答案总是第一个选项。 多人在 Sonnet、Opus 和 GLM 上确认了这一点,目前仍未修复。SKILL.md 现在要求每个答案的字数相同。这消除了另一种线索(正确答案过去是唯一经过完整推理的选项),但并没有说明位置问题。一位贡献者测试了一种指令层面的位置修复,但在九节课中,正确答案仍然在 33 次中的 33 次落在 A 选项(#335)。因此真正的修复是 assets/ 中一个会打乱答案顺序的测验组件,而不是更好的措辞。在该组件发布之前,忽略答案位置。你的 assets/ 目录由你自行修改,因此你可以要求一个在渲染时打乱答案的组件作为本地修复。

它假设我已经知道一些东西,并且使用了从未定义的术语。 这是最常见的真实抱怨。没有评估步骤。teach 会根据 mission 和学习记录推断你的水平,而在第一个会话中还没有学习记录。一位在 wayfinder pipeline 中运行它的用户直截了当地说:“它从未通过追问来确定我的起点,因此对我已经知道的内容做了很多假设。”另一位用户报告说,课程使用了未定义的术语,还有一节关于其硬件的课程只讲了硬件能做什么,却从未说明它不能做什么。两件事有帮助:在第一条消息中说明你的先验知识和知识缺口,并在课程偏离时大声纠正水平,因为纠正会成为学习记录并引导下一节课。明确的知识评估步骤是一个长期存在的功能请求(#725),而不是已发布的行为。

它是否进行间隔重复,并且是否知道何时停止教学? 第一个答案是否,第二个答案也不可靠。该 skill 围绕间隔和交错来设计课程,但没有任何东西安排复习,也没有 Anki 或日历集成。用户经常要求这两者。一个相关缺口是退出标准。正如一位用户所说,teach “很擅长制作下一节课,但不太擅长知道何时停止并切换到复习或真实练习。”如果你想要复习或训练而不是新材料,请主动要求;该 skill 不会自行提出切换。

它只对代码有用吗? 不是。大多数报告的使用场景在编码之外:韩语、日语正式语域、钢琴、吉他、桌游设计、OpenSCAD、电影情节、Azure 和 CCNA 认证、大学考试,以及八岁和十岁的孩子获得关于密室逃脱和火蝾螈的可打印书籍。该 skill 中没有任何内容特定于编程。Mission、resources、最近发展区和训练在任何领域都以相同方式工作。在代码方面,用户报告最有价值的是在不熟悉的代码库或新团队的 stack 中快速熟悉情况,而不是从零开始学习一门语言。

我应该用哪个模型运行它? 没有标准答案,而且报告中的差异很大。用户报告说,较高的 reasoning effort 比中等设置产生更好的课程。一位用户通过 Copilot CLI 使用 Codex 运行同一个 skill,只得到一张 30 行的 HTML 卡片,而 Claude Code 生成了完整的一节课。如果你的组织允许在那里添加 skills,它可以在 Claude Cowork 中未经修改地运行。如果课程内容单薄,在重写 prompt 之前,先更换模型、harness 或 effort。

如果它正在正常工作

  • 它在空目录中做的第一件事是询问你为什么想要这个,而不是直接生成一节课。
  • RESOURCES.md 在课程之前被填充,并且每节课都列出一个值得你自己阅读的一手资料。
  • 课程中的声明带有外部链接。没有引用的课程就是该 skill 凭记忆在教。
  • 一节课可以一次完成,并让你能够做一件之前不会做的事。
  • 在文件夹中打开一个新会话并说“next lesson”会继续课程,而不是重新开始。
  • learning-records/ 不断增长,课程不再重复教授你已经展示过会的内容。
  • 课程看起来像一门课程:它们链接 assets/ 中的样式表,而不是每节课各自携带一份。
  • 需要判断的问题会把你指向论坛、subreddit 或课程,而不仅仅是一个答案。

它适合在哪里

teach 是一个随时可用的独立工具。它不是构建链中的一个步骤,也不与工程流程共享任何产物;只要你学习该主题,它就在自己的目录中工作。

它唯一真正的邻居是 handoff。它们一起回答“如果我正在被追问我不理解的东西,我该怎么办?”不要停下来学习。/handoff 到一个教学工作区,在那里用 /teach 学习该主题,然后返回并继续你之前中断的地方。附近的替代方案是 research,适用于你想要一份带引用的文档,而不是课程和记忆保持的情况。当你不确定哪个 skill 或流程适合时,ask-matt 会把你路由到整个集合。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 skills13/skills