AIGC标识 Matt Pocock Skills 流程/用法盘点

Matt Pocock Skills

Agent Skills · 参考手册

38 个可拆装的 agent skill,四个桶,一条从想法到上线的主流程。这份文档讲清它的开发哲学、常用技能、协作机制和落地场景。

38 skills · 4 buckets · 快照 2026-10-09 · 49dd158 · 仓库 mattpocock/skills

这套东西的自我定位是「真实工程,不是氛围编程」。它刻意不去拥有你的流程——不像 GSD、BMAD、Spec-Kit 那样把整条流水线接管过去,那样做的代价是你失去控制权,而且流程本身出 bug 时很难修。它给你的是一组小、好改、可组合的工具,作者的原话是「拿它们开刀,变成你自己的」。

01 他遵循什么开发流程

作者是从四个反复出现的失败模式倒推出这套流程的。每一个模式对应一句软件工程的经典论断,再对应一组具体技能。理解这四个模式,比记住技能名字重要得多。

01 · Agent 做的不是我要的

"没有人确切知道自己要什么"
—《程序员修炼之道》

最常见的失败模式是没对齐。你以为对方懂了,看到成品才发现完全不是那回事。AI 时代这个沟通鸿沟一点没变小。

对策是拷问式访谈:让 agent 就你要做的东西,一个决策一个决策地问下去。/grill-me(不分代码)、/grill-with-docs(有仓库时用,会顺手留下文档)。作者说这是他最受欢迎的两个技能,每次想做改动前都该用。

02 · Agent 太啰嗦

"有了统一语言,开发者之间的对话和代码的表达都源自同一个领域模型"
—《领域驱动设计》

项目初期,开发者和领域专家说的根本不是一种语言。agent 更惨:它被直接丢进项目里,边干边猜行话,结果用 20 个词说 1 个词的事。

对策是统一语言:一份帮 agent 破译项目行话的文档(GLOSSARY.md)。效果是一句话的差别——「课程里的一节课被『实体化』(即在文件系统里拿到位置)时有问题」变成「物化级联有问题」。作者称这可能是整个仓库里最酷的技术,回报是复利的:命名一致、代码库更好导航、agent 思考也更省 token。

这项能力内建在 /grill-with-docs 里,访谈的同时就在建这份语言,并把难以解释的决策写进 ADR。

03 · 代码跑不起来

"永远小步前进。反馈速率就是你的速度上限。"
—《程序员修炼之道》

就算对齐了要做什么,产出还是一团糟,那要回头看反馈回路。没有代码实际运行情况的反馈,agent 就是在盲飞。

对策是老几样:静态类型、浏览器访问、自动化测试。其中红-绿-重构循环最关键——先写一个失败的测试,再让它变绿。/tdd 把这条循环连同「什么是好测试」的判断一起交给你;/diagnosing-bugs 则把调试封装成一个分阶段把关的纪律循环。

04 · 造出一坨泥球

"每天都要投资于系统的设计。" — Kent Beck
"最好的模块是深的:一个简单接口背后藏着大量功能。" —《软件设计哲学》

agent 能极大加速编码,也就以空前的速度加速软件熵增。大多数用 agent 搭出来的应用都复杂、难改。

对策是把设计当成日常投入,而不是事后补救。这条贯彻在每一层:/to-spec 建规格前先问清你动了哪些模块;/tdd 只在事先约定的接缝上写测试;/code-review 查的是仓库规范。还有专门的 /improve-codebase-architecture,勘察出「深化机会」把候选交给你——作者建议每隔几天在你的代码库上跑一次。

一句话概括

你在每个阶段问的问题不同——「我们要做的到底是什么」(对齐)、「它叫什么」(语言)、「它真的能跑吗」(反馈)、「它还能改吗」(设计)——但这四个问题贯穿始终,技能只是把这四个问题变成可重复的动作。

主流程:从想法到上线

大部分工作走这条主干。它有两个分叉点,三条从别处汇入的匝道。

flowchart TD G["/grill-with-docs<br/>拷问式访谈,把想法磨清楚"] S["/to-spec<br/>综合成规格,发布到 issue tracker"] T["/to-tickets<br/>切成带阻塞边的 tracer bullet 工单"] I["/implement<br/>逐工单实现,内部驱动 /tdd 与 /code-review"] R["/retro<br/>回看这一轮,改进 agent 的环境"] Q{"需要可运行的答案吗?"} P["/prototype<br/>用 /handoff 进出"] G --> S S --> T T --> I I --> R G -.->|"只跨一个会话 → 跳过规格与工单"| I G --> Q Q -->|是| P P -->|"带回结论"| S

主流程。第 1 到第 3 步要待在同一个未中断的上下文窗口里,中间不要 compact 或 clear,好让访谈、规格、工单建立在同一套思考上。/to-tickets 之后每个 /implement 都开新的,因为工单是自包含的。

还有三条上匝道,起点不是想法,而是别的东西,它们最终都会汇进主干:

  • 别人的 bug 和需求堆积 → /triage,把外部 issue 推过一串分诊角色,产出 agent-ready 的 issue 交给 /implement。
  • 东西坏了 → /diagnosing-bugs,修完在同一个会话里跑 /retro,问「什么能预防它」。
  • 又大又雾的活儿 → /wayfinder,画一张决策地图,雾散了交给 /to-spec。

两条上下文纪律

这是整套东西里最容易被忽略、价值却最高的一部分。

智能区(smart zone):模型还能保持锐利推理的窗口,作者给的量级是约 15 万 token。会话逼近它时不要硬扛,在最近的阶段边界上 compact 再继续。

阶段边界(phase boundary):一个阶段是会话内的一段工作(访谈、实现、QA),只有两个阶段的交界处才该问「这段上下文怎么办」。阶段中段没什么可决定的——要么继续,要么把剩下的拆给子 agent。到了边界,按这个顺序考虑:

选项 什么时候选它
继续 下一阶段正需要这一段原文,或者智能区还有余量。它能让会话保持为「一手来源」,所以应该最先考虑、最先排除。
/clear 后面的内容都可以抛弃。最便宜,但如果你判断错了,不可撤销。
/handoff 有东西必须带走:换 harness、换目录、交接给同事、阶段中分叉出去的支线任务。
子 agent 任务窄到可以让你离开键盘的时候跑。
/compact 以上都不适用。它是默认项,排在最后,决策树通常停在这里。

这里有两个常见错误,所以顺序本身就是信息。/handoff 看起来像是通用的换窗口手段,其实它只给你「可携带性」这一件事。/compact 是树的最后一项,不是第一项,因为排在它前面的四个选项要么更便宜、要么更精确。

调用规则:谁能调谁

技能按「谁能唤起它」分成两类:

  • 用户唤起(Claude Code 里标 disable-model-invocation: true):只有你手打斜杠命令才会跑。它们的职责是编排。
  • 模型唤起:你可以调,agent 也可以在任务合适时自己够到。它们承载的是可复用的纪律。

规则只有一条:用户唤起的技能可以调模型唤起的技能,但绝不能调另一个用户唤起的技能。所以你看到的是 /implement 内部去调 /tdd 和 /code-review,而不是让你自己把它们串起来。

一个已知副作用

Claude Code 会把带 disable-model-invocation 的技能从注入给模型的技能清单里剔掉。模型读到那份清单时会当成全量,于是报告「这些技能没装」。/ask-matt 的文档承认这是个已知未修的 bug——插件的 27 个技能里有 16 个带这个标记,所以这是常态而不是边角情况。它们是装好的,照打斜杠命令就行。

02 常用技能一览

官方插件只发布 engineering 和 productivity 两个桶——这是仓库自己的架构决策记录里写明的。in-progress 和 misc 要单独装,作者说前者是公开的 beta,随时会改会删。

Engineering · 日常主力

用户唤起 · 负责编排

技能 做什么
/ask-matt 路由器。你说处境,它告诉你该打哪条命令,然后停下,不替你执行。
/grill-with-docs 拷问式访谈,同时建领域模型,边聊边更新 GLOSSARY.md 和 ADR。主流程的入口。
/to-spec 不再访谈,纯综合:把当前对话压成规格并发布到 issue tracker。
/to-tickets 把计划、规格或对话切成 tracer bullet 工单,每个声明自己的阻塞边。
/implement 按规格或工单实现,在约定接缝上调 /tdd,收尾调 /code-review,然后提交。
/implement-spec 整份规格一次做完:把工单当任务图,在就绪前沿上并行跑实现子 agent,全部落到一条集成分支。
/wayfinder 给一个会话装不下的活儿画决策地图,一次解一个,产出决策而不是交付物。
/triage 把外来的 issue 推过分诊角色状态机,产出 agent-ready 的简报。
/improve-codebase-architecture 扫描代码库找深化机会,出一份可视化 HTML 报告,你挑一个它再带你访谈进去。
/retro 会话结束后回看,按严重程度建议改进 agent 的环境——导航、自动检查、编码规范、引导文件、工具链。
/setup-matt-pocock-skills 每个仓库跑一次:配 issue tracker、分诊标签、领域文档位置。

模型唤起 · 可复用的纪律

技能 做什么
/tdd 红-绿-重构循环。好测试的标准、测试只写在接缝上、三种反模式。一次一个竖切。
/code-review 双轴评审:Standards(是否符合本仓库编码规范,外加一套 Fowler 坏味道基线)与 Spec(是否忠实实现了原始 issue)。两个轴各跑一个并行子 agent。
/diagnosing-bugs 硬 bug 与性能回归的诊断循环,核心是先造出一个「这个 bug 一跑就红」的紧反馈回路。
/codebase-design 深模块设计的共享词汇:模块、接口、深度、接缝、适配器、杠杆、局部性。是词典不是流程。
/domain-modeling 主动打磨项目的领域模型:挑战术语、用边界场景压力测试、更新 GLOSSARY.md 和 ADR。
/prototype 为回答一个设计问题做一次性原型——状态与逻辑用一个可分享的 HTML 文件,UI 用几个可切换的变体。
/research 对着高可信一手来源调查一个问题,把结论写成带引用的 Markdown 落到仓库里,以后台 agent 运行。
/pr PR 正文该长什么样:用最小的可视化说清改动、改动前后它确实能跑的证据、以及合并风险的判断。
/wizard 生成一个交互式 bash 向导,带你走只有人能做的步骤:provisioning、配密钥、走不熟的三方后台、一次性迁移。

Productivity · 不限代码

技能 做什么 调用
/grill-me 无状态的拷问式访谈,直到设计树的每个分支都有结论。 用户
/grilling 底层原语。把决策画成设计树,按前沿一轮一轮问,事实归它自己查,决策归你。上面所有「grill」都是它的壳。 模型
/handoff 把当前对话压成交接文档,落在系统临时目录,含一节「建议下个 agent 调哪些技能」。 用户
/wait-what 一句话急救键:上条消息没听懂,让它用简明技术英语重讲一遍,带上背景和你的 GLOSSARY.md 词汇。 用户
/teach 把当前目录当成跨多次会话的教学工作区,产出课程、参考材料、学习记录。 用户
/to-questionnaire 把你答不了的决策变成一份发给别人的问卷。它拷问的是「怎么发」,不是「问什么」。 用户
/writing-for-agents 写 agent 读的文档:技能、AGENTS.md、CLAUDE.md,以及任何靠指针抵达的文档。 模型

In-progress · 公开 beta

不在插件里,要单独装。作者的原话是「公开是有意的:试试它们,然后告诉我哪里坏了」,它们随时会改或消失。

技能 做什么
/loop-me 跨会话拷问,但只产出工作流规格:把你生活里反复出现的回路找出来,规格化到「实现 agent 不用再问任何问题」。
/writing-fragments 写作·探索期。拷问出零散碎片,只往一个文件里追加,不做结构。
/writing-shape 写作·利用期。把素材逐段塑造成文章,每一步都争论该用什么形式。
/writing-beats 写作·利用期。选自己的冒险式成文:每次给你 2–3 个候选下一拍,你挑一个,只写下那一拍。
/claude-handoff /handoff 的进阶版:写完交接文档直接起一个后台 agent 接手。
/setup-ts-deep-modules 给 TypeScript 仓库接 dependency-cruiser,让每个 package 必须是深模块(仅入口文件公开)。
/chief-of-staff 在单个会话里靠协调子 agent 推进一个长期目标。

Misc · 边角料工具箱

作者自称「留着但很少用」,不随插件发布。

技能 做什么
git-guardrails-claude-code 装一个 PreToolUse hook,在执行前拦掉危险 git 命令(push、reset --hard、clean -f、branch -D 等)。
setup-pre-commit 配 Husky + lint-staged + Prettier + 类型检查 + 测试的提交钩子。
migrate-to-shoehorn 把测试里的 as 断言迁到 @total-typescript/shoehorn。TypeScript 专用。
scaffold-exercises 批量生成课程练习目录骨架。基本只对作者自己的课程仓库有用。

03 这些技能如何配合

这套设计里最关键的一句话是:它交付的是 flow(流)而不是 skill(技能)。flow 是穿过技能的一条路径。当你描述自己的处境时,它把你放到某条 flow 的某一步上——这和「按关键词匹配到一个技能」是完全不同的答案。

有人一直要一张按正确顺序排好的技能清单。作者的回答是:那样一张静态表会写 wayfinder → to-spec → to-tickets → implement → code-review → retro,而对大多数情况都是错的。真正重要的部分是那些分叉:有没有代码库?这次构建跨不跨会话?靠谈话能解决这个问题吗?

四个分叉判断

判断 结论
当前目录里有代码库吗? 有 → /grill-with-docs;没有 → /grill-me。两个跑的是同一个底层原语,有仓库时前者会留下书面痕迹。
这个问题靠谈话能解决吗? 不能(涉及状态、业务逻辑、必须看见的 UI)→ 走 prototype 支线,用 /handoff 进出。
这次构建跨多个会话吗? 跨 → /to-spec + /to-tickets;不跨 → 就地 /implement,跳过规格与工单。
这个活儿一个会话装得下吗? 装不下 → /wayfinder。/grill-with-docs 磨的是你一个会话能握住的想法;wayfinder 是给握不住的那个用的,更慢更密,别拿来处理范围明确的功能。

复用的原语

多个入口共用同一条底层纪律,所以你在不同场景里学到的是同一套东西。最典型的是 /grilling:

flowchart LR A["/grill-me<br/>无状态版"] --> H B["/grill-with-docs<br/>有仓库时"] --> H C["/triage<br/>分诊外来 issue"] --> H D["/wayfinder<br/>巨型任务的决策地图"] --> H E["/improve-codebase-architecture"] --> H H["/grilling<br/>底层原语 · 模型唤起"]

/grilling 是唯一被多个入口共用的访谈原语。箭头方向是真实的调用方向:这些入口去调它,而不是它去调它们。

谁在内部调用谁

编排者 内部调用
/grill-with-docs /grilling + /domain-modeling
/implement /tdd(在约定接缝上)→ 收尾 /code-review → 提交
/implement-spec 每个实现子 agent 各自驱动 /tdd,整条集成分支收尾跑一次 /code-review
/improve-codebase-architecture /codebase-design(词汇)+ /grilling(挑中候选后)
/tdd 接口形状本身有疑问时,查 /codebase-design 的词汇

底下还有一层词汇层,是两个被反复引用的参考而不是流程:/codebase-design 提供深模块那一整套词汇(模块、接口、深度、接缝、适配器、杠杆、局部性)和它的原则(删除测试、「接口就是测试面」、「一个适配器是假想接缝,两个才是真接缝」);/domain-modeling 提供 GLOSSARY.md 和 ADR 的维护规范。/tdd 明说自己去查前者,/to-spec、/to-tickets、/code-review 都要求你使用后者建立的词汇。

04 典型场景与组合方式

下面每个场景给出:你处在什么处境、按什么顺序打命令、以及这个顺序为什么是这样。

有了想法,从零开始做一个功能

流程:/grill-with-docs → /to-spec → /to-tickets → /implement → /code-review → /pr

为什么这么排:前四步要待在同一个上下文窗口里不中断,规格和工单才能建立在访谈得到的同一套思考上。/to-tickets 之后,每个 /implement 之间 /clear,因为工单是自包含的,上一个的上下文可以直接丢。收尾的 /code-review 是 /implement 自己会调的,你不用手打。

别人的 bug 和需求堆成山

流程:/triage → agent-ready issue → /implement

为什么这么排:分诊只处理不是你自己创建的 issue——bug 报告、外来需求、任何原始抵达的东西。/to-tickets 产出的工单已经是 agent-ready 的,不要再送进去分诊。分诊产出的简报会让 /implement 之后能直接接手。

线上出问题,第一眼看不出原因

流程:/diagnosing-bugs → /retro → /improve-codebase-architecture

为什么这么排:这个技能拒绝在没有紧反馈回路(一条已经会对这个 bug 变红的命令)之前开始推测。修完在同一个会话里跑 /retro,问「什么本来能预防它」。如果真正的结论是「这里根本没有好的接缝能锁住它」,那就是 /improve-codebase-architecture 的活。

绿地项目,或者一个雾蒙蒙的巨型功能

流程:/wayfinder → 逐个解决决策工单 → /to-spec → /to-tickets → /implement

为什么这么排:/wayfinder 只规划不施工,它产出的是决策而不是交付物,做完时「在有人动手之前已经没有待决定的东西了」。它交接,不构建——雾散之后并回主流程的 /to-spec,让规格把地图上互相链接的决策坍缩成可施工的计划。直接从地图跳到 /implement 会跳过这次坍缩,把链接细节全扔掉;只有发现这活儿其实很小的时候才那么做。

代码库开始腐烂

流程:/improve-codebase-architecture → 挑一个候选 → /codebase-design → /grill-with-docs

为什么这么排:它跑完给你一份带前后对比图的 HTML 报告,每个候选是一个深化机会——用删除测试判断(删掉它是把复杂度集中了,还是只是搬了个家?)。你挑一个,它带你访谈进去。挑中的那个候选会生成一个想法,再从主流程的入口进去。/codebase-design 是你设计这个候选的工作台。注意作者的提醒:它是勘察,不是救援,在一个真正老旧的代码库上它找得出真候选,但不会替你解开乱麻。

有个问题必须跑起来才知道答案

流程:/handoff → 新会话 /prototype → /handoff → 回到原线索

为什么这么排:原型活在自己的目录里,这正是 /handoff 存在的理由——把上下文搬过去,拿到结论再搬回来,并在原来的想法线索里引用这个结论。这一步用的是 handoff 的「可携带性」,而不是拿它当通用的换窗口手段。

会话太长,快撑爆上下文了

流程:走到阶段边界 → 继续? → /clear? → /handoff? → 子 agent? → /compact

为什么这么排:这个顺序本身就是信息。阶段中段不要做这个决定,要么继续,要么把剩下的拆给子 agent。到了边界按顺序问一遍,前面任一项成立就选它;四项都不成立才 compact。硬撑到智能区之外,得到的推理质量是下降的,不如在边界上主动处理。

要交接给同事,或者换个 agent / 换个目录

流程:/handoff → 文档落在系统临时目录 → 对方接手

为什么这么排:交接文档不重复规格、计划、ADR、issue、commit、diff 里已经有的内容,只给路径或 URL——避免同一份事实有两个会漂移的副本。它会脱敏,还会专门写一节「建议下个 agent 调哪些技能」。/claude-handoff 是它的进阶版,写完之后直接起一个后台 agent 接手。

有一个反复出现的个人工作流想固化下来

流程:/loop-me → workflows/*.md → 交给实现 agent

为什么这么排:/loop-me 用同一套访谈纪律,但把目标换成「你生活里反复出现的回路」——你的每周、你的早晨、某个反复做的动作。产出是工作流规格,完成的标准很硬:一个实现 agent 不用再问任何问题就能把它搭出来。它属于 in-progress,随时可能变。

闭环

每个场景都可以用 /retro 收尾,尤其在一次走得不太顺的构建之后。它回看的不是代码而是agent 的环境:机械性的错误变成确定性的检查,判断题变成编码规范,下次构建从一个更好的起点开始。

05 上手前须知

安装:一个 agent 只选一条路

两条路都装会让每个技能拿到两份,所以按 agent 二选一。

场景 命令
Claude Code
自动更新
claude plugin install mattpocock-skills@claude-plugins-official
只含 engineering + productivity 两个桶。
其他 agent
手动更新
npx skills@latest add mattpocock/skills -a <agent>
installer 问你要哪些技能时,务必勾上 setup-matt-pocock-skills。
单独装某个技能
in-progress 只能这样装
npx skills@latest add mattpocock/skills --skill=<name>

装完跑一次 setup

在每个仓库里跑一次 /setup-matt-pocock-skills。它会问你三件事:用哪个 issue tracker(GitHub、GitLab、本地文件,或者你描述的任何东西)、你分诊时给工单打什么标签、以及创建的文档放哪。/to-spec、/to-tickets、/code-review、/wayfinder、/triage 都依赖这份配置。没配的话它们会直接让你去跑它。

改过名的技能

看老文章时容易踩到。三个改名:to-prd → /to-spec,pathfinder → /wayfinder,writing-great-skills → /writing-for-agents(没有留别名)。四个被彻底退役、吸收进别的技能:ubiquitous-language、design-an-interface、qa、request-refactor-plan。


仓库:github.com/mattpocock/skills

posted @ 2026-10-16 13:49  痴人指路  阅读(2)  评论(0)    收藏  举报