Skip to main content
发布于 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 之前 不行动
Matt 自己的建议是:每次要改东西,都先 grill 一遍。

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 在绕弯解释
这是整仓最值得试的一招,往往比再加十条 lint 规则更有杠杆。

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(可编辑副本)

安装时勾选你需要的 skill 与目标 agent,务必包含 /setup-matt-pocock-skills
适合:想改 skill、多 harness(Claude Code、Codex 等 Agent Skills 标准环境)。

路径 B:Claude Code 原生插件(只读订阅)

在 Claude Code 内:
或在 shell:
插件是 managed bundle:不拷贝可改文件进仓库,跟着上游版本走。适合:只想用 Matt 的官方集,并随更新演进。

每仓库一次 setup

无论哪条安装路径,在具体项目里跑一次:
它会问清三件事:
  1. Issue tracker:GitHub / Linear / 本地文件
  2. Triage 用的 label 词汇(/triage 依赖)
  3. 文档(如 CONTEXT.md、ADR)落在哪里
没有这一步,后面的 /to-spec/to-tickets/wayfinder 会缺少「事实源」约定。

六、Skill 地图(精简)

Engineering — User-invoked

Engineering — Model-invoked

Productivity

仓库里还有 misc/personal/in-progress/deprecated/——介绍阶段不必全装;先主路径,再按痛点加。

七、和 Superpowers / agent-skills 怎么选

本站已有两篇近亲文章: 三套可以 并存,不必二选一: 已经装了前两套时,仍值得单独试用的最小集合:
  1. /setup-matt-pocock-skills
  2. /grill-with-docs(或 /grill-me
  3. 坚持维护一份 CONTEXT.md

八、什么时候值得装

适合你,如果:
  • 已经用 coding agent 写真实产品,痛的是对齐与熵增,不是「不会生成代码」
  • 希望 skill 可读、可改、可删,而不是黑盒方法论
  • 认同「先问清楚再写」和「模块深度」这类老派工程观
可以先缓缓,如果:
  • 还在纯玩具 / 一次性脚本阶段,流程税高于收益
  • 只想要一条强制 /do-everything 命令(这套故意不提供)
  • 团队没有任何 tracker 或文档约定,又不想跑 setup
最小承诺:装上 → setup → 下一个真实改动先 /grill-with-docs 再写代码。一周后再决定是否引入 tickets / implement 全链路。

九、结尾

软件工程基本功没有过时——agent 只是把「跳过基本功」的代价放大、并把「熵增速度」乘上了一个系数。Matt 的 skills 把 Pragmatic Programmer、DDD、XP、Philosophy of Software Design 里 provable 的那部分,压成可重复执行的小步骤。 先 grill,再写代码。零件在手,流程仍是你的。