发布于 2026-07-14 · 更新于 2026-07-14
AI 写代码很快,但常见翻车往往不是模型不够聪明:需求没对齐、术语各说各话、反馈环缺失、架构熵增失控。mattpocock/skills(Matt Pocock)把这些失败模式拆成一箱小而可改的 skill——目标是 real engineering,不是 vibe coding,也不是把流程主权交给某套「全家桶」方法论。
一、这是什么
仓库自称 Skills For Real Engineers:Matt 自己日常在用的 agent skills,直接从他的 agent 配置里长出来。 和 GSD、BMAD、Spec-Kit 一类方案不同——那些通常通过 接管流程(own the process) 来帮忙,代价是 你失去控制权:流程本身出 bug 时,往往比业务 bug 更难修。 Matt 的设计原则反过来:
一句话:零件箱,不是流水线总成。 你掌舵,skill 只在关键节点注入工程常识。
二、四个失败模式,四类解药
README 的主线不是「有哪些文件」,而是 coding agent 最常翻车的四种方式。1. Agent 没做你想要的 → Grilling
软件工程最常见的失败是 misalignment:你以为对方懂了,交付物出来才发现完全不是一回事。AI 时代只是把这个间隙放大了。 解药是 grilling session:逼 agent 对你做审讯式追问,把决策树每一支走完,再动手。grill-with-docs 在实现上几乎是「组合技」:跑 /grilling,并挂上 /domain-modeling。纪律写得很硬,例如:
- 一次只问一个问题,等你答完再问下一个
- 每个问题附带 推荐答案,降低决策摩擦
- 能查环境(仓库、工具)的事实 不要问人;决策必须留给你
- 达成 shared understanding 之前 不行动
2. Agent 太啰嗦 / 术语乱 → 共享语言(CONTEXT.md)
Agent 被丢进陌生仓库,只能边猜黑话边写——于是 20 个词才能说清 1 个概念。 解药是 ubiquitous language:一份 agent 能解码的项目词典,通常落在CONTEXT.md,难讲的决策进 docs/adr/。
Matt 举过自己的例子:长句描述「课程某 section 下的 lesson 被 materialize 到文件系统」 vs 领域词 materialization cascade——后者跨会话、跨 agent 都更省 token,也更稳。
共享语言的附带收益:
- 变量 / 函数 / 文件命名更一致
- 代码库对 agent 更可导航
- agent 少花 token 在绕弯解释
3. 代码不可靠 → 反馈环(TDD / 诊断)
对齐之后 agent 仍可能写出垃圾——因为没有对「代码是否真的 work」的稳定反馈。 需要的还是老派工程件:静态类型、浏览器可达、自动化测试。技能层则是:/tdd 还明确反对「先写完全部测试再实现」的横向切片:一次一个 tracer bullet,让上一轮的反馈塑造下一轮。
4. 泥球架构 → 每天投资设计
Agent 加速编码的同时,也在 加速软件熵增。多数 vibe 出来的应用难改、难测、难让下一个 agent 读懂。 贯穿全仓的解药是 在乎模块设计——尤其是 Ousterhout 意义上的 deep modules:小接口后面藏大行为。
Matt 的节奏建议:每隔几天就对代码库跑一次架构改善扫描——把「设计」从年度重构变成日常卫生。
三、User-invoked vs Model-invoked
这套 skills 按 谁可以触发 切一刀,比按文件夹切更重要:
规则:
- user-invoked 可以调用 model-invoked
- user-invoked 不要再链式调用另一个 user-invoked(避免编排套编排、失去可控性)
四、日常推荐路径
迷路时先/ask-matt——它是面向「我该用哪个 skill」的路由器。多数功能开发会收敛成下面这条主路径:
实践提示:grill → spec → tickets 尽量留在同一上下文;每个
/implement 再清上下文按票开工。上下文接近模型「还聪明」的上限时,宁可 handoff,不要硬撑。
五、安装:两条路径,两种哲学
路径 A:skills.sh(可编辑副本)
/setup-matt-pocock-skills。适合:想改 skill、多 harness(Claude Code、Codex 等 Agent Skills 标准环境)。
路径 B:Claude Code 原生插件(只读订阅)
在 Claude Code 内:每仓库一次 setup
无论哪条安装路径,在具体项目里跑一次:- Issue tracker:GitHub / Linear / 本地文件
- Triage 用的 label 词汇(
/triage依赖) - 文档(如
CONTEXT.md、ADR)落在哪里
/to-spec、/to-tickets、/wayfinder 会缺少「事实源」约定。
六、Skill 地图(精简)
Engineering — User-invoked
Engineering — Model-invoked
Productivity
仓库里还有
misc/、personal/、in-progress/、deprecated/——介绍阶段不必全装;先主路径,再按痛点加。
七、和 Superpowers / agent-skills 怎么选
本站已有两篇近亲文章: 三套可以 并存,不必二选一:
已经装了前两套时,仍值得单独试用的最小集合:
/setup-matt-pocock-skills/grill-with-docs(或/grill-me)- 坚持维护一份
CONTEXT.md
八、什么时候值得装
适合你,如果:- 已经用 coding agent 写真实产品,痛的是对齐与熵增,不是「不会生成代码」
- 希望 skill 可读、可改、可删,而不是黑盒方法论
- 认同「先问清楚再写」和「模块深度」这类老派工程观
- 还在纯玩具 / 一次性脚本阶段,流程税高于收益
- 只想要一条强制
/do-everything命令(这套故意不提供) - 团队没有任何 tracker 或文档约定,又不想跑 setup
/grill-with-docs 再写代码。一周后再决定是否引入 tickets / implement 全链路。
九、结尾
软件工程基本功没有过时——agent 只是把「跳过基本功」的代价放大、并把「熵增速度」乘上了一个系数。Matt 的 skills 把 Pragmatic Programmer、DDD、XP、Philosophy of Software Design 里 provable 的那部分,压成可重复执行的小步骤。- 仓库:github.com/mattpocock/skills
- 安装入口:skills.sh/mattpocock/skills
- 本站素材底座:
raw/mattpocock-skills.md
