首页 › skills-review › 55万安装的teach:AI家教拆解

总榜#42的teach:一个会记笔记、会出题、永不失忆的AI家教

概述

本期聚焦 mattpocock/skills 仓库中被忽视的一块拼图:总榜第42位、55.9万安装的 teach。前几轮已拆过同仓库的 grill-me、tdd、架构审查,本期补上最后一块,并顺带拆开支撑整个「 grill 家族」的 1872 字节原语 grilling、以及只有 433 字节的编排器 implement。本期核心发现有三个:一是 teach 把「目录即状态」的多会话学习工作区写成了规范,是 Skills 生态里少见的「长周期任务」范本;二是该仓库存在清晰的「用户指令层薄壳 + 模型自动调用层原语」双层架构,7 个 Skill 的 SKILL.md 不到 1KB;三是仓库用 .out-of-scope/、in-progress/、deprecated/ 三个目录管理 Skill 生命周期,这本身就是一份 Skill 工程化模板。

本周榜单快照(skills.sh,2026-08-30 抓取)

排名 Skill 仓库 安装量
1 find-skills vercel-labs/skills 320万
2 grill-me mattpocock/skills 100万
3 grill-with-docs mattpocock/skills 85.9万
4 frontend-design anthropics/skills 83.5万
5 improve-codebase-architecture mattpocock/skills 82.7万
6 tdd mattpocock/skills 79.9万
7 agent-browser vercel-labs/agent-browser 75.4万
8 setup-matt-pocock-skills mattpocock/skills 73.6万
38 grilling mattpocock/skills 57.8万
42 teach mattpocock/skills 55.9万
71 implement mattpocock/skills 45.8万

mattpocock 一个仓库占了前 8 名中的 5 席。但大多数分析都停在了 grill 家族,teach 这个 55.9 万安装的「非编码类」Skill 反而没人细看——它可能是整个仓库里提示词工程密度最高的一份文件。

评测对比表

Skill 功能完整度(25%) 设计质量(25%) 实战效果(20%) 上手难度(15%) 社区活跃度(15%) 加权总分
teach ★★★★½ ★★★★★ ★★★★ ★★★★ ★★★★½ 4.45
grilling ★★★★½ ★★★★★ ★★★★½ ★★★★ ★★★★½ 4.55
implement ★★★★ ★★★★½ ★★★★ ★★★★½ ★★★★½ 4.30
code-review ★★★★½ ★★★★½ ★★★★½ ★★★½ ★★★★½ 4.40
tdd ★★★★½ ★★★★½ ★★★★½ ★★★★ ★★★★½ 4.45

深度拆解:teach 的 SKILL.md 逐段精读

整个文件 9507 字节,frontmatter 一共五行:

---
name: teach
description: Teach the user a new skill or concept, within this workspace.
disable-model-invocation: true
argument-hint: "What would you like to learn about?"
---

三个设计点值得放大。第一,disable-model-invocation: true 明确关掉了模型自动触发——学习是一个需要人主动发起的意图,不该由 Agent 猜测触发,这与仓库 README 里「user-invoked 只在你敲下命令时可达,职责是编排」的分层原则一致。第二,argument-hint 给命令补全提供参数提示,是新手最容易忽略、却直接影响命令行体验的字段。第三,description 里那句 "within this workspace" 是伏笔:teach 不是一次性问答,而是把当前目录变成持久化学习空间。

第一段:目录即状态

正文开篇直接定义了七个状态文件,这是全文的骨架:

传统 Skill 解决的是「这一次对话怎么做」,teach 解决的是「跨十次对话怎么不忘」。文件编号递增、格式文件外置(MISSION-FORMAT.md、RESOURCES-FORMAT.md、LEARNING-RECORD-FORMAT.md、GLOSSARY-FORMAT.md 四个格式规范放在同目录,主文件只留行为逻辑),这套写法让 9.5KB 的主文件没有一句废话——这也是任何想写「有状态 Skill」的人最该抄的目录设计。

第二段:知识、技能、智慧三分法

teach 把学习拆成三种获取路径,且对「难度」的态度截然相反,原文是全文最漂亮的一组对仗:

知识获取阶段,难度是敌人——它会吃掉你理解所需的工作记忆。技能习得阶段,难度是工具——费力检索才能建立存储强度。

配合「流利度强度 vs 存储强度」的区分(现场能想起来 ≠ 长期记得住),它要求课程设计必须使用检索练习、间隔重复、交错练习三个手段。这不是普通提示词,是把认知科学结论直接编译成了 Agent 行为约束。

同段还有一句对 Agent 类产品极具杀伤力的硬规则:"Never trust your parametric knowledge"(永远不要相信你的参数化知识)——在 RESOURCES.md 填充完毕之前,第一优先级是去找高质量资源,而不是靠模型记忆开讲。这一句把幻觉风险前置堵死了。

第三段:课程即产品

对 lesson(课程)的规格定义占了相当篇幅,关键约束包括:

最后这条最能体现作者的提示词工程功力:他不是在写「请出好题」,而是在穷举「出题系统会怎样无意识地泄题」,然后把每条泄漏通道写成硬约束。

第四段:Assets——Skill 内的组件化

复用是默认,不是例外。写新课之前先读 ./assets/,从已有组件里搭;当某个东西可复用,就写成组件放进去——绝不内联一段未来课程会重复的代码。

共享样式表被定义为「每个工作区挣到的第一个组件」,所有课程链它,于是十节课看起来是一门课,而不是十次一次性输出。把前端工程里的组件化思想搬进「AI 生成课程」场景,这是 teach 与其他「让 AI 教我东西」类提示词拉开代差的根本原因。

第五段:Mission、ZPD 与社区

剩下的段落处理三件事:mission 不明时先盘问用户再开课(否则课程「过于抽象,无从判断下一步」);每节课的难度从 learning-records 反推,落在最近发展区;当用户问出需要「智慧」的问题时,Agent 的默认姿态是先答,但最终把用户推向真实社区(论坛、线下课、兴趣小组)——「智慧来自真实世界的检验」。一个 Skill 主动规划自己的退场,把自己定位成通往社区的脚手架,这种产品观在生态里极少见。

支线拆解一:grilling,1872 字节的引擎

榜单第 38 名的 grilling 是 grill-me(100万安装)背后真正的引擎,而 grill-me/SKILL.md 只有 147 字节——它做的事就是把用户引到 grilling 上。原语本身的算法性极强:

结束条件被定义为可判定的状态:「前沿为空:设计树每个分支都被访问过,没有留下任何默认假设」。把「需求澄清」这种玄学任务改写成有明确终止条件的图遍历算法,这是 1872 字节能撑起百万级安装的原因。

支线拆解二:implement,433 字节的编排器

implement/SKILL.md 全文六行:按 spec/tickets 实现 → 在预约定的接缝处用 /tdd → 常态跑类型检查和单文件测试 → 最后跑全量测试 → 用 /code-review 审查 → 提交。它自己不包含任何领域知识,纯粹是把两个原语按正确顺序串起来。这正是该仓库 README 里写明的架构铁律:「user-invoked 的 Skill 可以调用 model-invoked 的 Skill,但永远不调用另一个 user-invoked 的」。翻一遍文件树能数出至少 7 个 SKILL.md 不到 1KB 的薄壳(grill-me 147B、wait-what 325B、implement 433B、research 799B、handoff 879B、resolving-merge-conflicts 921B、grill-with-docs 245B),薄壳负责入口和编排,原语负责可复用的纪律。

仓库级细节:生命周期管理是给 Skill 作者的隐藏课

Git 文件树里还有三处一般读者不会注意、但 Skill 作者应该抄走的工程实践:

  1. .out-of-scope/ 目录:收录被否决的方案文档(如 question-limits.md、setup-skill-verify-mode.md),被拒绝的想法不删除而是归档理由,避免同样的提案反复出现。
  2. skills/in-progress/:六个写作系列 Skill(writing-beats、writing-shape 等)和 loop-me、setup-ts-deep-modules 挂在未完工区,不带发布压力地迭代。
  3. agents/openai.yaml:每个 Skill 目录里都有一份 100 余字节的 YAML,让同一套 Skill 能被 Codex 等其他 Agent 识别——一份 SKILL.md,多 Agent 分发。配合 .claude-plugin/marketplace.json 与 changesets 版本管理,这个仓库实际上示范了「Skill 的 CI/CD」该怎么做。

teach 的工作流全景

flowchart TB
    U[用户输入 /teach 主题] --> M{MISSION.md<br/>已填写?}
    M -- 否 --> Q[盘问学习动机<br/>写入 MISSION.md]
    M -- 是 --> R
    Q --> R[检索高信任资源<br/>填充 RESOURCES.md<br/>禁用参数化知识]
    R --> Z[读 learning-records/*<br/>计算最近发展区]
    Z --> L[生成课程 lessons/0001-.html<br/>单概念 · Tufte排版 · 等长选项测验]
    L --> A[沉淀组件到 assets/<br/>共享样式表 · 测验组件]
    L --> F[压缩知识到 reference/*<br/>术语表/速查卡]
    L --> LR[写学习记录<br/>learning-records/000N.md]
    LR --> Z
    L --> W{学员问出<br/>智慧型问题?}
    W -- 是 --> C[先回答<br/>再推荐真实社区]

安装与使用

# 方式一:Claude Code 官方插件市场(自动更新,只读订阅)
claude plugins install mattpocock-skills
# 或会话内:/plugin install mattpocock-skills

# 方式二:skills.sh 安装器(文件落盘可魔改,选装单个 Skill)
npx skills@latest add mattpocock/skills

装完在任意目录输入 /teach 你想学的东西 即可开课;学习状态全部落在当前目录的 MISSION.md、lessons/、learning-records/ 里,换目录等于换学籍。注意仓库 README 的警告:插件与 skills.sh 两种方式装一种即可,都装会得到两份。

推荐排行榜

结论

teach 证明了一件事:Skill 的上限不取决于提示词长度,而取决于它把多少真实领域的约束(认知科学、排版传统、组件化工程)无损编译进行为规则。55.9 万安装对它来说可能只是开始——在 Agent 越来越擅长「做完一次任务」的当下,擅长「记住你、按你的节奏长期教你」的 Skill 反而是稀缺物种。对想动手写 Skill 的读者,本期给出一句话方法论:先想清楚你的 Skill 的状态放在哪、终止条件是什么,再动笔写第一行 SKILL.md。

参考来源

  1. skills.sh — The Agent Skills Directory 总榜 — 本文全部安装量与排名数据的来源(2026-08-30 抓取)
  2. mattpocock/skills — GitHub 仓库 — README 阐述四大失败模式与 user-invoked/model-invoked 分层架构
  3. teach/SKILL.md 原文 — 本文逐段精读对象
  4. grilling/SKILL.md 原文 — 设计树与前沿算法的原始定义
  5. mattpocock/skills 完整文件树(GitHub API) — 各 SKILL.md 字节数、in-progress/.out-of-scope 目录结构的依据

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入