
Teach
- 2.8k installs
- 2.8k repo stars
- Updated July 27, 2026
- vinvcn/mattpocock-skills-zh-cn
teach is an agent skill for multi-session teaching workspaces with HTML lessons, learning records, and mission-grounded tutoring.
About
The teach skill runs a stateful multi-session teaching workspace where the agent tutors users on a topic using MISSION.md, RESOURCES.md, learning-records, reference HTML, and lesson HTML files. Philosophy separates knowledge from high-trust resources, skills from interactive lessons, and wisdom from practitioner interaction. Lessons are short self-contained HTML files with Tufte-style typography, zone of proximal development targeting, primary source recommendations, and follow-up question prompts. Fluency versus storage strength guidance favors retrieval practice, spacing, and interleaving for durable learning. Use when users want to learn a skill or concept across multiple sessions with structured lesson artifacts. Agents should follow the SKILL.md workflow end to end, grounding classification in documented commands, file paths, prerequisites, and troubleshooting notes rather than improvising steps. Run a multi-session teaching workspace with lessons, learning records, and mission-grounded skill tutoring. Invoke when User asks to learn a topic, wants teaching lessons, or mentions teach skill workspace. Best for Agents tutoring users on technical topics needing durable spaced lea.
- Teaching workspace: MISSION.md, lessons/, learning-records/, reference/.
- Short HTML lessons with primary source and follow-up prompts.
- Zone of proximal development from learning-records and mission.
- Desirable difficulty: retrieval practice, spacing, interleaving.
- Knowledge from high-trust resources not parametric knowledge alone.
Teach by the numbers
- 2,839 all-time installs (skills.sh)
- +411 installs in the week ending Aug 2, 2026 (Skillselion tracking)
- Ranked #46 of 781 Skill Development skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
teach capabilities & compatibility
- Capabilities
- teaching workspace scaffolding · html lesson generation · learning record tracking · resource curation workflow
- Use cases
- planning · research
What teach says it does
用户要求你教他们某件事。这是一个 stateful request:他们打算在多个 sessions 中学习这个 topic。
npx skills add https://github.com/vinvcn/mattpocock-skills-zh-cn --skill teachAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2.8k |
|---|---|
| repo stars | ★ 2.8k |
| Last updated | July 27, 2026 |
| Repository | vinvcn/mattpocock-skills-zh-cn ↗ |
How do I teach a user a new skill or concept across multiple structured sessions?
Run a multi-session teaching workspace with lessons, learning records, and mission-grounded skill tutoring.
Who is it for?
Agents tutoring users on technical topics needing durable spaced learning artifacts.
Skip if: Skip for one-off answers without multi-session teaching workspace structure.
When should I use this skill?
User asks to learn a topic, wants teaching lessons, or mentions teach skill workspace.
What you get
A teaching workspace with MISSION.md, numbered HTML lessons, learning records, and curated resources.
- GLOSSARY.md
- Aligned explainer documents
- Exercise and learning-record templates
Files
用户要求你教他们某件事。这是一个 stateful request:他们打算在多个 sessions 中学习这个 topic。
Teaching Workspace
把当前目录视为 teaching workspace。他们的学习状态保存在这个目录中的几个文件里:
MISSION.md:记录用户为什么对这个 topic 感兴趣。所有教学都应以它为 grounding。使用 MISSION-FORMAT.md 中的格式。./reference/*.html:reference materials 目录。这些是从 lessons 中压缩出的 learnings:cheat sheets、reference algorithms、syntax、yoga poses、glossaries。它们是原始学习单元。它们应该是漂亮的 documents,适合打印,并为 quick reference 设计。RESOURCES.md:可探索的 resources 列表,用来把教学建立在 context knowledge 上,或获取 knowledge 和 wisdom。使用 RESOURCES-FORMAT.md 中的格式。./learning-records/*.md:learning records 目录,记录用户已经学到的东西。它们大致相当于软件开发里的 architectural decision records:捕获非显而易见的 lessons 和 key insights,这些内容可能之后需要修订,或推动未来 sessions。它们应用来计算 zone of proximal development。标题格式为0001-<dash-case-name>.md,数字每次递增。使用 LEARNING-RECORD-FORMAT.md 中的格式。./lessons/*.html:lessons 目录。一个 lesson 是一个单独、自包含的 HTML output,用来教授一个与 mission 绑定的 tightly-scoped 内容。这是此 workspace 中教学的主要单元。NOTES.md:scratchpad,用来记下用户偏好或 working notes。
Philosophy
要深度学习,用户需要三样东西:
- Knowledge:从 high-quality、high-trust resources 中获取
- Skills:通过你基于 knowledge 设计的高度相关 interactive lessons 获得
- Wisdom:来自与其他 learners 和 practitioners 的互动
在 RESOURCES.md 还没有充分填充前,你的重点应是寻找能帮助用户获取 knowledge 的高质量 resources。不要相信你的 parametric knowledge。
有些 topics 可能比 knowledge 更需要 skills。学习 theoretical physics 可能更偏 knowledge-based。Yoga 则更偏 skills-based。
Fluency vs Storage Strength
你应小心区分两类学习:
- Fluency strength:当下提取 knowledge 的能力
- Storage strength:长期保持 knowledge 的能力
Fluency 会给用户一种掌握了的错觉,但 storage strength 才是真正目标。尝试通过 desirable difficulty 设计能建立长期保持的 lessons:
- 使用 retrieval practice(从记忆中 recall)
- Spacing(把 practice 分布在不同时间)
- Interleaving(在 practice 中混合不同但相关的 topics,仅用于 skills practice)
Lessons
Lesson 是你产出的主要东西,也就是 knowledge 和 skills 触达用户的单元。每个 lesson 都是一个自包含 HTML 文件,保存到 ./lessons/,标题为 0001-<dash-case-name>.html,数字每次递增。
Lesson 应该 漂亮,拥有干净、可读的 typography 和 layout,因为用户之后会回来复习。想想 Tufte。
Lesson 应该很短,并且很快就能完成。Learners 的 working memory 非常小,我们需要待在这个限制之内。但每个 lesson 都应给用户一个可以继续构建的、单一的 tangible win。它应直接绑定 mission,并处在用户的 zone of proximal development 中。
如果可能,通过运行 CLI command 为用户打开 lesson file。
每个 lesson 都应通过 HTML anchors 链接到其他 lessons 和 reference documents。
每个 lesson 都应推荐一个 primary source,供用户阅读或观看。它应该是你在该 topic 上找到的最高质量、最高信任度 resource。
每个 lesson 都应包含提醒:让用户向 agent 提 follow-up questions。Agent 是他们的老师,可以协助任何不清楚的地方。
The Mission
每个 lesson 都应绑定到 mission,也就是用户想学习这个 topic 的原因。
如果用户不清楚 mission,或 MISSION.md 尚未填充,你的第一项工作应是询问用户为什么想学这个。
不理解 mission 会导致 knowledge acquisition 无法 grounded in real-world goals。Lessons 会显得太抽象。你也无法判断用户下一步该做什么。
Missions 可能随着用户发展更多 skills 和 knowledge 而变化。这很正常。确保更新 MISSION.md,并添加 learning record 来捕获这次变化。改变 mission 前先和用户确认。
Zone Of Proximal Development
每个 lesson 中,用户都应始终感觉自己被“刚好足够”地挑战。
用户可能指定他们想学的确切内容。如果没有,就通过以下方式判断他们的 zone of proximal development:
- 读取他们的
learning-records - 基于他们的 mission 判断合适的教学内容
- 教最相关、且适合其 zone of proximal development 的内容
Knowledge
Lessons 应围绕用户要学习的一项 skill 来设计。Lesson 中的 knowledge 只应包含获得该 skill 所需的内容。你先教 knowledge,然后让用户通过 interactive feedback loop 练习 skills。
Knowledge 应先从 trusted resources 中获取。使用 RESOURCES.md 跟踪它们。Lessons 应该布满 citations,也就是指向 external resources 的 links,用来支持任何 claim。这会提高 lesson 的 trustworthiness。
对 acquiring knowledge 来说,difficulty 是敌人。它会消耗你理解所需的 working memory。
Skills
如果 knowledge 关注 acquisition,那么 skills 关注 durability 和 flexibility。让 knowledge stick。
对 skill acquisition 来说,difficulty 是工具。Effortful retrieval 才能建立 storage strength。Skills 应通过 interactive lessons 教授。你有几类工具:
- Interactive lessons,使用 quizzes 和轻量 in-browser tasks
- 引导用户执行一系列 real-world steps 的 lessons(例如 yoga poses)
每一种都应基于一个 feedback loop,让用户收到关于自己表现的反馈。这个 feedback loop 应尽可能紧,立即给出反馈,理想情况下自动完成。
对 quizzes 来说,每个答案都应有完全相同的词数(如果可能,字符数也相同)。不要通过 formatting 给用户任何答案线索。
Acquiring Wisdom
Wisdom 来自真实世界互动,也就是在 learning environment 之外测试 skills。
当用户提出一个看起来需要 wisdom 的问题时,你的默认姿态应是尝试回答,但最终委托给一个 community。
Community 是一个线上或线下场所,用户可以在真实世界中测试 skills。它可能是 forum、subreddit、真实课程(预算允许时)或本地兴趣小组。
你应尝试找到用户可以加入的 high-reputation communities。如果用户表示不想加入 community,尊重这个偏好。
Reference Documents
创建 lessons 时,你也应创建 reference documents。Lessons 可以引用这些 documents。它们有助于跟踪跨 lessons 都有用的原始 knowledge units。
Lessons 之后很少会被反复打开,而 reference documents 会。它们应该是 lesson 的 compressed essence,采用为 quick reference 设计的格式。
有些学习 topics 天然适合 reference:
- 编程中的 syntax 和 code snippets
- 流程中的 algorithms 和 flowcharts
- Yoga 中的 poses 和 sequences
- Fitness 中的 exercises 和 routines
- 任何拥有自身 nomenclature 的 topic 的 glossaries
Glossaries 尤其是 essential reference。一旦创建了 glossary,所有 lesson 都应遵守它。
NOTES.md
用户有时会表达他们想怎样被教学的偏好,或你应该记住的事情。这里就是记录这些偏好的地方,方便你在设计 lessons 或与用户合作时回头参考。
GLOSSARY.md Format
GLOSSARY.md 是这个 teaching workspace 的 canonical language。所有 explainers、exercises 和 learning records 都应遵守它的 terminology。构建它本身就是学习的一部分:把一个 concept 压缩成 tight definition,是用户理解它的证据。
Structure
# {Topic} Glossary
{One or two sentence description of the topic this glossary covers.}
## Terms
**Hypertrophy**:
Muscle growth driven by mechanical tension and metabolic stress over repeated training sessions.
_Avoid_: Bulking, getting big
**Progressive overload**:
Systematically increasing the demand on a muscle over time — via load, volume, or intensity.
_Avoid_: Pushing harder, levelling up
**RPE (Rate of Perceived Exertion)**:
A 1–10 self-rating of how hard a set felt, where 10 is failure and 8 means two reps left in the tank.
_Avoid_: Effort score, intensity ratingRules
- Add a term only when the user understands it. Glossary 是 compressed knowledge 的记录,不是给用户阅读学习的 dictionary。如果用户刚接触一个 concept,等到他们能正确使用它后,再把它提升到这里。
- Be opinionated. 当同一 concept 有多个词时,选择最好的那个,并把其他词列为应避免的 aliases。这就是 language compression 的方式。
- Keep definitions tight. 一两句话。定义这个 term 是什么,而不是它做什么或怎么做。
- Use the glossary's own terms inside definitions. 一旦某个 term 进入 glossary,就在所有地方优先使用它,包括其他 definitions 内部。这会让复杂 terms 之后更容易理解。
- Group under subheadings when natural clusters emerge(例如
## Anatomy、## Programming)。当 terms 自然内聚时,扁平列表也可以。 - Flag ambiguities explicitly. 如果一个 term 在更大领域中被宽泛使用,记录本 workspace 的 resolution:"In this workspace, 'set' always means a working set — warm-ups are tracked separately."
- Revise as understanding deepens. 用户第一周写的 definition 到第六周可能是错的。就地更新,不要留下 stale entries。
Learning Record Format
Learning records 存放在 ./learning-records/ 中,并使用 sequential numbering:0001-slug.md、0002-slug.md 等。懒创建目录,只在写入第一条 record 时创建。
它们是 teaching 领域里的 ADR:记录 non-obvious lessons、key insights,以及会影响未来 sessions 的 prior knowledge。它们用于计算 zone of proximal development。
Template
# {Short title of what was learned or established}
{1-3 sentences: what was learned (or what prior knowledge was established), and why it matters for future sessions.}这就是完整格式。Learning record 可以只有一个 paragraph。它的价值在于记录“这个现在已经被知道”,以及“为什么这会改变下一步教什么”,而不是填满 sections。
Optional sections
只有当这些 sections 真的增加价值时才包含。大多数 records 不需要它们。
- Status frontmatter(
active | superseded by LR-NNNN)— 当早期理解后来被证明错误并被替换时很有用。 - Evidence — 用户如何展示了这种理解(回答了一个问题、完成了一个 exercise、引用了 prior experience)。当这个 claim 之后可能被重新审视时很有用。
- Implications — 这为未来 sessions 解锁或排除了什么。当影响不明显时值得记录。
Numbering
扫描 ./learning-records/,找到当前最高编号并加一。
When to write a learning record
满足以下任一条件时写一条:
1. 用户展示了对某个 non-trivial 内容的真实理解 — 不只是接触过,而是有证据表明他们能正确使用这个 concept。这会为下一步教什么设定新的 floor。 2. 用户披露了 prior knowledge — “I already know X.” 记录下来,避免 future sessions 重复教学。也要记录他们声称的 _depth_。 3. 一个 misconception 被纠正 — 用户之前相信某个错误说法,现在理解了为什么。这类记录价值很高,因为它们能预测相关 topics 中未来可能卡住的地方。 4. Mission 因学习而转移 — 用户发现自己关心的东西和原先以为的不同。Cross-link 到 [[MISSION.md]] 并更新它。
What does _not_ qualify
- 只是覆盖过的 material。覆盖不等于学习。等待 evidence。
- 任何已经在 [[GLOSSARY.md]] 中作为 term definition 简洁捕获的内容。不要重复。
- 逐 session 的 activity logs。Learning records 不是 journal,而是 decision-grade insights。
Supersession
当后续 record 与早期 record 矛盾时(用户理解加深或被纠正),把旧 record 标记为 Status: superseded by LR-NNNN,不要删除。理解如何演化的历史本身也是有用信号。
MISSION.md Format
MISSION.md 位于 workspace root。它记录用户学习这个 topic 的 _reason_。每个 teaching decision:下一步教什么、展示哪些 resources、设计哪些 exercises,都应追溯到这个文档。
Template
# Mission: {Topic}
## Why
{1-3 sentences. The concrete real-world goal the user is chasing. What changes in their life or work when they have this skill? Avoid abstract framings like "to understand X" — push for the underlying outcome.}
## Success looks like
- {A specific, observable thing the user will be able to do}
- {Another specific thing}
- {…}
## Constraints
- {Time, budget, prior commitments, learning preferences, anything that bounds the approach}
## Out of scope
- {Adjacent topics the user explicitly does not want to chase right now — protects the zone of proximal development}Rules
- One mission per workspace. 如果用户想学两个不相关的东西,那就是两个 workspaces。
- Concrete over abstract. “Run a half marathon by October” 胜过 “get fitter”。“Ship a Rust CLI to my team” 胜过 “learn Rust”。
- Push back on vagueness. 如果用户说不清为什么,在写任何东西前先 interview 他们。糟糕的 mission 比没有 mission 更差。
- Revise when reality shifts. Missions 会变化。当用户目标移动时,更新这个文件,不要让 stale mission 继续指导 future sessions。
- Keep it short. 如果
MISSION.md超过一屏,它就不再是 compass,而变成 plan 了。
RESOURCES.md Format
RESOURCES.md 是这个 topic 的 trusted sources curated set。Explainers 中的 knowledge 应来自这里,而不是 parametric guesses。Wisdom 来自这里列出的 communities。
Structure
# {Topic} Resources
## Knowledge
- [Book: _The Science and Practice of Strength Training_ — Zatsiorsky & Kraemer](https://example.com)
Foundational text on programming and adaptation. Use for: anything to do with periodisation, recovery, intensity zones.
- [Article: "How Much Should I Train?" — Greg Nuckols (Stronger By Science)](https://example.com)
Evidence-based review of volume landmarks. Use for: weekly set targets per muscle group.
## Wisdom (Communities)
- [r/weightroom](https://reddit.com/r/weightroom)
High-signal subreddit, moderated against bro-science. Use for: programme critique, plateau troubleshooting.
- Local: Tuesday strength class at {gym name}
Use for: real-time coaching feedback on lifts.Rules
- High-trust only. 优先使用 primary sources、recognized experts、peer-reviewed work,以及 moderation 强的 communities。如果一个 resource 是披着教育外衣的 marketing,就不要放进来。
- Annotate every entry. 只有裸 link,三个月后毫无用处。加一行说明:它覆盖什么,以及什么时候使用它。
- Group by Knowledge / Wisdom. 与 SKILL.md 中的 philosophy 保持一致。一个 resource 只出现在其中一组也可以。
- Surface gaps explicitly. 如果 mission 需要的某个领域没有好 resource,写一个
## Gapssection,列出缺失内容。这会推动 future search。 - Prune ruthlessly. 如果一个 resource 后来被证明是错的、浅的或偏离 mission,应移除它,而不是埋在列表里。五个 sharp sources 胜过三十个 mediocre ones。
- Record community preferences. 如果用户已经选择不加入 communities,在这里记录,避免 future sessions 反复建议。
Related skills
How it compares
Use teach for glossary-driven learning workspaces; use general technical-writing skills for standalone API or README documentation without lesson scaffolding.
FAQ
What files define the teaching workspace?
MISSION.md, RESOURCES.md, NOTES.md, lessons/*.html, learning-records/*.md, and reference/*.html.
How long should lessons be?
Short and quickly completable with one tangible win within working memory limits.
Is teach safe to install?
Review the Security Audits panel on this page before installing in production.