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_nameinterface.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 秒,留言区见。

── 本期结束 ── 下期见 ──

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐