一套超火的开发流程Skills:用工程纪律驯服你的编程Agent

Matt Pocock 大概是 TypeScript 社区里最广为人知的面孔之一了。他的 Total TypeScript 课程和 YouTube 频道帮无数开发者搞懂了类型系统。但最近他在 GitHub 上火起来的原因不太一样:他把自己日常使用的 AI Coding Agent 的 skills 集合开源了,仓库名叫 mattpocock/skills,短短时间就冲到 89K+ stars、7.8K forks,总安装量 140 万次。这些 skills 不是"帮我写个登录页"那种 prompt 模板,而是直接从他 .claude 目录里拿出来的、每天在用的一套工程化开发流程。

Pocock 这套 skills 的深层逻辑是:AI 不会取代软件工程的基本功,它只是把基本功的重要性放大了。需求分析、领域建模、测试策略、架构设计——这些在 AI 出现之前就存在的实践,现在不仅没有过时,反而因为开发速度的提升而变得更加关键。

他解决的四个核心问题,全部对应经典软件工程文献中的原则:

问题一:Agent 没有按你想要的方式做。 来自《程序员修炼之道》——"没人确切知道自己想要什么"。解法 /grill-me 的本质是把传统开发中靠开会、写 spec 来对齐的过程用 Agent 的盘问能力自动化了。

问题二:Agent 过于啰嗦。 来自《领域驱动设计》的"统一语言"概念——团队需要共享术语表。解法 /grill-with-docs 在项目中维护 CONTEXT.md,不仅让对话简洁,还让命名、文件结构、代码组织都围绕同一套语言展开。

问题三:代码不工作。 来自 Kent Beck 的极限编程——"反馈速度就是你的速度上限"。解法 /tdd + /diagnose 构建了写代码→验证→调试→修复的完整反馈闭环。

问题四:代码变成泥球。 来自 Ousterhout 的深模块理论——"最好的模块是深的,用简单的接口提供大量功能"。解法 /improve-codebase-architecture 给了 Agent 发现和修复架构问题的能力。

Pocock 做的事情,本质上是用一套可复用的指令模板,把几十年的工程纪律"焊"进了 Agent 的工作流里。如果你已经厌倦了"Agent 又写了一堆没法用的代码"的循环,这套 skills 值得花一个下午试试。效果怎么样,跑一次 /grill-with-docs 就清楚了。

四、FAQ

Q1:这些 skills 只能用于 Claude Code 吗?

不止。通过 skills.sh 平台安装后,支持 Claude Code、Codex、Cursor、GitHub Copilot、Windsurf 等主流 AI 编程 Agent。本质上 skill 就是 Markdown 指令文件,如果你的 Agent 支持读取本地文件作为上下文(大多数都支持),直接把 SKILL.md 的内容喂给它就行,不一定需要 skills.sh 这个中间层。

Q2:这和 Cursor Rules / .cursorrules 有什么区别?

思路相似但层次不同。Cursor Rules 是静态的全局或目录级规则("始终使用 Tailwind CSS"、"用 TypeScript 严格模式"),适合设定约束。Pocock 的 skills 是交互式工作流——/grill-with-docs 会主动盘问你、更新文档、创建 ADR,它是一个有状态的对话过程而不只是一段静态指令。两者可以共存:用 Cursor Rules 设定基础约束,用 skills 驱动具体开发流程。

Q3:18 个 skill,太多了。从哪个开始用?

最小启动路径只有三步:/setup-matt-pocock-skills(一次)→ /grill-with-docs(每次动手前)→ /tdd(写代码时)。这三个覆盖了需求对齐和编码质量的核心环节,已经能解决大部分"Agent 写了一堆废代码"的问题。其余 skills 等遇到具体场景再按需取用:bug 排查用 /diagnose,代码腐化了用 /improve-codebase-architecture,issue 太多用 /triage

Q4:CONTEXT.md 和 ADR 会不会让项目变得很重?

恰恰相反。CONTEXT.md 只存术语定义(比如"PartialRefund: 针对单个 LineItem 发起的退款"),不存实现细节。ADR 的创建门槛很高——必须同时满足"难以逆转 + 缺上下文很奇怪 + 真实权衡"三个条件才写。大多数日常决策不会触发 ADR。这两个文件的体积通常很小,但 Agent 读取后能大幅降低沟通成本。

Q5:我怎么自己写一个 skill?

目录结构非常简单:创建一个文件夹,里面放一个 SKILL.md 文件,顶部用 YAML frontmatter 写 namedescription,正文写工作流指令。可以参考 /write-a-skill 这个 skill 来引导创建,或者直接 fork 现有的 skill 改内容。skills.sh 平台支持发布你自己的 skill 集合。

Q6:团队里多人使用,会不会每个人的 CONTEXT.md 不一致?

CONTEXT.md 和 ADR 文件是提交到 Git 仓库里的,所以天然就是团队共享的。团队成员只需要 git pull 就能同步最新的术语表和架构决策。如果多人同时用 /grill-with-docs 修改了同一个文件,Git 合并冲突也很容易解决(纯 Markdown 文本)。

Q7:项目已经有 CLAUDE.md 了,会冲突吗?

不会。CONTEXT.md 是领域术语表,docs/adr/ 是架构决策记录,和 CLAUDE.md(通常是项目级别的 Agent 行为指令)是互补关系。你可以把这三个文件理解为:CLAUDE.md 告诉 Agent "怎么做",CONTEXT.md 告诉 Agent "说的是什么",ADR 告诉 Agent "为什么这么决定"。

参考资料