22 万 Star 的工程师 Skill 包: mattpocock/skills 如何用 4 大流程改造 AI 编码
DAILY OPEN SOURCE · ISSUE 122 · 早间篇
22 万 Star 的工程师 Skill 包:
mattpocock/skills 如何用 4 大流程改造 AI 编码
TypeScript 权威 Matt Pocock 把自家 .claude 目录全开源,从 grill-me 到 tdd,39 个技能覆盖需求对齐 / TDD / 调试 / 架构 / 代码审查全套工程纪律。本期带来完整实战指南。
⭐ 220k+🔥 月增 47k🛠 39 个 Skill📦 MIT✍ 作者亲自维护
**📌 平台合规提示:**本工具主要由境外平台承载(GitHub / npm / skills.sh),推荐国内开发者优先使用 npm install 直接获取源码;Claude Code / Codex 等 Skill 消费者请按官方模型配置稳定网络后使用。
开篇先看一张图:mattpocock/skills 的体量
**22 万+**GitHub Stars
月增 47k
39个独立 Skill
分 6 个目录
2种主分类
User/Model
4大失败模式
专刀解
6 万Newsletter
订阅工程师
1.2.1当前版本
持续小步
过去 6 个月 AI 编码 Agent 圈最被引用、却最不像 “杀手级框架” 的项目,是 Matt Pocock 那套几乎只有 markdown 的 Skills 仓库。它不替代 Claude Code,也不替代 Codex,它只给 Agent 一套"老工程师私房纪律":先盘问、再固化、再 TDD、再 cleanup。本期我们就逐节拆开看。
项目速览
项目名:mattpocock/skills(“Skills for Real Engineers. Straight from my .agents directory”)
作者:Matt Pocock(Total TypeScript 创始人、TS 教育权威、6 万订阅读者、aihero.dev 主理人)
首发:2026 年 4 月 29 日 · 最新版本:v1.2.1 · License:MIT
配套:在 Claude Code 官方 Marketplace 上架(claude plugins install mattpocock-skills),同步给 Codex(npx skills@latest add mattpocock/skills)
仓库:github.com/mattpocock/skills(含 CLAUDE.md / AGENTS.md 双入口 + changesets 自动化发布)
它要解决什么问题?Matt 眼中 AI 编程的 4 大失败模式
Matt 在 README 里引用了 4 本书,串起 4 大问题。每条都配一个 Skill 救火:
❶ Agent 没干你想要的事
根源:“No-one knows exactly what they want”(The Pragmatic Programmer)
救援 Skill:/grill-me(产品讨论)+ /grill-with-docs(带代码库盘问 + 沉淀 CONTEXT.md)
❷ Agent 太啰嗦
根源:缺 Ubiquitous Domain Language(DDD),20 个词说 1 个词的事,Token 浪费严重
救援 Skill:/grill-with-docs 顺手维护 CONTEXT.md + docs/adr/;/writing-for-agents 教你写给机器看
❸ 代码不 work
根源:缺反馈闭环(Kent Beck XP:反馈频率就是速度上限)
救援 Skill:/tdd(红绿重构)+ /diagnosing-bugs(Reproduce→Minimise→Hypothesise→Instrument→Fix→Regression-test 6 步)+ /resolving-merge-conflicts
❹ 代码变成大泥球
根源:缺日常设计纪律(Kent Beck:每天都要投资设计;Ousterhout:模块要"deep")
救援 Skill:/to-spec + /codebase-design + /improve-codebase-architecture(建议隔几天跑一次)
核心亮点:39 个 Skill 的 6 大目录结构
Matt 把整个仓库按"分工"切成 6 个目录,每个目录都对应一种"使用强度"。这种分层本身就是一种工程纪律:
📁 engineering/ ── 日常编码主力(17 个)
按"谁来触发"再分两类:
-
User-invoked(9 个,必须斜杠唤起):
/ask-matt(入口路由)//grill-with-docs(含代码库盘问)//triage(issue 分诊状态机)//improve-codebase-architecture(架构深度扫描 + 视觉报告)//setup-matt-pocock-skills(每个仓库只跑一次)//to-spec(对话 → spec)//to-tickets(按特性切片拆分)//implement(驱动 /tddd → /code-review → commit)//wayfinder(超大规划) -
Model-invoked(8 个,Agent 自己挑):
/prototype(一次性 HTML 原型/多种 UI 变体)//diagnosing-bugs(6 步调试)//research(带引用的 Markdown 研究报告)//tdd(红绿重构,强测"公开行为不测实现")//domain-modeling(维护术语一致性)//codebase-design(深度模块)//code-review(2 轴审查:标准 + 规格,平行 sub-agent,新窗口跑)//resolving-merge-conflicts(按意图解冲突,永远不 --abort)//wizard(生成 bash wizard 让人走流程)
📁 productivity/ ── 通用的跨域工作流(7 个)
跟代码无关也能上手:
-
/grill-me:跟 Agent 互怼的访谈,直到每个分支拍清楚(推荐级别最高,被 Matt 自评"我用得最多的") -
/caveman:省 75% token,让 Agent 像聪明的穴居人讲话,丢掉冠词寒暄 -
/handoff:会话压缩,给下一段 agent 接手 -
/teach:多 session 教学,以当前目录为有状态工作区 -
/to-questionnaire:把决策转 Markdown 问卷,让关键人异步答 -
/wait-what:消息没听懂?让 Agent 用你的 CONTEXT.md 词汇重新讲一遍 -
/grilling+/writing-for-agents:上面 4 个的复用底座 + 教你怎么写 Skill
📁 misc/ ── 杂项但不可缺(保留的惊喜)
-
/git-guardrails-claude-code:用 hook 直接拦截git push --force/reset --hard/clean等危险命令,Matt 自己强烈建议装 -
/setup-pre-commit:一键 Husky + lint-staged + Prettier + 类型检查 + 测试 -
/migrate-to-shoehorn:迁移as类型断言到他自家的@total-typescript/shoehorn(TS 工程师专属福利) -
/scaffold-exercises:批量生成练习题目录(他自己出课用)
📁 personal/ + in-progress/ + deprecated/ ── 工程纪律的活样板
Matt 把 5 个目录并排放:主力、通用、个人、半成品、弃用,清清楚楚。他自己承认 personal/ 不适合外人用,deprecated/ 留作历史可追溯。这种"不藏只发力的部分"的反向诚实,是别的 Skills 仓库不太会公开的事。
3 大深度机制:为什么它真的"像个工程产物"
机制 ❶ ── User-invoked vs Model-invoked 的"两层契约"
Matt 给每个 Skill 设了"谁来叫醒它"的元数据,叫 policy.allow_implicit_invocation(Codex 用)和 disable-model-invocation(Claude Code 用),两种语法的字段一一对应。规则很简单:
-
User-invoked = 编排类(grill-me / to-spec / implement / setup-…),只能用户手动斜杠唤起,避免 Agent 在没意图时擅自启动长流程
-
Model-invoked = 辅助类(prototype / tdd / code-review / code-base-design),Agent 看场景自取
-
User-invoked 可以调 Model-invoked,绝不能调另一个 User-invoked(避免循环接管)
-
每个 Skill 配 Codex 的
agents/openai.yaml元数据:interface.display_name、interface.short_description,Claude Code 直接读SKILL.md
机制 ❷ ──**CONTEXT.md**防污染:懒加载 + 统一词汇 + Multi-Context
很多人怕"CONTEXT.md 用了几次就变成垃圾堆"。Matt 给的解法是一套"三道闸门":
-
懒加载:初始化只建空骨架,没有真正提炼过术语前不会写
CONTEXT.md -
统一词汇(Use the Glossary’s Vocabulary):CONTEXT.md 只记"跨需求共享的术语 + 业务约束",不存代码细节。Agent 后续所有对话必须遵守,避免用词漂移
-
物理隔离(Multi-Context):大型项目自动生成
CONTEXT-MAP.md路由图,src/ordering/CONTEXT.md与src/billing/CONTEXT.md各自一份,物理层面互不污染
Matt 举了个对比例子,把"a lesson inside a section of a course is made ‘real’“(24 词)压缩成"the materialization cascade fails”(3 词),命名也跟着统一,这一处就能省超多 token,他自评"可能是整个仓库最酷的一招"。
机制 ❸ ──**/spec**不允许贴代码,**/tickets**按特性切片
Matt 在 /to-spec 里写下两条硬规矩:
-
spec 不允许带代码块。一旦贴了代码,Agent 就会锚定那份代码,即使后续实现时基线已经变了它也照抄。spec 只写意图、约束、边界,让 Agent 在实施时重新看真实代码。
-
/to-tickets 按特性切片,不按层切片。层切片(“写库 / 写 API / 写 UI”)让你测试全流程必须等所有层完成;特性切片(“登录页完整跑通可登录可测试”)每个 ticket 立即端到端可测,反馈频率翻倍。
-
每个 ticket 都声明 blocking edges(哪些 ticket 必须先做完),可写成本地文件或 GitHub Issues 上的原生 blocking。
实战场景展示(4 个最常见)
场景 1新需求落地:从盘问到 PR 一气呵成
推荐链路:/grill-with-docs → /to-spec → /to-tickets → /implement(impl 自动驱动 /tdd + /code-review + commit)
典型时间:5 分钟盘问 + 10 分钟 spec + 30 分钟 4 个 ticket 实施 + PR。比起 “vibe coding 写 1 小时再 rebase 半天”,总时长更短且 bug 更少。
场景 2研发 Web 端 / 后端核心数值计算(金融指标 / 算法)
强制链路:/grill-with-docs → /to-spec → /tdd(Strict TDD,红灯才动业务代码)
适用场景:Max Drawdown 计算错误、ATR 指标边界值、回测 PnL 异常。Matt 在 SKILL.md 反复强调"测公开行为不测实现细节"。
场景 3复杂 Bug 定位 / 性能回归
直接 /diagnosing-bugs。6 步:Reproduce(最小脚本)→ Minimise(缩小到最小复现)→ Hypothesise(提假说)→ Instrument(加日志 / 火焰图)→ Fix(最小改动)→ Regression-test(永久回归测试)。
即使不接 Agent,自己照着这个 SOP 走也能少走弯路。
场景 4跨窗口交接(Handoff)防止 Context 污染
很多团队"新需求继续在同一个 agent 窗口跟",结果 CONTEXT.md 慢慢全是上个需求的细节。当前窗口直接 /handoff 导出当前成果总结 → 关闭当前窗口 → 新窗口。
新窗口的 AI 会重新读 纯干净的领域 CONTEXT,不背上一个需求的调试杂音。
上手指南:5 步跑通完整流水线
Step 0 ── 环境前置
• Node.js ≥ 18(用于 npx 安装器)
• gh auth status 已登录(用 /to-tickets 自动创建 issue 时必填)
• Claude Code / Cursor / Codex 任一客户端可启动
Step 1 ── 安装(三选一,但绝不二选)
Claude Code 官方插件(订阅制,自动更新,只读):claude plugins install mattpocock-skills
skills.sh 安装器(可编辑副本归你):npx skills@latest add mattpocock/skills
Codex CLI 绑定(可选):npx skills@latest add mattpocock/skills -a codex
# Step 2 ── 每个新仓库只跑一次的初始化
$
npx skills@latest add mattpocock/skills
?›
Symlink (Recommended)
# 多个 client 共一份
?›
Claude Code
# 你要装哪个 Agent
# 安装完去你的项目里跑:
$
/setup-matt-pocock-skills
?
issue tracker: GitHub / Linear / 本地文件
?
triage 标签: bug / feature / tech-debt / ...
?
CONTEXT.md 存放目录:
docs/agents/
# 自动生成的结构:
.
├── CONTEXT.md
# 业务词汇表(懒加载)
├── CLAUDE.md
# Agent 主入口
├── AGENTS.md
# Codex 入口(symbolic link)
└── docs/ ├── agents/ │ ├── issue-tracker.md │ ├── triage-labels.md │ └── domain.md └── adr/
# 架构决策记录
# Step 3 ── 跑主链路:从盘问到 PR
# 在 Claude Code / Codex 里:
/grill-with-docs
开发一个股票回测模块:输入 K 线 CSV,输出最大回撤与夏普
# 答完所有分支后 → 把对话冻成 spec
/to-spec
# spec 冻结(注意:spec 文件里不许贴代码块)后 → 拆 ticket
/to-tickets
# 拆完后后台会创建 GitHub Issues,每个 ticket 按特性切片,
# 都声明 blocking edges。例:
# T-001 [独立] 计算最大回撤(端到端可测试)
# T-002 [blockedBy T-001] 集成夏普(端到端可测试)
# 让 Agent 自己一个 ticket 一个 ticket 跑,implement 会在
# 关键 seam 自动插入 /tdd + 完成后 /code-review 双轴审查
/implement
# 整个 PR 都关掉之后可随时重跑某一步,无需从头
# Step 4 ── 关键 seaming:TDD 与 code-review
# /tdd 强制写失败测试 → 红灯 → 才写实现 → 绿灯 → 重构
# SKILL.md 反复强调:"测试公开行为,不测实现细节"
/tdd
# /code-review 在新窗口跑两条平行 sub-agent,避免主对话
# 上下文污染。一条审"标准符合度 + Fowler 嗅味基线",另一条
# 审"规格符合度(当前 diff 是否忠实兑现了 origin issue)"
/code-review
since HEAD~5
# Step 5 ── 运维命令
$
npx skills@latest update
# 拉最新
$
npx skills@latest remove
# 卸载
$
npx skills@latest list-agents
# 看本地支持的 Agent 平台
# 仓库特殊规则:禁 em-dash ── 所有破折号用手工改写为
# 逗号 / 冒号 / 句号 / 括号 / 连词,不机械替换。
**⚠ 反过来用也没事:**你不必装满 39 个。安装器是可选的,安装时挑你今天用得到的几个就好。Matt 自己 README 里说"pick one":Claude Code 插件 vs skills.sh 二选一,否则每个 Skill 会出现两份。
**⚠ 国内项目注意:**一些 Skill(to-issues / to-prd / triage)默认假设 GitHub Issues / Linear;飞书项目 / TAPD / Coding 需自己改一下 prompt。仓库 prompt 全英文,中文项目用没问题,但若要输出全中文,建议在 /setup-matt-pocock-skills 跑完后追加一句中文写作约束。
与同行 Skill 仓库 / AI 编码框架的对照
vs reverse-skill(zhaoxuya520,第 119 期):一个安全垂直(逆向 / CTF / 鉴权),一个通用工程师(需求对齐 / TDD / 调试)。方向不同,但"Skills as a Package"理念完全一致。
vs Anthropic 官方 skills 仓库:官方偏通用框架 + 完整流程,Matt 这套偏向"老司机的 .claude 私房 dotfile",每个 SKILL.md 都短到能裸读。少一层编排感,多一分可改造自由。
vs GSD / BMAD / Spec-Kit:Matt 在 README 里点名:这些"想接管你整个流程",代价是失去控制权,bug 也不好定位。Skills 的态度是反的:给每个步骤独立 Skill,可以单独重跑某一步,不形成 chain。
vs Cursor / Copilot 内置 Rules:Cursor Rules 每个项目得手写,Cline Rules 数量也少。Skills 是"专家级预制包",开箱即用 + 可改,逐步更新。
vs ESLint / Prettier:这两个只能查语法 / 格式。Skills 把架构决策、设计模式、测试策略、调试 SOP、issue 流转都包进去了,比 lint 维度深得多。
今日总结与互动
🏁 一句话:mattpocock/skills 不是框架,是笔记。
它把"老工程师这 20 年踩过的坑"写成 39 个可单独触发的
小型 Skill,让 Agent 不再走 vibe coding 的捷径。
它是 Skill-as-dotfiles 时代最具代表性的一份老司机私房菜。
📦 github.com/mattpocock/skills📜 totaltypescript.com✉ aihero.dev
互动话题:你用 AI Agent 写代码时,最痛的是上面 4 个失败模式中的哪一个?/grill-me 抓需求 / /grill-with-docs 沉淀 CONTEXT / /tdd 卡红灯 / /improve-codebase-architecture 治熵增 ── 选一个聊 30 秒,留言区见。
── 本期结束 ── 下期见 ──
更多推荐
所有评论(0)