W
AI-Wiki
SOURCE

mattpocock skills README 摘要

文档概览

这份 README 把 mattpocock/skills 描述为作者“每天都会使用的 agent skills”,目标是做“真实工程”,而不是只做气氛式编码。文档强调,这套 skills 不是试图完全接管开发流程,而是用一组较小、容易调整、可互相组合的技能,来修复 Claude Code、Codex 等 coding agents 的常见失败模式。

文档原意是:很多方法论试图通过“拥有整个流程”来帮你,但代价是拿走控制权,而且流程本身一旦出 bug 很难修;这套 skills 则更轻量,强调可组合与可定制。

README 先给出一个“30 秒安装”流程,然后用四类典型问题解释这些 skills 为什么存在:

  • 代理没有做出用户真正想要的东西
  • 代理太冗长
  • 代码能写出来但不工作
  • 最终把系统做成一团泥球(ball of mud)

在最后的 Reference 中,文档给出完整的技能目录,并用一条明确规则把技能分成 User-invoked skills 与 model-invoked 两类。

快速开始

README 给出的安装与初始化过程分为 4 步:

  1. 运行安装命令:npx skills@latest add mattpocock/skills
  2. 选择想安装的 skills,以及要安装到哪些 coding agents 上;README 特别强调务必选择 /setup-matt-pocock-skills
  3. 在 agent 中运行 /setup-matt-pocock-skills
  4. 完成后即可开始使用

其中 /setup-matt-pocock-skills 的初始化职责在 README 中写得很具体,会继续追问三类配置:

  • 你想使用哪个 issue tracker:GitHub、Linear,或本地文件
  • 你在分诊(/triage)时会给 tickets 打什么 labels
  • 之后创建的文档要保存到哪里

这些细节说明,这个仓库的 skills 不只是孤立命令,而是会在仓库层面建立约定,例如 issue tracker、triage label 和文档落盘位置。

这些 skills 试图修复的失败模式

README 用四个问题解释设计动机。

1. 代理没做出我想要的东西

文档认为最常见的失败模式是 misalignment(不对齐)。你以为开发者或代理理解了需求,但最后产出的东西并不是你真正想要的。README 认为这在 AI 时代仍然成立,本质上是用户与 agent 之间存在沟通鸿沟。

对应修复方式是进行一场 grilling session:让代理针对要做的事情持续提出细致问题,直到关键分支被澄清。README 在这里推荐两个 skills:

  • grill-me:用于非代码场景
  • grill-with-docs:和 grill-me 类似,但额外带文档与领域建模能力

README 还明确给出操作建议:每次要做改动时都应该使用它们,目的是在真正开始之前,先把人与代理的理解对齐。

2. 代理太冗长

README 把“代理过于冗长”单独列为一个需要修复的问题。它指出,在项目初期,开发者与领域专家通常并不说同一种语言;代理被直接扔进项目后,也只能边做边猜术语,于是“本来 1 个词能说清的事情,它会用 20 个词来说”。

文档提出的修复方式是建立 共享语言,也就是一份帮助 agent 解码项目内部术语的文档。README 用 CONTEXT.md 的例子说明这种共享语言如何把长描述压缩成团队内部的精确术语。

README 对共享语言给出几个额外收益:

  • 变量、函数、文件名会更一致
  • 代码库更容易导航
  • 代理在思考时会花更少 token,因为它能使用更精炼的语言

这套能力被整合进 grill-with-docs。README 说它不只是 grilling,还会帮助你建立 domain model,并把难解释的决策写入 ADR。就本页必须覆盖的事实而言,README 明确把这类设计提出为修复代理“过于冗长”的办法。

3. 代码写出来但不工作

README 认为,如果需求已经对齐,代理仍然产出糟糕代码,通常应该回头检查反馈回路。没有运行期反馈、类型反馈和测试反馈时,代理就像“蒙着眼睛飞”。

文档提出的反馈回路包括:

  • 静态类型
  • 浏览器访问能力
  • 自动化测试

其中测试部分特别强调 red-green-refactor 循环,因此 README 推荐 tdd skill,并说明它鼓励代理先写失败测试、再修复测试,以更稳定地获得反馈。

此外,README 还给出一个诊断难 bug 的 skill:diagnosing-bugs,把最佳调试实践包装成一个简单循环。

4. 我们把系统做成了一团泥球

README 指出,agents 能显著加速编码,但也会同时加速软件熵增,让代码库以前所未有的速度变复杂、变难改。

文档给出的修复方式不是继续堆流程,而是“认真对待代码设计”。README 说这种设计关注被内建到所有这些 skills 的各层里,例如:

  • to-spec 会在创建 spec 前追问你改动涉及哪些模块
  • improve-codebase-architecture 会帮助你挽救已经变成 ball of mud 的代码库

README 对后者还给出使用频率建议:建议每隔几天就在代码库上跑一次

关键事实:Reference 中的调用模型

README 的一个核心部分是对技能调用权限的明确划分。它说这些 skills 是“沿着一个轴拆分”的,这个轴就是:谁可以调用它们

User-invoked skills 的定义

README 明确指出:User-invoked skills 只有在你输入它们时才能触达,例如 /grill-me

这不是宽泛的建议,而是访问条件:只有用户显式输入时,user-invoked skill 才会进入可达状态。

README 还明确给出这类 skill 的职责:它们的工作是 orchestrate(编排)。也就是说,这类技能主要负责组织流程、路由任务、把步骤串起来,而不是承载底层可复用纪律本身。

Model-invoked skills 的定义

README 进一步说明:Model-invoked skills 既可以被用户调用,也可以在任务匹配时被代理自动触达。文档把它们描述为承载可复用 discipline 的地方。

这意味着 README 中的两类技能并不是按主题划分,而是按“触发权限 + 责任边界”划分:

  • user-invoked:显式入口、负责编排
  • model-invoked:可复用执行单元、可由模型自动选择

调用约束

README 对两类技能之间的调用关系给出一条很硬的规则:

  • user-invoked skill 可以调用 model-invoked skills
  • user-invoked skill 不能调用另一个 user-invoked skill

这条规则是本页必须保留的重要边界条件。它限制了编排层之间互相套娃,确保用户入口之间不会形成彼此调用的复杂网状结构。

Productivity 分类

README 在 Reference 中列出一个明确分类:Productivity

该分类的标题就是 Productivity,描述原文为:General workflow tools, not code-specific。也就是“通用工作流工具,而不是特定于代码的工具”。

README 还明确说明,这个分类与 Engineering 一样,继续分为 User-invoked 与 Model-invoked 两组。这说明它并不是一组平铺命令清单,而是同样遵守“谁可以调用”的总规则。

Productivity 下的 User-invoked

README 在 Productivity 分类下列出的 user-invoked skills 包括:

  • grill-me:围绕计划或设计持续发问,直到决策树的每个分支都被解决
  • handoff:把当前对话压缩成一个 handoff 文档,以便另一个 agent 接手
  • teach:跨多个 session 教用户掌握新技能或概念,并把当前目录作为有状态教学工作区
  • writing-great-skills:撰写与编辑 skills 的参考,强调让 skill 可预测的词汇与原则

其中 grill-me 既是 README 前文高频推荐的入口,也是 Reference 中明确举的例子,用来说明 user-invoked skills 只能在用户输入时触达。

Productivity 下的 Model-invoked

README 在 Productivity 分类下列出的 model-invoked skill 是:

  • grilling:围绕计划或设计持续采访用户,直到决策树每个分支都被解决;它被明确描述为 grill-megrill-with-docs 背后的可复用循环

这恰好体现了 README 的分层思路:

  • grill-me 是用户入口,属于 orchestrate 层
  • grilling 是可复用的底层 discipline,属于 model-invoked 层

重要细节

编排层与可复用层的职责拆分

README 没有把所有 skill 都设计成一个级别。它刻意把“入口技能”和“复用技能”拆开:用户输入某个入口型命令后,由入口负责组织流程,再去触发更底层的 model-invoked skills。

这也是为什么 README 要强调 user-invoked 的职责是 orchestrate,而真正可复用的方法论沉淀在 model-invoked skills 里。

grill-megrilling 的关系

结合 README 前后文,可以看出 grill-me 不是“提问循环本身”,而是一个用户可见入口;真正可复用的 relentless interview loop 是 grilling。这也解释了为什么 README 会在 Productivity 分类中同时保留两者。

与工程技能的衔接

虽然本页重点是 Productivity 和调用模型,但 README 其实把这套系统串成了完整工程路径:

  • grill-megrill-with-docs 做前期对齐
  • 用共享语言减少冗长并改善命名、导航与 token 使用
  • tdd 做 red-green-refactor
  • 在实现后用 code-review 做双轴审查
  • 当系统腐化时用 improve-codebase-architecture 做结构恢复

implement 这个 engineering user-invoked skill 的描述尤其能体现这种串联:它会围绕 spec 或 tickets 实施工作,在预先约定的接缝处驱动 /tdd,并在提交前用 /code-review 收尾。

这套设计不是“接管流程”,而是“修正常见失效模式”