13 万星的反 vibe coding 技能库:Matt Pocock 的 skills 为什么值得工程团队研究?

AI 编程真正的分水岭,不是“能不能让 Agent 写代码”,而是“能不能让 Agent 按真实工程纪律工作”。

这两年,AI Coding Agent 的热度已经不需要再解释。

Claude Code、Codex CLI、Cursor、Gemini CLI、各种本地 Agent 框架,都在把“写代码”变成一件越来越便宜的事情。

但便宜也带来了一个新问题:

代码生成变快了,工程失控也变快了。

很多团队已经感受到这种矛盾:

  • Agent 能很快写出一堆代码,但不一定理解你真正想要什么;

  • Agent 能补很多测试,但测试可能全都绑在实现细节上;

  • Agent 能修 bug,但常常是猜测式修改;

  • Agent 能快速堆功能,但几轮之后代码库就变成一团泥;

  • Agent 能看懂很多文件,但项目里的业务语言、历史决策、架构约束,它未必真的懂。

最近 GitHub 上有一个项目非常火:mattpocock/skills

项目地址:

https://github.com/mattpocock/skills[1]

截至 2026 年 6 月,这个仓库已经超过 13 万 Star,Fork 超过 1.1 万。它的作者是 Matt Pocock,TypeScript 社区非常有影响力的工程师和教育者,也是 Total TypeScript 背后的核心人物。

这个项目的 README 一开头就说得很直接:

Skills for Real Engineers.
My agent skills that I use every day to do real engineering - not vibe coding.

翻译过来就是:

给真实工程师用的 Skills。不是 vibe coding,而是真实工程实践。

这句话是理解这个项目的关键。

它不是一个“让 AI 更会写代码”的技巧合集,而是一套试图把真实工程纪律塞进 Coding Agent 的技能系统。

一、它到底是什么?

mattpocock/skills 是一组面向 Claude Code、Codex 等 Coding Agent 的工程技能库。

官方描述是:

Skills for Real Engineers. Straight from my .claude directory.

也就是说,这不是一个为了流量临时包装出来的 Prompt 合集,而是作者从自己日常 .claude 工作目录里抽出来的真实使用技能。

仓库核心数据如下:

  • GitHub:mattpocock/skills

  • Star:约 134,713

  • Fork:约 11,679

  • License:MIT

  • 创建时间:2026-02-03

  • 最近推送:2026-06-18

  • 主要语言:Shell

  • 最新版本:1.0.1

  • 安装方式:npx skills@latest add mattpocock/skills

它当前通过 .claude-plugin/plugin.json 对外暴露 17 个主技能,分为两大类:

  • Engineering:工程开发技能;

  • Productivity:通用生产力技能。

此外仓库中还有 misc、personal、in-progress、deprecated 等目录,但真正推荐安装和使用的是 plugin.json 中列出的主技能。

二、它为什么会火?

表面看,这是一个 Skills 仓库。

深一点看,它击中了 AI 编程最核心的痛点:

Agent 不缺写代码能力,缺工程约束。

很多 AI Coding 工具的默认体验,是把 Agent 当成一个很快的初级程序员:你告诉它需求,它就开始改文件、跑命令、修报错。

但真实工程不是这样。

真实工程需要:

  • 对齐需求;

  • 澄清领域语言;

  • 保留架构决策;

  • 小步验证;

  • 测试驱动;

  • 诊断而不是猜测;

  • 设计深模块;

  • 拆出可独立交付的问题;

  • 让下一个 Agent 能接手上下文。

mattpocock/skills 的价值,就是把这些工程纪律拆成可复用的 Skills。

它不是让 AI “更聪明”,而是让 AI 更守规矩

三、项目的核心思想:反 vibe coding

什么是 vibe coding?

简单说,就是靠感觉驱动 AI 写代码:

“大概帮我做一下这个功能。”
“报错了,你修一下。”
“看起来差不多,继续。”

这种方式在 Demo 阶段很爽,但进入真实项目就会暴露问题。

Matt Pocock 的判断是:

软件工程基本功比以往任何时候都更重要。

因为 Agent 放大了你的工程习惯。

你的流程严谨,Agent 会放大严谨。
你的流程混乱,Agent 会放大混乱。

所以这个项目的目标,不是把 Agent 变成一个“随叫随到的代码生成器”,而是把它纳入一个更可靠的工程工作流。

四、它解决了 AI Coding 的四个典型失败模式

AI Coding 的四个失败模式

README 里把项目的出发点讲得很清楚:作者想修复 Claude Code、Codex 和其他 Coding Agent 的常见失败模式。

1. Agent 没理解你真正想要什么

这是最常见的问题。

你以为自己讲清楚了,Agent 也表现得像听懂了。结果它写完之后,你才发现方向完全不对。

原因很简单:

人自己也未必一开始就知道自己真正想要什么。

这个项目的解法是 grilling session,也就是让 Agent 在开工前先猛烈追问你。

对应技能是:

  • /grill-me

  • /grill-with-docs

它们不是马上执行任务,而是先问问题,把计划、约束、边界、分支决策都逼出来。

这点非常关键。

很多人用 AI 写代码失败,不是模型不行,而是开工太早。

2. Agent 太啰嗦,项目语言不统一

Agent 第一次进入一个项目,经常不知道项目里的业务术语。

它会用很长的话解释一个团队内部早就有名字的概念。更糟糕的是,它可能每次都用不同的词,导致代码命名、文档描述、Issue 拆分全部不一致。

Matt 的解法是建立 shared language,也就是共享语言。

对应技能是:

  • /domain-modeling

  • /grill-with-docs

它会维护 CONTEXT.md,记录项目中的领域术语、关系和歧义。

这和领域驱动设计里的 ubiquitous language 很接近。

一个简单例子:

如果项目里已经把某个过程叫做 “materialization cascade”,Agent 就不应该每次都用二十个词重新描述它。

共享语言的价值不仅是省 token,更重要的是:

  • 函数命名更一致;

  • 文件结构更容易导航;

  • Agent 更少误解业务概念;

  • 后续会话可以继承更稳定的上下文。

3. Agent 写出来的代码不能工作

很多 Agent 会生成看似完整的代码,但运行起来才发现:测试不对、边界没处理、实现和需求有偏差。

项目给出的核心解法是:反馈循环。

尤其是:

  • 类型检查;

  • 浏览器访问;

  • 自动化测试;

  • red-green-refactor。

对应技能是:

  • /tdd

  • /diagnosing-bugs

这里的 TDD 不是“先把所有测试写完,再让 AI 实现”。

它明确反对这种 horizontal slicing。

正确方式是 vertical slice:

一个测试 → 一个实现 → 再下一个测试 → 再下一个实现

这很像 tracer bullet:用一条小的端到端路径证明方向是对的,然后逐步扩展。

这对 Coding Agent 特别重要,因为 Agent 很容易“想象”一个不存在的系统,然后一次性写出一堆并不贴合真实代码的测试。

4. 代码库变成一团泥

AI 写代码太快,会加速软件熵增。

一个原本还算清楚的代码库,经过几轮 Agent 修改后,很容易出现:

  • 浅模块太多;

  • 接口和实现一样复杂;

  • 为了测试抽出一堆没有真实边界的纯函数;

  • 模块之间耦合越来越深;

  • 代码看起来有结构,实际上很难改。

这个项目的解法是强调 codebase design

对应技能是:

  • /codebase-design

  • /improve-codebase-architecture

其中 /improve-codebase-architecture 会扫描代码库,找出可以“加深模块”的机会,并生成一个可视化 HTML 报告。

它借鉴了 John Ousterhout《A Philosophy of Software Design》里关于 deep module 的思想:

好模块应该用简单接口隐藏大量复杂行为。

这点非常适合 AI 时代。

因为对 Agent 来说,越清晰、越深的模块,越容易理解和修改;越碎、越浅的模块,越容易让 Agent 在文件之间迷路。

五、最重要的设计:User-invoked 与 Model-invoked

User-invoked 与 Model-invoked 的 Skills 治理设计

这个项目有一个很值得学习的设计:

它不再简单区分“命令”和“技能”,而是按调用方式分为两类:

  • User-invoked:只能由人显式调用;

  • Model-invoked:人可以调用,模型也可以在合适场景自动调用。

这比普通 slash command 设计更精细。

User-invoked:人来启动流程

这类技能通常是编排型流程,比如:

  • /ask-matt

  • /grill-with-docs

  • /triage

  • /improve-codebase-architecture

  • /setup-matt-pocock-skills

  • /to-issues

  • /to-prd

  • /prototype

  • /grill-me

  • /handoff

  • /teach

它们往往会影响流程方向、写入外部系统、生成文档或改变项目结构,所以必须由人明确触发。

Model-invoked:模型可自动调用的纪律

这类技能是可复用的工程纪律,比如:

  • /diagnosing-bugs

  • /tdd

  • /domain-modeling

  • /codebase-design

  • /grilling

它们可以被模型在合适任务里自动拿出来用。

例如,当用户说“这个 bug 很难复现”时,模型可以自动进入 diagnosing-bugs 的诊断循环;当用户要求 test-first 时,模型可以自动调用 tdd。

这个划分非常有启发。

它避免了两种极端:

  • 所有技能都必须人工调用,模型不会主动使用;

  • 所有技能都可自动触发,导致流程失控。

它给 Skills 设计提供了一个很好的治理原则:

编排流程由人启动,专业纪律由模型自动复用。

六、核心技能拆解

1. ask-matt:技能路由器

ask-matt 是一个入口技能。

当你不知道该用哪个技能时,可以先问它。

它相当于这个技能库的路由器,帮你判断当前场景应该进入哪个流程。

这对大技能库很重要。

因为当技能越来越多,用户最大的问题会变成:

我现在该用哪一个?

2. grill-with-docs:开工前的深度追问

这是这个项目最有代表性的技能之一。

它做两件事:

  1. 通过 grilling session 把需求问清楚;

  2. 同步更新项目文档,包括 CONTEXT.md 和 ADR。

也就是说,它不是一次普通访谈,而是把对齐过程沉淀成长期上下文。

这解决了 Coding Agent 的一个大问题:每次对齐完就丢,下一次又重新解释。

3. domain-modeling:让 Agent 学会项目语言

这个技能负责维护项目领域模型。

它会:

  • 挑战模糊术语;

  • 识别术语冲突;

  • 用具体场景测试概念边界;

  • 必要时更新 CONTEXT.md

  • 对重大架构/领域决策创建 ADR。

这对长期项目非常关键。

AI 工程协作不是一次性生成代码,而是持续理解一个业务系统。

没有领域语言,Agent 就只能靠猜。

4. tdd:适合 Agent 的测试驱动开发

tdd 技能明确强调:测试应该验证行为,而不是实现细节。

它反对一次性批量写测试,主张一条 vertical slice 一条 vertical slice 地推进。

它的核心循环是:

RED:写一个失败测试 GREEN:写最少代码让它通过 REFACTOR:在绿灯下重构

这对 Agent 非常重要。

因为 Agent 最容易犯的错误,就是为了“完成任务”一次性写太多东西,然后测试也变成对想象中实现的确认。

5. diagnosing-bugs:诊断,而不是猜修

很多 Agent 修 bug 的方式是:看到报错,猜一个原因,改一把,再看结果。

diagnosing-bugs 强调纪律化诊断:

复现 → 最小化 → 假设 → 插桩 → 修复 → 回归测试

这其实是老派调试基本功。

但在 AI 时代,它反而更重要。

因为 Agent 的速度越快,胡乱修改造成的破坏也越快。

6. codebase-design:深模块语言

这个技能提供一套架构词汇:

  • module;

  • interface;

  • depth;

  • seam;

  • adapter;

  • leverage;

  • locality。

它的目标是让 Agent 不只是“把代码拆小”,而是理解什么叫好的模块边界。

在 AI 编程里,模块设计不只是人类可维护性问题,也是 Agent 可导航性问题。

7. improve-codebase-architecture:代码库体检

这个技能会扫描代码库,找出可以改进架构的机会,并输出一个可视化 HTML 报告。

报告会包含:

  • 涉及文件;

  • 当前问题;

  • 改进方案;

  • 改进收益;

  • before / after 图;

  • 推荐强度;

  • 最优先建议。

这很适合周期性运行,比如每几天对代码库做一次“结构体检”。

8. to-prd 与 to-issues:从讨论到可执行工作

to-prd 会把当前对话整理成 PRD,并发布到 issue tracker。

to-issues 会把计划、规格或 PRD 拆成可以独立领取的 issues。

这里有一个关键词:vertical slices

它不是按技术层拆任务,而是按可以独立交付的用户价值切片拆任务。

这对多人协作和 Agent 协作都很重要。

9. handoff:让另一个 Agent 能接手

handoff 是生产力技能,用于把当前对话压缩成交接文档。

这正好对应了 Agent 工作中的常见问题:上下文窗口有限,长任务经常需要换会话、换模型、换人接手。

好的 handoff 能显著降低接力成本。

七、它和 pm-skills 有什么不同?

前面我们调研过 phuryn/pm-skills。那个项目更像是产品经理 AI 操作系统,覆盖 PRD、Discovery、GTM、市场研究、增长等产品管理全流程。

mattpocock/skills 更像是工程师 AI 操作系统。

两者都叫 skills,但方向完全不同:

  • phuryn/pm-skills 解决的是产品经理如何用 AI 做决策和交付;

  • mattpocock/skills 解决的是工程师如何让 Coding Agent 遵守真实工程纪律。

如果说 pm-skills 的关键词是:

产品方法论 → 工作流 → 决策质量

那么 mattpocock/skills 的关键词就是:

工程纪律 → 反馈循环 → 代码质量

这两个项目放在一起看,很有意思。

它们说明 Agent Skills 正在从“提示词收藏”演化成“职业工作系统”。

八、对我们有什么启发?

这个项目对“小欧”的启发非常直接。

我们之前已经沉淀了不少流程:

  • 内容工厂;

  • 政策产线;

  • 稍后学习;

  • 想法收集;

  • 人脉管理;

  • 公众号配图;

  • 深度调研;

  • 飞书文档交付。

但从 skills 的角度看,它们还可以进一步结构化。

mattpocock/skills 给了几个关键启发。

1. 不要只沉淀“怎么做”,还要沉淀“什么时候不做”

仓库里有 .out-of-scope 文件,明确说明某些场景不属于技能处理范围。

这很重要。

一个好技能不只是告诉 Agent 做什么,也要告诉它不要做什么。

比如公众号文章工作流里就应该写清楚:

  • 没有配图不能直接发;

  • 用户说“直接发”也要遵守最低配图标准;

  • 如果配图风格不符合偏好,应该重发,不要怕草稿变多。

2. 把高频工作变成 User-invoked + Model-invoked 组合

例如公众号流程可以拆成:

  • User-invoked:/写公众号并发布

  • Model-invoked:选题判断、事实核验、配图风格选择、发布前检查

人负责启动大流程,模型负责在过程中自动调用专业纪律。

这比一条长提示词稳定得多。

3. 维护长期上下文,而不是每次重新解释

CONTEXT.md 和 ADR 的思路非常值得借鉴。

我们也可以维护:

  • 用户偏好上下文;

  • 公众号视觉风格上下文;

  • 选题禁区;

  • 已发文章记录;

  • 公众号文章结构原则;

  • 环保政策领域术语表。

这会让小欧越来越像一个“长期协作的工作伙伴”,而不是每次重启的聊天机器人。

4. 用工程纪律约束 Agent,而不是只靠模型聪明

mattpocock/skills 最重要的提醒是:

不要迷信模型变强,要设计让模型不容易犯错的流程。

公众号发布也是一样。

不能只依赖“这次我记得配图”。

应该把流程写死:写文 → 配图 → 检查 → 发布。任何一步出错,就重发。

九、适合谁使用?

这个项目最适合四类人。

1. 高频使用 Claude Code / Codex 的工程师

如果你已经把 Agent 放进日常开发,这套 skills 能帮你减少失控。

2. 技术负责人和架构师

尤其适合用 improve-codebase-architecturecodebase-designdomain-modeling 维护长期项目质量。

3. AI 原生创业团队

小团队用 Agent 写代码很快,但更容易技术债失控。这套技能可以作为轻量工程治理机制。

4. 想构建自己 Skills 库的人

这个仓库本身就是一个很好的设计样本:如何拆技能、如何区分调用方式、如何写边界、如何让技能互相调用。

十、怎么开始用?

官方推荐安装方式很简单:

npx skills@latest add mattpocock/skills

安装时选择你想要的 skills 和 coding agent。

官方特别提醒:一定要选择:

/setup-matt-pocock-skills

然后在 Agent 里运行它。

这个 setup 会问你:

  • 用哪个 issue tracker:GitHub、Linear 还是本地文件;

  • triage 时使用哪些标签;

  • 文档保存在哪里;

  • 域模型和 ADR 如何布局。

完成后,比较推荐先试这几个:

/grill-with-docs /tdd /diagnosing-bugs /improve-codebase-architecture /to-issues /handoff

十一、最终评价

mattpocock/skills 的核心价值不是“帮你更快写代码”。

它真正有价值的地方是:

把真实工程师的工作纪律,封装成 Agent 可以遵守的技能系统。

它反对 vibe coding,不是反对 AI 编程,而是反对没有反馈、没有对齐、没有设计、没有边界的 AI 编程。

AI 写代码越快,工程纪律越重要。

这个项目能火到 13 万 Star,说明很多工程师已经意识到:

下一阶段的 AI 编程,不是比谁更会让 Agent 写代码,而是比谁更会让 Agent 在正确的工程系统里工作。

如果 phuryn/pm-skills 代表了产品经理的 AI 工作系统,那么 mattpocock/skills 代表的,就是工程师的 AI 工作系统。

未来真正有价值的,不是一堆零散 Prompt,而是一套能长期运转、可组合、可迁移、能约束 Agent 行为的 Skills 体系。

这也是小欧后续应该继续进化的方向。


相关链接

引用链接

[1]https://github.com/mattpocock/skills

[2]https://github.com/mattpocock/skills

[3]https://www.totaltypescript.com

[4]https://skills.sh/mattpocock/skills


13 万星的反 vibe coding 技能库:Matt Pocock 的 skills 为什么值得工程团队研究?
https://maoyu92.github.io/2026/06/18/07 AI笔记/AI写作与发布/a071_13 万星的反 vibe coding 技能库:Matt Pocock 的 skills 为什么值得工程团队研究?/
作者
陈文茂
发布于
2026年6月18日
许可协议