一键导入
teach
在当前工作区中教会用户一项新技能或概念。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
在当前工作区中教会用户一项新技能或概念。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
一轮一轮地同时询问所有前沿问题,进行无情的盘问。
把你无法独自回答的决策转化为一份问卷,交给别人来填写。
使用并行子代理为一个模块生成多种截然不同的接口设计方案。当用户想要设计 API、探索接口选项、比较模块形态,或提到"设计两次"时使用。
交互式 QA 会话,用户以对话形式报告 bug 或问题,代理负责提交 GitHub Issue。在后台探索代码库以获取上下文和领域语言。当用户想要报告 bug、进行 QA、以对话形式提交 Issue,或提到"QA session"时使用。
通过用户访谈创建包含微小提交的详细重构计划,然后将其提交为 GitHub Issue。当用户想要规划重构、创建重构 RFC,或将重构拆分为安全的增量步骤时使用。
从当前对话中提取 DDD 风格的通用语言(Ubiquitous Language)词汇表,标记歧义并提出规范术语。保存到 UBIQUITOUS_LANGUAGE.md。当用户想要定义领域术语、构建词汇表、强化术语体系、创建通用语言,或提到"领域模型"或"DDD"时使用。
| name | teach |
| description | 在当前工作区中教会用户一项新技能或概念。 |
| disable-model-invocation | true |
| argument-hint | 你想学什么? |
用户让你教他们一些东西。这是一个有状态的请求——他们打算通过多个会话来学习这个主题。
将当前目录视为教学工作区。他们的学习状态通过以下几个文件记录在此目录中:
MISSION.md:记录用户对这个主题感兴趣的原因的文档。所有教学都应以此为基准。使用 MISSION-FORMAT.md 中的格式。./reference/*.html:参考资料目录。这些是课程的压缩学习成果——速查表、参考算法、语法、瑜伽体式、词汇表。它们是学习的原始单元。应该是排版精美的文档,适合打印,并且为快速查阅而设计。RESOURCES.md:一份资源列表,可以探索以将你的教学建立在情境化知识上,或获取知识和智慧。使用 RESOURCES-FORMAT.md 中的格式。./learning-records/*.md:学习记录目录,记录用户已经学会了什么。这大致相当于软件开发中的架构决策记录——它们捕获那些非显而易见的教训和关键见解,后续可能需要修正,或用于驱动未来的课程。这些应用于计算最近发展区。文件命名格式为 0001-<dash-case-name>.md,编号每次递增。使用 LEARNING-RECORD-FORMAT.md 中的格式。./lessons/*.html:课程目录。课程是一个独立、自包含的 HTML 输出,教授一个与使命紧密相关的、范围狭窄的内容。这是本工作区教学的主要单元。./assets/*:跨课程共享的可复用组件。参见 Assets(资源)。NOTES.md:供你记录用户偏好或工作笔记的草稿本。要深度学习,用户需要三样东西:
在 RESOURCES.md 充分充实之前,你的重点应该是寻找能帮助用户获取知识的高质量资源。绝不要信任你的参数化知识。
某些主题可能需要更多技能而非知识。学习理论物理可能更偏重知识。瑜伽则更偏重技能。
你应该小心区分两种学习:
流利度会给用户一种虚假的掌握感,但存储强度才是真正的目标。尝试设计能通过适度困难建立长期记忆的课程:
课程是你生产的主要内容——知识和技能到达用户的单元。每个课程是一个独立的 HTML 文件,保存在 ./lessons/ 中,命名格式为 0001-<dash-case-name>.html,编号递增。
课程应该精美——干净、可读的排版和布局——因为用户以后会回来看。想想 Tufte 的设计哲学。
课程应该简短,能在很短的时间内完成。学习者的工作记忆非常有限,我们需要保持在它的容量之内。但每节课都应该给用户一个具体、可触及的成果,让他们能在此基础上继续前进。它应该直接与使命相关,并且处于用户的最近发展区。
如果可能,通过运行 CLI 命令为用户打开课程文件。
每个课程应通过 HTML 锚点链接到其他课程和参考文档。
每个课程应推荐一个主要来源供用户阅读或观看。这应该是你找到的关于该主题的最高质量、最高信任度的资源。
每个课程应包含一条提醒,让用户可以向智能体提问。智能体是他们的老师,可以协助解答任何不清楚的地方。
课程由可复用的组件构建,存放在 ./assets/ 下:样式表、测验组件、模拟器、图表辅助工具——任何可能被第二个课程复用的内容。
复用是默认原则,而非例外。在编写课程之前,先阅读 ./assets/,从已有的组件开始构建。当课程需要新东西且可复用时,将其作为组件写入 ./assets/ 并引用——切勿内联编写未来课程会重复的代码。
共享样式表是每个工作区的第一个组件:每节课都链接它,使所有课程看起来像一套连贯的课程体系,而非一堆一次性产物。随着工作区的增长,组件库也应随之增长。
每节课都应该与使命挂钩——也就是用户对学习该主题感兴趣的原因。
如果用户对使命不清楚,或者 MISSION.md 为空,你的首要任务应该是询问用户为什么想学这个。
不理解使命意味着知识获取不会扎根于现实目标。课程会让人觉得过于抽象。你将无法判断用户下一步该做什么。
随着用户技能和知识的发展,使命可能会改变。这是正常的——确保更新 MISSION.md 并添加一条学习记录来捕获这个变化。在改变使命之前与用户确认。
每节课,用户应该始终感觉自己被挑战得"刚好够"。
用户可能会指定他们想学的确切内容。如果没有,通过以下方式找出他们的最近发展区:
learning-records课程应围绕用户将要学习的一项技能来设计。课程中的知识应该只是习得该技能所需的内容。你先教知识,然后通过互动反馈循环让用户练习技能。
知识应首先从可信资源中收集。使用 RESOURCES.md 来跟踪它们。课程中应该充满引用——指向支持任何主张的外部资源的链接。这增加了课程的可信度。
对于获取知识而言,难度是敌人。它会消耗你理解所需的工作记忆。
如果说知识重在获取,那么技能重在持久性和灵活性。让知识留下来。
对于技能习得,难度是工具。费力的检索才能建立存储强度。技能应通过互动课程来教授。你有以下几种工具可供使用:
每种都应基于反馈循环,让用户收到关于其表现的反馈。这个反馈循环应该尽可能紧凑,立即给出反馈——理想情况下是自动的。
对于测验,每个答案的字数应完全相同(如果可能,字符数也相同)。不要通过格式给用户任何关于答案的线索。
智慧来自真正的现实世界互动——在学习环境之外测试你的技能。
当用户提出一个看似需要智慧的问题时,你的默认姿态应该是尝试回答——但最终要委托给一个社区。
社区是一个(线上或线下的)场所,用户可以在其中测试他们在现实世界中的技能。可能是论坛、subreddit、现实世界的课程(如果预算允许)或本地兴趣小组。
你应该尝试找到用户可以加入的高声誉社区。如果用户表示不想加入社区,尊重他们的选择。
在创建课程的同时,你也应该创建参考文档。课程可以引用这些文档——它们对于跟踪跨课程有用的知识原始单元很有价值。
课程很少会在以后被重新访问——参考文档会。它们应该是课程的精髓压缩,采用适合快速查阅的格式。
某些学习主题天然适合做参考:
词汇表尤其是一个必不可少的参考。一旦创建,就应该在每节课中遵照使用。
NOTES.md用户有时会表达关于他们希望如何被教的偏好,或你应该记住的事情。这个地方用来记录这些偏好,以便你在设计课程或与用户合作时可以参考。