# Teach

在当前工作区中教会用户一项新技能或概念。

- Repository: https://github.com/devcxl/mattpocock-skills-zh (522 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add devcxl/mattpocock-skills-zh --skill teach -g -a claude-code -y`
Codex: `npx skills add devcxl/mattpocock-skills-zh --skill teach -g -a codex -y`
Cursor: `npx skills add devcxl/mattpocock-skills-zh --skill teach -g -a cursor -y`
Gemini CLI: `npx skills add devcxl/mattpocock-skills-zh --skill teach -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add devcxl/mattpocock-skills-zh`

## Description

在当前工作区中教会用户一项新技能或概念。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

用户让你教他们一些东西。这是一个有状态的请求：他们打算通过多个会话来学习这个主题。

## 教学工作区

将当前目录视为教学工作区。`./lessons/` 等工作区路径相对于运行 `/teach` 的目录解析；只有 `*-FORMAT.md` 链接相对于此技能文件夹解析。他们的学习状态通过以下几个文件记录在此目录中：

- `MISSION.md`：记录用户对这个主题**感兴趣的原因**的文档。所有教学都应以此为基准。使用 [MISSION-FORMAT.md](./MISSION-FORMAT.md) 中的格式。
- `./reference/*.html`：参考资料目录。这些是课程的压缩学习成果：速查表、参考算法、语法、瑜伽体式、词汇表。它们是学习的原始单元。应该是排版精美的文档，适合打印，并且为快速查阅而设计。
- `RESOURCES.md`：一份资源列表，可以探索以将你的教学建立在情境化知识上，或获取知识和智慧。使用 [RESOURCES-FORMAT.md](./RESOURCES-FORMAT.md) 中的格式。
- `./learning-records/*.md`：学习记录目录，记录用户已经学会了什么。这大致相当于软件开发中的架构决策记录：它们捕获那些非显而易见的教训和关键见解，后续可能需要修正，或用于驱动未来的课程。这些应用于计算最近发展区。文件命名格式为 `0001-<dash-case-name>.md`，编号每次递增。使用 [LEARNING-RECORD-FORMAT.md](./LEARNING-RECORD-FORMAT.md) 中的格式。
- `./lessons/*.html`：课程目录。**课程**是一个独立、自包含的 HTML 输出，教授一个与使命紧密相关的、范围狭窄的内容。这是本工作区教学的主要单元。
- `./assets/*`：跨课程共享的可复用**组件**。参见 [Assets（资源）](#assets)。
- `NOTES.md`：供你记录用户偏好或工作笔记的草稿本。

## 哲学

要深度学习，用户需要三样东西：

- **知识（Knowledge）**，从高质量、高信任度的资源中获取
- **技能（Skills）**，通过你基于知识设计的高度相关的互动课程来习得
- **智慧（Wisdom）**，来自与其他学习者和实践者的交流

在 `RESOURCES.md` 充分充实之前，你的重点应该是寻找能帮助用户获取知识的高质量资源。绝不要信任你的参数化知识。

某些主题可能需要更多技能而非知识。学习理论物理可能更偏重知识。瑜伽则更偏重技能。

### 流利度 vs 存储强度

你应该小心区分两种学习：

- **流利度（Fluency strength）**：当下即时调取知识的能力
- **存储强度（Storage strength）**：长期保留知识的能力

流利度会给用户一种虚假的掌握感，但存储强度才是真正的目标。尝试设计能通过适度困难建立长期记忆的课程：

- 使用检索练习（从记忆中回忆）
- 间隔（将练习分散到不同时间）
- 交错（在练习中混合不同但相关的主题：仅适用于技能练习）

## 课程

课程是你生产的主要内容：知识和技能到达用户的单元。每个课程是一个独立的 HTML 文件，保存在 `./lessons/` 中，命名格式为 `0001-<dash-case-name>.html`，编号递增。

课程应该**精美**：干净、可读的排版和布局：因为用户以后会回来看。想想 Tufte 的设计哲学。

课程应该简短，能在很短的时间内完成。学习者的工作记忆非常有限，我们需要保持在它的容量之内。但每节课都应该给用户一个具体、可触及的成果，让他们能在此基础上继续前进。它应该直接与使命相关，并且处于用户的最近发展区。

如果可能，通过运行 CLI 命令为用户打开课程文件。

每个课程应通过 HTML 锚点链接到其他课程和参考文档。

每个课程应推荐一个主要来源供用户阅读或观看。这应该是你找到的关于该主题的最高质量、最高信任度的资源。

每个课程应包含一条提醒，让用户可以向智能体提问。智能体是他们的老师，可以协助解答任何不清楚的地方。

## Assets（资源）

课程由可复用的**组件**构建，存放在 `./assets/` 下：样式表、测验组件、模拟器、图表辅助工具：任何可能被第二个课程复用的内容。

复用是默认原则，而非例外。在编写课程之前，先阅读 `./assets/`，从已有的组件开始构建。当课程需要新东西且可复用时，将其作为组件写入 `./assets/` 并引用：切勿内联编写未来课程会重复的代码。

The rest: https://github.com/devcxl/mattpocock-skills-zh/blob/HEAD/skills/productivity/teach/SKILL.md
