
用 Claude Code 写代码时,很多人会反复遇到同样的问题:每开一个新项目,都要重新跟 AI 讲一遍接口怎么设计、测试怎么写、bug 怎么排查;AI 生成的测试和业务脱节;讨论了一小时的方案,最后没人整理成文档;一不小心还会执行 git push --force。
AI 本身能力够用,问题在于同一套工作流每天都靠口头重复。TypeScript 教育者 Matt Pocock 的开源仓库 mattpocock/skills 把他日常用的 Agent Skill 整理出来,覆盖需求对齐、测试驱动、规格整理、bug 诊断和代码评审。截至 2026 年 10 月,仓库已超过 29 万 star。
本文面向想给 Claude Code(或 Codex、Cursor 等)装一套“工程师工作流”的开发者,按“安装 → 初始化 → 日常三件套”的顺序讲,最后说明与其他 Skill 集合的区别和注意事项。

mattpocock/skills 和其他 Skill 集合有什么不同
市面上的 Claude Code Skill 集合不少。Addy Osmani 的 agent-skills 偏向工程纪律,告诉 AI 每个阶段该做什么、不该做什么。Matt Pocock 这套的思路是:Skill 要小、容易改、能组合,直接替你完成具体环节的工作。
README 里把 Skill 按“谁来调用”分成两类:
- User-invoked(用户调用):只有你输入
/grill-me、/to-spec这类命令时才会触发,负责编排流程; - Model-invoked(模型调用):你可以手动调用,Agent 也会在任务匹配时自动调用,承载可复用的纪律,比如
tdd、diagnosing-bugs、code-review。
一个用户调用的 Skill 可以调用模型调用的 Skill,但不会调用另一个用户调用的 Skill。理解这一层,装完之后就知道哪些需要自己敲命令、哪些会自动生效。
原文写作时(2026 年 5 月)仓库是 22 个 Skill,
to-prd、to-issues、triage-issue、design-an-interface等名字现在已经改名或下线,下文以 2026 年 10 月的 README 为准。

第 1 步:安装 Skill
README 提供了按 Agent 区分的安装方式。插件方式会自动更新,skills.sh 方式会把可编辑的文件复制进项目、需要手动更新。同一个 Agent 只选一种,两种都装会让每个 Skill 出现两次。
Claude Code(插件方式,默认自动更新):
claude plugin install mattpocock-skills@claude-plugins-official
Codex:
codex plugin marketplace add mattpocock/skills
codex plugin add mattpocock-skills@mattpocock
Cursor、OpenCode、Windsurf 等其他 Agent,或者想拿到可编辑文件时:
npx skills@latest add mattpocock/skills -a <agent> # cursor, opencode, windsurf 等;省略 -a 会交互选择
用 skills.sh 安装时,记得勾选 setup-matt-pocock-skills。之后用 npx skills@latest update 更新。原文里那种 npx skills@latest add mattpocock/skills/tdd 逐个安装的写法,也可以在交互界面里只选需要的 Skill 来实现。
第 2 步:每个仓库运行一次初始化
装好后,在项目里运行一次:
/setup-matt-pocock-skills
它会问三件事:用哪种 issue 跟踪方式(GitHub、GitLab、本地文件或你描述的其他工具)、triage 时用哪些标签、生成的文档存在哪里。工程类 Skill 都依赖这一步的配置,跳过的话 /to-spec、/triage 会提示你先初始化。
第 3 步:日常最常用的三件套
grill-me:动手前先被 AI 追问
/grill-me 是仓库里最受欢迎的 Skill。你给它一个计划,它不会夸“这个方案不错”,而是把计划当成一棵决策树逐轮追问:这个决定的前提是什么?如果 X 失败怎么办?为什么选 A 不选 B?每轮把当前能问的问题编号列出,并给出它推荐的答案,你回答“是”就等于采纳。
其中有一条规则很实用:查事实是 AI 的工作,做决定才是用户的工作。 能从代码库、文件系统里查到的信息,它会派子 Agent 去查,不会来问你,这样能少很多无谓的打断。写代码的场景可以用 /grill-with-docs,它在追问的同时维护项目的 GLOSSARY.md 术语表和 ADR 决策记录。
tdd:一次只走一个垂直切片
tdd 是模型调用的 Skill,坚持红 → 绿循环:先写一个失败的测试,再写刚好让它通过的代码。Matt 明确反对“水平切片”,也就是先把所有测试写完再写所有实现。他的理由是:批量写出的测试验证的是想象中的行为,测的是数据结构和函数签名的形状,而不是用户真正感知到的行为。
正确做法是 tracer bullet:一个测试 → 一个实现 → 再一个测试,每一步都是端到端的完整切片。当前版本还加了一条:动手写测试前,先和你确认要在哪些“接缝”(seam,也就是对外的公共接口)上测试,避免把精力花在边角上。想看 TDD 和子 Agent 在 Claude Code 里的更多用法,可以参考 Simon Willison 的 Claude Code 子 Agent 与 TDD 用法。
to-spec:把讨论直接变成规格
方案在对话里讨论清楚后,/to-spec 不会再重新访谈你,而是直接把当前对话和对代码库的理解整理成一份规格:问题陈述、解决方案、用户故事、实现决策、测试决策和不在范围内的事项,然后发布到你在初始化时选定的 issue 跟踪器,并打上 ready-for-agent 标签。接着可以用 /to-tickets 把规格拆成一组带依赖关系的小任务,再用 /implement 按任务推进。

其他值得装的 Skill
| Skill | 类型 | 用途 |
|---|---|---|
diagnosing-bugs | 模型调用 | 难缠 bug 的诊断循环:复现 → 最小化 → 假设 → 打点 → 修复 → 回归测试 |
code-review | 模型调用 | 从“是否符合编码规范”和“是否忠实实现了规格”两个维度并行评审 |
improve-codebase-architecture | 用户调用 | 扫描代码库找可以“加深模块”的重构点,输出 HTML 报告 |
handoff | 用户调用 | 把当前对话压缩成交接文档,方便另一个 Agent 接手 |
git-guardrails-claude-code | 杂项 | 装一个 PreToolUse hook,拦截 git push、reset --hard、clean -f、branch -D 等危险命令 |
git-guardrails-claude-code 拦截时,Claude 收到的是“你无权执行这个命令”,而不是请你确认,避免 AI 说服你放行。如果你想先理清项目里 .claude 目录下 CLAUDE.md、rules、skills 和权限各自管什么,可以看 Claude Code 的 .claude 文件夹怎么配。
限制与注意事项
- 带有个人偏好:这套 Skill 体现了 Matt 的工作习惯,比如坚持 TDD、反对水平切片、不喜欢 AI 频繁提问。它好用正是因为有明确立场,但不一定适合所有团队,装之前先读一遍对应的 SKILL.md。
- 变化很快:仓库更新频繁,Skill 名称和数量会变,以 README 为准。
- 可以与其他集合叠加:已经装了 Addy Osmani 的 agent-skills 也可以再装这套,一个管工程纪律,一个管具体执行,但要留意同名命令冲突。
- 安装命令未实测:本文命令摘自官方 README,使用前请以仓库最新说明为准。
总结
mattpocock/skills 的价值,在于把“先对齐需求、再小步测试、最后整理规格”这套高级工程师的习惯写成了 Agent 能执行的 Skill。按本文三步走:装插件、跑一次 /setup-matt-pocock-skills、日常用 /grill-me、tdd 和 /to-spec,就能把每天口头重复的流程固定下来。
在 AIGoCode 上接入 Claude Code 或 Codex 后,可以直接安装这套 Skill 开始使用。
参考链接
- GitHub 仓库:https://github.com/mattpocock/skills
- skills.sh 页面:https://skills.sh/mattpocock/skills