Matt Pocock Skills 深度解析
面向真实工程师的AI Agent技能系统,涵盖grill-me需求澄清、caveman极简沟通、tdd测试驱动、diagnose结构化调试等核心技能
项目概述
Matt Pocock的Skills项目(github.com/mattpocock/skills)是一套面向真实工程师的AI Agent技能集合,专注于解决AI编程中的核心工程问题。
不是让AI替你思考,而是让AI更高效地执行你的工程决策。
项目特色
- 小而美:每个Skill独立、功能单一、易于组合
- 模型无关:适配任何LLM编码助手
- 工程驱动:基于数十年软件工程经验
- 可Hack:完全开放源码,可自由修改适配
技能分类
| 类别 | Skills | 用途 |
|---|---|---|
| Engineering | diagnose, tdd, improve-codebase-architecture, zoom-out, to-prd, to-issues, grill-with-docs, github-triage | 代码工作核心技能 |
| Productivity | caveman, grill-me, write-a-skill | 通用工作流工具 |
| Misc | git-guardrails, migrate-to-shoehorn, scaffold-exercises, setup-pre-commit | 辅助工具 |
核心理念与四大失败模式
Matt Pocock在README中指出了AI编程的四大常见失败模式:
问题本质:人类与AI之间存在沟通鸿沟。你以为AI理解了,实际上它完全没有。
解决方案:grill-me / grill-with-docs 通过系统性追问确保对齐
问题本质:AI需要理解项目的专业术语和领域语言,否则会"用20个词表达1个词的意思"。
解决方案:CONTEXT.md共享语言 + caveman极简模式
问题本质:缺乏有效的反馈循环。AI需要静态类型、浏览器访问和自动化测试。
解决方案:tdd红绿重构 + diagnose结构化调试
问题本质:AI加速了编码,也加速了熵增。代码复杂度以前所未有的速度增长。
解决方案:to-prd + zoom-out + improve-codebase-architecture
grill-me 需求澄清
核心机制:主动追问型Skill,通过系统性提问帮助用户理清思路,确保在动手之前达成共识。
核心规则
- 逐个提问:一次只问一个问题,让用户专注于当前决策
- 遍历决策树:沿着设计分支逐一解决依赖关系
- 提供建议:每个问题附带推荐答案选项
- 代码优先:能用代码库探索的问题,就不要问用户
工作流程
问正确的问题比给正确的答案更重要。在AI时代,很多人急于让AI立即开始工作,却忽略了前期需求澄清的价值。
grill-with-docs 领域感知追问
在grill-me基础上的增强版,增加了两个关键组件:
- 领域模型感知:参考CONTEXT.md中的项目术语表
- 决策记录:将关键决策写入ADR(Architecture Decision Records)
核心文件
| 文件 | 用途 |
|---|---|
| DOMAIN-AWARENESS.md | 在追问前了解项目领域术语、模块依赖、业务约束 |
| CONTEXT-FORMAT.md | 共享语言文档的格式规范 |
| ADR-FORMAT.md | 架构决策记录的标准化格式 |
CONTEXT.md示例
# BEFORE "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)" # AFTER "There's a problem with the materialization cascade"
caveman 极简沟通模式
核心理念:通过去除所有"填充词"和"客套话",实现token消耗降低75%。
一旦激活 → 持久化到所有后续回复。关闭条件:用户说"stop caveman"或"normal mode"
必须删除 vs 允许保留
| 必须删除 | 允许保留 |
|---|---|
|
• 冠词:a, an, the • 填充词:just, really, basically • 客套话:sure, certainly, of course • 犹豫词 |
• 碎片化句子 • 缩写:DB/auth/config • 箭头因果:X -> Y • 单字表达 |
示例对比
# ❌ 错误示例 "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by the auth middleware..." # ✅ 正确示例 "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"
使用技巧
tdd 测试驱动开发
核心原则:测试应该通过公共接口验证行为,而不是实现细节。代码可以完全重构,但测试不应该失败。
好测试 vs 坏测试
| 好测试 | 坏测试 |
|---|---|
| ✓ 集成风格,通过公共API | ✗ 模拟内部协作者 |
| ✓ 描述"做什么" | ✗ 验证"怎么做" |
| ✓ 抗重构 | ✗ 内部重构导致失败 |
| ✓ 像规格说明 | ✗ 测试私有方法 |
关键反模式:水平切片
# ❌ 错误做法 RED: test1, test2, test3, test4, test5 GREEN: impl1, impl2, impl3, impl4, impl5 # ✅ 正确做法(垂直切片) RED→GREEN: test1→impl1 RED→GREEN: test2→impl2 RED→GREEN: test3→impl3
TDD工作流
RED状态不重构,先到GREEN。"你不能测试一切"——确认哪些行为最重要。
diagnose 结构化调试
核心理念:六阶段调试方法论,强调反馈循环构建优先。
"如果你有一个快速、确定性、可由Agent运行的pass/fail信号,你会找到原因。没有这个信号,再怎么看代码也救不了你。"
六阶段调试流程
improve-codebase-architecture 架构改善
核心理念:发现代码库中的加深机会——将浅层模块转化为深层模块。目标是可测试性和AI可导航性。
关键术语
| 术语 | 定义 |
|---|---|
| Module | 任何有接口和实现的东西(函数、类、包、切片) |
| Depth | 接口上的杠杆——调用者每个界面单位能获得多少行为 |
| Seam | 可以不原地编辑而改变行为的地方 |
| Locality | 变更、bug、知识集中在一处 |
核心原则
想象删除模块。如果复杂度消失,是passthrough。如果复杂度分散到N个调用者,模块物有所值。
一个适配器=假设接缝。两个适配器=真实接缝。不要引入接缝除非真有东西在其上变化。
工作流程
- 探索:阅读CONTEXT.md和ADR,有机探索代码库,记录摩擦点
- 展示候选:给出编号的加深机会列表(Files/Problem/Solution/Benefits)
- 追问循环:用户选一个后,边走设计树边解决约束和依赖
与一人公司SOP对比分析
架构理念对比
| 维度 | Matt Pocock Skills | 一人公司SOP |
|---|---|---|
| 核心目标 | 让AI执行工程决策 | 人类指挥AI团队 |
| AI角色 | 工具执行者 | 团队成员 |
| 人类角色 | 决策者/审核者 | 主人/最终决策者 |
| 沟通方式 | Skill指令 | 自然语言 + 结构化任务 |
融合建议
1. 整合grill追问机制
在主Agent任务分解流程中,增加grill追问环节,确保需求对齐。
2. 建立项目CONTEXT.md
定义核心术语和模块描述,形成团队共享语言。
3. TDD整合到Phase执行
在任务分解阶段引入"确认测试哪些行为"环节。
4. 采纳diagnose六阶段
将结构化调试方法论整合到调试子Agent。
整合路径
Phase 1: 记忆系统
↓
Phase 2: 任务接收
↓
Phase 3: grill-me需求澄清 ← 【新增】
↓
Phase 4: 任务分解 + TDD规划 ← 【TDD整合】
↓
Phase 5: 执行 + 红绿重构 ← 【TDD执行】
↓
Phase 6: 调试 → diagnose六阶段 ← 【新增】
↓
Phase 7: 架构评审 → improve-codebase ← 【新增】
核心洞见总结
五大核心理念
可立即采纳实践
参考资源
- GitHub仓库:github.com/mattpocock/skills
- Matt Pocock Newsletter:aihero.dev/s/skills-newsletter
- 参考书籍:
- 《The Pragmatic Programmer》
- 《Domain-Driven Design》
- 《A Philosophy of Software Design》
- 《Extreme Programming Explained》