Matt Pocock Skills 深度解析

面向真实工程师的AI Agent技能系统,涵盖grill-me需求澄清、caveman极简沟通、tdd测试驱动、diagnose结构化调试等核心技能

项目概述

Matt Pocock的Skills项目github.com/mattpocock/skills)是一套面向真实工程师的AI Agent技能集合,专注于解决AI编程中的核心工程问题。

💡 核心定位

不是让AI替你思考,而是让AI更高效地执行你的工程决策。

项目特色

🔧 小而美 🤖 模型无关 📐 工程驱动 🛠️ 可Hack
  • 小而美:每个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编程的四大常见失败模式:

🚫
失败模式一:Agent没有做你想要的事

问题本质:人类与AI之间存在沟通鸿沟。你以为AI理解了,实际上它完全没有。

解决方案:grill-me / grill-with-docs 通过系统性追问确保对齐

📏
失败模式二:Agent输出过于冗长

问题本质:AI需要理解项目的专业术语和领域语言,否则会"用20个词表达1个词的意思"。

解决方案:CONTEXT.md共享语言 + caveman极简模式

🐛
失败模式三:代码无法正常工作

问题本质:缺乏有效的反馈循环。AI需要静态类型、浏览器访问和自动化测试。

解决方案:tdd红绿重构 + diagnose结构化调试

🧶
失败模式四:代码变成一团乱麻

问题本质:AI加速了编码,也加速了熵增。代码复杂度以前所未有的速度增长。

解决方案:to-prd + zoom-out + improve-codebase-architecture

grill-me 需求澄清

核心机制:主动追问型Skill,通过系统性提问帮助用户理清思路,确保在动手之前达成共识。

"No-one knows exactly what they want"
— David Thomas & Andrew Hunt,《The Pragmatic Programmer》

核心规则

  1. 逐个提问:一次只问一个问题,让用户专注于当前决策
  2. 遍历决策树:沿着设计分支逐一解决依赖关系
  3. 提供建议:每个问题附带推荐答案选项
  4. 代码优先:能用代码库探索的问题,就不要问用户

工作流程

1
用户发起
用户说"grill me on this plan"
2
开始追问
逐个问题(每次一个),每个问题提供推荐答案
3
探索验证
探索代码库验证理解
4
达成共识
决策树完全遍历后,达成共享理解
💡 关键洞察

问正确的问题比给正确的答案更重要。在AI时代,很多人急于让AI立即开始工作,却忽略了前期需求澄清的价值。

grill-with-docs 领域感知追问

在grill-me基础上的增强版,增加了两个关键组件:

  1. 领域模型感知:参考CONTEXT.md中的项目术语表
  2. 决策记录:将关键决策写入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:"

使用技巧

✓ 深度技术讨论阶段 ✓ 快速迭代场景 ✓ Claude Code等工具配合 ✗ 不适合:初次需求讨论

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工作流

1
规划
确认接口变更、测试行为(按优先级)、设计可测试接口
2
追踪子弹
一个测试 → 最小代码通过 → 证明端到端路径可行
3
增量循环
一个测试 → 失败 → 最小代码 → 通过
4
重构
所有测试通过后,提取重复、加深模块
⚠️ 重要规则

RED状态不重构,先到GREEN。"你不能测试一切"——确认哪些行为最重要。

diagnose 结构化调试

核心理念:六阶段调试方法论,强调反馈循环构建优先。

💡 核心洞见

"如果你有一个快速、确定性、可由Agent运行的pass/fail信号,你会找到原因。没有这个信号,再怎么看代码也救不了你。"

六阶段调试流程

1
构建反馈循环(关键!)
按优先级尝试:失败测试 → Curl/HTTP脚本 → CLI调用 → 无头浏览器 → 回放trace → 属性测试 → 二分查找
2
复现
运行循环,确认产生用户描述的失败模式
3
假设
生成3-5个排序假设,每个必须可证伪:"If X is cause, then Y will fix"
4
探测
每个探测映射到具体预测,一次只改一个变量。日志标记[DEBUG-xxx]
5
修复 + 回归测试
在修复前写回归测试,确认有正确的"接缝"
6
清理 + 复盘
删除所有DEBUG日志,说明正确的假设在commit消息中

improve-codebase-architecture 架构改善

核心理念:发现代码库中的加深机会——将浅层模块转化为深层模块。目标是可测试性和AI可导航性。

关键术语

术语 定义
Module 任何有接口和实现的东西(函数、类、包、切片)
Depth 接口上的杠杆——调用者每个界面单位能获得多少行为
Seam 可以不原地编辑而改变行为的地方
Locality 变更、bug、知识集中在一处

核心原则

🧪 删除测试

想象删除模块。如果复杂度消失,是passthrough。如果复杂度分散到N个调用者,模块物有所值。

🎯 两个适配器原则

一个适配器=假设接缝。两个适配器=真实接缝。不要引入接缝除非真有东西在其上变化。

工作流程

  1. 探索:阅读CONTEXT.md和ADR,有机探索代码库,记录摩擦点
  2. 展示候选:给出编号的加深机会列表(Files/Problem/Solution/Benefits)
  3. 追问循环:用户选一个后,边走设计树边解决约束和依赖

与一人公司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 ← 【新增】

核心洞见总结

五大核心理念

1
沟通先行
在AI动手前花时间对齐理解,回报巨大
2
反馈循环
没有快速反馈的调试是盲目的
3
垂直切片
一次做一件事,做完整
4
共享语言
项目术语表减少75% token浪费
5
架构意识
AI加速编码也加速熵增,需要主动设计

可立即采纳实践

✓ 每次大任务前使用grill-me ✓ 建立项目CONTEXT.md ✓ 深度讨论时使用caveman ✓ TDD垂直切片开发 ✓ diagnose结构化调试

参考资源