解决 4 大 AI 编码痛点:Matt Pocock 的 Skill 工作流深度拆解

作者:小碗细面 VIP.5 如鱼得水日期:2026/5/1

解决 4 大 AI 编码痛点:Matt Pocock 的 Skill 工作流深度拆解

当所有人都在用 AI 写更多代码的时候,TypeScript 之神 Matt Pocock 把自己的 .claude 目录直接推到 GitHub 上,告诉我们:先别急着 vibe coding,把工程基本功捡回来。

一、写在前面:一个让人拍大腿的开源项目

2026 年 3 月,TypeScript 社区的"老熟人"Matt Pocock(你大概率在他的 Total TypeScript 课程下面留过言)干了一件挺有意思的事:

他把自己平时在 Claude Code 里用的 .claude/skills 目录原样推到了 GitHub,仓库名就叫 mattpocock/skills,副标题写着——

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

结果一夜之间冲上 GitHub Trending #1,目前已经累计 49.8K Star、4.1K Fork,被翻译进十几种语言的博客,连 Pulumi 官方博客都把它和 GSD、Superpowers 一起拉出来做对比分析。

第一次看到这个仓库的时候,我以为又是一个"AI 全自动开发框架"。点进去发现——压根不是。它没有花哨的多 Agent 编排、没有 Party Mode、没有所谓的 23 人虚拟团队。整个仓库只有 21 个 Markdown 文件,每个文件就是一段写给 Claude Code 的"工程原则提示词"。

但你跑过几次就会明白:这才是真正在写大型项目的工程师每天该做的事

这篇文章我会把这套 skills 拆开揉碎,讲清楚三件事:

  1. 它到底做对了什么、解决什么问题;
  2. 30 秒安装 + 每个 skill 的实战使用攻略;
  3. 和 GSD、BMAD、Spec-Kit、Superpowers 这些"重型框架"的对比,到底什么时候该用哪个。

读完你大概率能少踩半年 AI 编码的坑。


二、Matt Pocock 在解决什么?四个真正的痛点

很多人对 AI 编程的认知还停留在"模型够强 + 提示词够好 = 自动出活",但 Matt 在 README 里直接把刀架在了脖子上:

Approaches like GSD, BMAD, and Spec-Kit try to help by owning the process. But while doing so, they take away your control and make bugs in the process hard to resolve.

翻译过来就是:那些"全包式"框架本质上是把开发流程从你手里抢走了,一旦流程出 bug,你连改的地方都找不到

他给出的解法不是"做一个更大的框架",而是把工程师几十年来踩过坑、也救过命的几个"小动作",每一个都做成 ~50 行的可组合 Skill。这些 Skill 围绕四个老掉牙却始终最致命的问题:

问题 #1:Agent 没听懂我在说啥(Misalignment)

"No-one knows exactly what they want." —— The Pragmatic Programmer

最常见的 vibe coding 失败模式就是:你以为你说清楚了,Agent 以为它听懂了,等代码生成出来才发现完全是两回事。

Matt 的解法:在写代码前,先让 Agent 反过来"拷问"你。

  • /grill-me —— 用于非代码类决策
  • /grill-with-docs —— 代码场景的拷问 + 顺手更新领域文档

这是仓库里最受欢迎的两个 skill。每次改动前都先跑一遍,而不是直接喂 Prompt。

问题 #2:Agent 太啰嗦(Verbosity)

"With a ubiquitous language, conversations among developers and expressions of the code are all derived from the same domain model." —— Domain-Driven Design

Agent 之所以啰嗦,是因为它进入项目时不懂你们团队的"行话"。所以它会用 20 个词描述一个概念,而你们内部一个词就够了。

Matt 给了一个具体例子(来自他自己的 course-video-manager 仓库):

  • 优化前:There's a problem when a lesson inside a section of a course is made 'real' (i.e. given a spot in the file system)
  • 优化后:There's a problem with the materialization cascade

一旦你和 Agent 共享了一份 CONTEXT.md,每个 session 都能省下大量 token,变量名、函数名、文件名也会自动变得一致——这是 DDD 老炮儿最会心一笑的部分。

问题 #3:代码不 work(Code Quality)

"Always take small, deliberate steps. The rate of feedback is your speed limit." —— The Pragmatic Programmer

Agent 写出 bug 不是模型问题,是反馈环没建立。没有类型检查、没有自动化测试、没有浏览器实时验证,模型就是闭眼开车。

对应的 skill:

  • /tdd —— 真正的 red-green-refactor 循环(不是"先把所有测试写完再实现"那种伪 TDD)
  • /diagnose —— 把"reproduce → minimise → hypothesise → instrument → fix → regression-test"做成 6 阶段的固定流程

问题 #4:项目变成大泥球(Architecture Decay)

"Invest in the design of the system every day." —— Extreme Programming Explained

AI 让你写代码的速度提升 5 倍,也让代码烂掉的速度提升 5 倍。Matt 给出的解法是把"关心架构"这件事做进每一层 skill:

  • /to-prd 在生成 PRD 前先盘问你影响哪些模块
  • /zoom-out 强制 Agent 站在整个系统的视角解释代码
  • /improve-codebase-architecture 周期性地为你"修剪"代码库(建议每隔几天跑一次)

到这里你应该看出来了:这不是 AI 工具,这是工程师的清醒剂。


三、Skill 全清单:每个都讲一遍能拿来干嘛

仓库里目前的 skill 分三大桶:engineeringproductivitymisc。我按使用频率从高到低过一遍。

🔥 Engineering:日常开发主力军

Skill一句话定位什么时候用
grill-with-docs一边拷问你需求,一边更新 CONTEXT.md/ADR每次开始一个新需求前
tdd强制 red-green-refactor,反对"水平切片"写新功能 / 修 bug
diagnose6 阶段调试方法论,最先建反馈环难复现 bug、性能回退
to-prd把当前对话凝练成 PRD 并提交 issue拷问完成后落地
to-issues把 PRD/计划拆成"垂直切片"GitHub IssuePRD 落地后准备并行执行
triageIssue 状态机分类,按 label 流转接手一个新 backlog 时
improve-codebase-architecture找"加深模块"的机会、做架构精修每隔几天 / 重构周
zoom-out让 Agent 站在系统层面再讲一遍进入陌生模块
setup-matt-pocock-skills一次性配置 issue tracker / 标签 / 文档路径装完 skills 第一次跑
重点解剖一下 tdd —— 它真的不一样

绝大多数所谓的 "AI TDD" 都是水平切片:先把所有测试写完,然后让 Agent 把所有实现一次性写出来。Matt 直接把这种做法标成 anti-pattern:

1WRONG (horizontal):
2  RED:   test1, test2, test3, test4, test5
3  GREEN: impl1, impl2, impl3, impl4, impl5
4
5RIGHT (vertical, tracer bullet):
6  RED→GREEN: test1→impl1
7  RED→GREEN: test2→impl2
8  RED→GREEN: test3→impl3
9

为什么?因为水平切片让你对着想象中的行为写测试,结果就是测试只测"形状"(数据结构、函数签名),真正行为变了它都不报警。Matt 强调:只测公共接口的行为,不要 mock 内部协作者。如果你重命名一个内部函数测试就挂,那这个测试本身就是错的。

diagnose 的核心金句

"If you have a feedback loop, you will find the cause — bisection, hypothesis-testing, and instrumentation all just consume that signal."

整个 6 阶段里最重要的是 Phase 1:Build Feedback Loop。一个 2 秒能跑完的确定性 pass/fail 信号,被 Matt 称为"调试超能力"。如果 bug 不稳定复现,先把复现率提到 50% 以上再继续。这条规则我自己用过,效率拉爆。

🛠️ Productivity:通用工作流工具

Skill一句话定位
caveman极简通信模式,token 占用立省 ~75%
grill-me不写代码场景下的需求拷问
write-a-skill帮你按规范写一个新 skill

caveman 这个名字非常有梗——"穴居人模式",Agent 直接把废话和客气话全砍掉,只输出技术结论。开长会议、跑批量任务的时候非常省钱。

🧰 Misc:偶尔用一次

Skill用途
git-guardrails-claude-code给 Claude Code 装"git 安全护栏",自动拦截 push --force / reset --hard / clean -fd
migrate-to-shoehorn测试断言迁移到 @total-typescript/shoehorn
scaffold-exercisesMatt 自己课程的题目脚手架
setup-pre-commitHusky + lint-staged + Prettier + tsc + test 一键配置

git-guardrails-claude-code 我建议所有人都装。AI Agent 拿到 shell 权限后,最容易翻车的就是误执行 git reset --hard,这个 skill 直接在 hook 层把命令拦下来。


四、30 秒上手:完整安装与首次配置

Step 1 - 一行命令安装

1npx skills@latest add mattpocock/skills
2

它会启动一个交互式 CLI,让你勾选:

  1. 想装哪些 skill(推荐至少勾上 setup-matt-pocock-skillsgrill-with-docstdddiagnoseto-prdto-issuesimprove-codebase-architecture
  2. 装到哪个 Agent(Claude Code、Codex、Cursor 等都支持)

Step 2 - 跑一次初始化向导

1/setup-matt-pocock-skills
2

它会问你三件事:

  • Issue tracker 用什么? GitHub Issues / Linear / 本地 .scratch/ markdown 都支持
  • triage 用什么标签? 用于 /triage 的状态机标签词典
  • 领域文档放哪里? CONTEXT.mddocs/adr/ 默认在仓库根

跑完之后仓库里会多出来:

1.
2├── CONTEXT.md              # 共享领域语言
3├── docs/
4   └── adr/                # 重要决策记录
5└── docs/agents/
6    └── triage-labels.md    # 标签字典
7

Step 3 - 第一次实战流(推荐打法)

11. /grill-with-docs      先让它拷问你,把领域语言落到 CONTEXT.md
22. /to-prd               把对话凝结成 PRD 提交 issue
33. /to-issues            拆成垂直切片 issue,可以并行干
44. 选一个 issue:
5     /tdd               red-green-refactor 实现它
6     /diagnose          遇到难 bug 切到这个
7     /zoom-out          走进陌生模块时
85. 每周跑一次:
9     /improve-codebase-architecture
10

这个顺序就是我自己摸出来的"标准打法"——先对齐、再 PRD、再切片、再实现,最后周期性精修架构。


五、最佳实战攻略:4 个我亲测有效的套路

套路 1:grill-with-docs 是省钱第一神器

很多人忽略 grill-with-docs 的副作用:它会把每次澄清的术语自动 commit 到 CONTEXT.md。坚持几周,你的 CONTEXT.md 就会成为整个团队(包括人和 Agent)的"行话词典",之后所有 session 启动 token 立省 30%-50%

套路 2:让 to-issues 学会"垂直切片"

垂直切片 ≠ 按文件拆。每个 issue 应该是端到端可独立验收的最小用户能感知到的改动(比如"在登录页加 Github OAuth 按钮"),不是"加一个 OAuth utils 文件"。to-issues 内置了这条原则,强制你按行为拆。

套路 3:调试时先建 2 秒反馈环

遇到 bug 的本能反应是——读代码、加 print、改一改。diagnose 让你先停下来问:我现在有没有一个能在 2 秒内吐出 pass/fail 的命令? 没有就先建。这一条改变了我对调试的认知。

套路 4:每周给项目"修剪"一次

improve-codebase-architecture 不是一次性 refactor,它的设计就是周期性使用。每周五跑一次,让它根据 CONTEXT.md 和 ADR 找"可加深模块"的机会,给出小步快跑的清单。坚持一个季度,你会发现项目竟然没有变成大泥球。

套路 5:caveman + git-guardrails 长期开着

caveman 在长任务里能直接砍掉 75% 的 token。git-guardrails 帮你拦住所有"删库跑路"级别的命令。这俩装上忘掉就行。


六、横向对比:mattpocock/skills vs GSD vs BMAD vs Spec-Kit vs Superpowers

这是大家最关心的部分。我做了一张定位对比表:

维度mattpocock/skillsGSD (Get Shit Done)BMAD-METHODSuperpowersSpec-Kit
Star 数(写稿时)49.8K51K149K
核心理念不接管流程,给你工程基本功接管 context window接管 SDLC,模拟敏捷团队接管 TDD 纪律接管 spec → impl 的转换
抽象单位Skill(.md 提示词)Phase + Slash commandAgent 角色(PM/Architect/Dev/SM/QA…)单 orchestrator + 子 agentSpec 文档
典型命令/grill-with-docs /tdd /diagnose/gsd auto /gsd discuss /gsd statusbmad-help + 角色对话TDD 7 阶段流specify plan tasks
交付物CONTEXT.md + ADR + issues.gsd/ 状态机 + HTML 报告PRD + 架构文档 + Story测试 + 实现可执行 spec
可定制度⭐⭐⭐⭐⭐ 一个 .md 一改⭐⭐⭐ 改 PREFERENCES.md⭐⭐ 受 agent 角色约束⭐⭐⭐⭐⭐⭐
学习成本🟢 低🟡 中🟠 高🟡 中🟡 中
适用场景日常工程,需要保留控制权跨天/跨周的多文件长任务真要按敏捷流程跑的产品/团队单人 + 强 TDD 信仰需求驱动型企业项目

三句话讲清楚每个的"性格"

mattpocock/skills —— 像一套瑞士军刀。你愿意每个动作前手动选工具,但每把刀都磨得很锋利。最大优点:你完全 own 流程,每一步都能改。

GSD —— 像一套全自动流水线。它把 context window 当成核心约束来管理:每个 phase 一个全新的 200K 上下文,状态全部落盘到 .gsd/,崩了能恢复,超预算会停。最大优点:长任务零 context rot;缺点:杀小项目。

BMAD-METHOD —— 像一支虚拟敏捷团队。你不是和一个 Agent 对话,而是和 PM、Architect、SM、Dev、QA 这些 persona 轮流开会。Party Mode 还能让多个 persona 一起讨论。最大优点:把"敏捷流程"内化进了工具;缺点:流程重,新手会被淹没。

Superpowers —— TDD 警长。一个 orchestrator 调度子 agent,所有产品代码必须先有失败测试。最大优点:纪律性最强;缺点:单 orchestrator 在超长 session 里 context 会爆。

Spec-Kit —— 规格驱动开发。先写正式 spec,然后 plan、tasks、implement。适用:大公司有强需求评审文化的团队。

选型决策树

1你的项目是?
2├── 一个长期演进的真实产品(>3个月)
3   └── 团队人多 / 需要敏捷流程  BMAD
4   └── 单人/小团队,但要 own 控制权  mattpocock/skills
5   └── 长任务多文件,怕 context rot  GSD
6
7├── 一次性的小项目 / 学习项目
8   └── 想培养工程纪律  mattpocock/skills(推荐入门)
9   └── 强信仰 TDD  Superpowers
10
11└── 企业级,需求评审重  Spec-Kit
12

我个人的搭配方案

我现在的工作流是:

mattpocock/skills 做"日常打法",GSD 用于跨天长任务

grill-with-docs 把领域语言沉淀下来,然后用 to-issues 切成垂直切片。单个切片如果预计能在 1 个 session 内做完,就直接用 /tdd + /diagnose;如果是跨天的大切片(比如改造 5+ 文件的迁移),就开 /gsd auto 让它自己跑,崩了恢复也方便。

BMAD 我只在新启动的产品项目里用——那种真的需要 PM/Architect 角色感的场景。日常 CRUD 用 BMAD 属于杀鸡用牛刀。


七、几个值得细嚼的设计决策

1. 为什么选 Markdown 而不是 DSL?

整个仓库就是一堆 SKILL.md,没有自己的语法、没有插件 API、没有运行时。这种克制本身就是一种设计——任何 LLM 都能读 Markdown,任何编辑器都能改 Markdown,任何工程师都能贡献。Matt 完全没想做 lock-in。

2. 为什么强调"composable"?

每个 skill 都很短(~50 行),每个 skill 都假设其他 skill 也存在。grill-with-docs 写完会喂给 to-prdto-prd 写完会喂给 to-issuesto-issues 写完会喂给 tdd它不强迫你跑全套,但配合起来就是完整工作流。

3. 为什么把 ADR 放在第一线?

这点最反直觉。一般框架要么完全不管文档,要么把文档当成事后产物。Matt 把 ADR 当成 grill-with-docs 的副产品——只在决策"难以反转、缺少上下文会让人困惑、有真实 trade-off"时才写。这个判断标准值得抄走。

4. caveman 的存在透露了什么?

它说明 Matt 真的在乎 token 成本。一个连"穴居人模式"都开发出来的人,对工程实用主义的关注是写在 DNA 里的。


八、写在最后:为什么这套 Skills 能打动我

我用过 BMAD、试过 GSD、抄过 Superpowers 的 prompts。它们都很厉害,但都让我有一种"在被框架推着走"的感觉

mattpocock/skills 给我的感觉完全不一样:它没有取代我的判断,而是把我十几年来好不容易养成的习惯(先对齐、先建反馈环、先关心架构)固化成 Agent 也能执行的提示词。当我说 /grill-with-docs 的时候,我清楚地知道接下来会发生什么、为什么这么做、出问题该怎么改。

AI 不是来替你做工程师的,是来放大你工程能力的。

但前提是——你得真的有工程能力。

如果你也受够了 vibe coding 的混乱、又不想被一个全包式框架绑死,强烈建议今天就跑一遍:

1npx skills@latest add mattpocock/skills
2

grill-with-docstdddiagnose 三件套先用起来,一周后你会回来给这篇文章点赞的(笑)。


参考资源


如果这篇文章对你有帮助,欢迎在评论区聊聊你目前的 AI 编码工作流是什么样的,或者你最想看哪个 skill 的逐字解读。

Happy Coding !


解决 4 大 AI 编码痛点:Matt Pocock 的 Skill 工作流深度拆解》 是转载文章,点击查看原文


相关推荐


Android Studio 项目模板完全指南
90后晨仔2026/4/22

本文将详细介绍 Android Studio 中创建项目时的各种模板选项,帮助你快速选择最适合的项目起点。一个小白的自学成长之路 一、设备类型分类 首先,左侧列表显示了不同的设备平台: Phone and Tablet:手机和平板应用(最常用) Wear OS:智能手表应用 Android TV:电视应用 Automotive:车载应用 二、Phone and Tablet 模板详解 1. No Activity 含义:创建一个没有任何活动(Activity)的空项目


【Ollama本地大模型】性能优化思考
盛世隐者2026/4/13

文章目录 1. 硬件配置与模型选择2. 模型参数配置🧠 参数详解:为何这样配置你的10核+8GB显存 3. 本地API调用3.1 模型驻留⚙️ 工作原理🛠️ 配置方式💡 实用技巧💡 最佳实践与注意事项 3.2 流式输出🔌 原理:它是如何工作的?⚖️ 场景与效果对比⚙️ 默认行为与语言SDK差异🛠️ 实际应用示例1. 流式 (`stream: true`)2. 非流式 (`stream: false`) ✨ 高级特性:工具调用与思考过程💡 最佳实践 3.3


JVM学习问题记录(2) jps命令无法识别
Engineer邓祥浩2026/4/5

现象: 命令行输入jps命令,提示"jps不是内部或外部命令,也不是可运行的程序" 背景: 学习JVM,测试jdk自带性能分析工具,需要用到jps工具 思路: 先怀疑自己 可能的原因 JDK安装有问题,无jps.exe环境变量设置问题,找不到jps.exe 动手: 去JAVA_HOME配置的查看,发现jps.exe在,用绝对路径执行是正常的查看环境变量,JAVA_HOME和path配置也是正确的,echo结果也是对的 这里就感觉很奇怪,而且试了下javac命令是正常的,那也不是路径配置问题,这里


微软官方Python网格覆盖与鼠标控制库
鹓于2026/3/28

微软官方:网格覆盖 / 鼠标指针控制 Python 库 微软官方网格覆盖(Grid Overlay)、移动鼠标指针的 Python 库,是: ✅ 官方库:windows-ui-automation / pywin32 + 微软 Mouse 原生 API 微软官方推荐的 Python 鼠标 / 网格覆盖控制方案: pywin32(Windows 系统 API,官方支持)windows.ui.input(UWP 官方鼠标 / 指针 API)Win32 API mouse_event / Se


Room 3.0:这次不是升级,是重来
Android_小雨2026/3/20

用了 Room 这么多年,大家都习惯了那套熟悉的注解和生成代码。但 Google 这次直接玩大的:新包名、只生成 Kotlin 代码、彻底抛弃 KAPT,还把同步的 DAO 方法一刀切了。所有数据库操作必须走协程或者响应式类型。 这不是 Google 闲着没事干,而是为了彻底拥抱 Kotlin Multiplatform(KMP)。Room 从出生就死死绑定 Android 的 SupportSQLite,现在想跨平台(Android、iOS、JVM、甚至 Web),只能大破大立,甩掉历史包袱


OpenClaw龙虾图鉴:16只AI Agent选型指南
默语佬2026/3/11

这里写目录标题 🦞 OpenClaw龙虾图鉴:16只AI Agent选型指南🎯 快速选型指南🥇 第一梯队:官方正统1️⃣ OpenClaw - 原生官网框架2️⃣ 🌙 KimiClaw - 云端大存储+Kimi K2.53️⃣ ⚡ MaxClaw - 成本杀手,10秒部署 🥈 第二梯队:极客专精4️⃣ 🔥 NullClaw - 678KB极致疯子5️⃣ 🦀 OpenFang - Rust生产级Agent OS6️⃣ 🐍 Nanobot - Python死忠粉7️⃣ 🤖


一键部署 Ceph 集群!Ansible 运维实战教程
遇见火星2026/3/3

一、Ceph 基础介绍 1.1 什么是Ceph Ceph是一款开源的分布式存储系统,具备高可用、高扩展、无单点故障的特性,可统一提供块存储(RBD)、对象存储(RGW)、文件存储(CephFS)三种存储服务,广泛应用于云计算、大数据等场景。 1.2 Ceph核心组件 组件 作用 MON(Monitor) 集群监视器,维护集群状态、管理认证、决策集群拓扑 OSD(Object Storage Daemon) 存储数据的核心进程,负责数据的存储、复制、恢复、均衡 MDS(Met


一个简单Demo彻底理解前后端怎么连的丨Figma + Supabase + Vercel
阿星AI工作室2026/2/23

哈喽,大家好! 我是阿星👋 很多小白编程学了三个月,全是AI做主UI,难以融入自己的设计理念。 甚至不了解前后端到底怎么连通的。 一旦代码出错了,可能和AI对话还要重新理解一遍概念。所以今天,我们通过一个简单的case,把一个完整前后端的核心链路全跑一遍👇🏻 让你能自己把控UI、把控数据库、把控前端、后端。 🗺️ 先看一眼全局流程 整件事分五步,每一步做完了才能进下一步: ① Figma 画页面 →  ② 定接口契约 →  ③ Supabase 建数据库→  ④ AI 帮你写连接代码


EasyExcel的使用
脸大是真的好~2026/2/15

需求1:能够导出1个Excel文件,能够导入一个Excel文件; 需求2:导出的文件,能实现第1行,第123列的合并单元格:也就是会写注册处理器;知道sheet和cell是什么; 需求3:能实现合并的单元格设置单元格宽高,背景颜色,内容居中,字体大小; 需求4:能控制从任意行开始写入,并让要输出的字段居中; 需求5:导出能实现从任意行开始读入; 导出Excel文件 <!-- EasyExcel 核心依赖 --> <dependency> <groupId>com.alibaba</gro


提示词工程入门-03
一诺滚雪球2026/2/6

前言 "写个代码" "帮我写个快速排序函数,用 Python 实现,要求时间复杂度 O(n log n),添加详细注释" 同样是让 AI 写代码,为什么第一个指令得到的是模糊的回复,而第二个能得到精确满足需求的代码? 这就是提示词工程(Prompt Engineering)的魔力。 好的 Prompt = 好的输出。今天我们来学习如何写出让 AI "秒懂"的提示词。 1. 什么是提示词工程 提示词(Prompt):你给大模型的输入指令 提示词工程(Prompt Engineering):设计和

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客