Matt Pocock Skills 技能详解
「给真正做工程的工程师用的技能,不是给 vibe coding 用的。」本手册按使用频率重新排序,帮你把最常用的先练熟。
0130 秒安装(先装才能用)
两个渠道任选其一,装完每个仓库跑一次 /setup-matt-pocock-skills 即可开始。
claude plugins install mattpocock-skillsnpx skills@latest add mattpocock/skills/setup-matt-pocock-skills # 每个仓库只跑一次,配置 issue tracker / 标签 / 文档位置02黄金路径(标准功能开发)
按顺序走这 5 步,完成「对齐需求 → 出 spec → 拆工单 → 实现 → 审查」的完整闭环。任何一步之前都可用 grill 先对齐。
03每次改动必用
高频必会 · 改代码前先打底
grill-me · 盘问式对齐(非代码) 必用
最火的技能。在动手前让 AI 连环追问你的计划/设计,把模糊想法逼成清晰方案。作者说「每次想改东西都先用它」。
/grill-me 我要给 App 加一个微信授权登录- 作者自称「最火的两个技能」之一,每次改动前先用
- 底层是 grilling 原语:按「设计树」分轮提问,每轮给推荐答案
- 非代码场景用这个;涉及项目文档/术语用 grill-with-docs
grill-with-docs · 盘问 + 同步产出文档 必用
grill-me 的加强版:同样连环追问,但过程中顺手建项目的共享语言——写 CONTEXT.md 术语表、把关键决策写成 ADR。
/grill-with-docs- 作者称它可能是「本仓库最酷的一项技术」
- 会调用 grilling + domain-modeling 两个技能
- 共享语言还能让 AI 更少 token、代码更易导航
tdd · 测试驱动开发(红-绿-重构) 必用
把红→绿循环做成可复用纪律:先写会失败的测试,再写最小实现让它变绿。一次只做一个垂直切片,绝不一次写一堆测试再写实现。
/tdd- 写任何测试前先和用户确认「测哪个 seam」,不在未确认的 seam 上写
- 好测试验证公开行为,不耦合内部实现(避免重构就挂)
- 反模式:实现耦合测试、同义反复断言、横向切片
04功能 / PR 常用
高频 · 每个功能一轮
diagnosing-bugs · 纪律化 Bug 诊断循环 高频
硬 bug / 性能回退的诊断纪律:先建一个能稳定复现、几秒出结果的反馈循环,再复现最小化→列假设→验证→修复→加回归测试。跳到猜原因之前必须先有循环。
/diagnosing-bugs 点登录按钮崩溃,logcat 报 NullPointerException- Phase 1 是核心:没有红得起来的循环,就别进 Phase 2 猜原因
- 能建 2 秒确定性循环,就是调试外挂
- 非确定性 bug 目标是提高复现率,不是追求干净 repro
implement · 按 spec / 工单实现 高频
照着 spec 或一组 tickets 把活干完:在约定的 seam 上跑 /tdd,定期 typecheck、跑单测,全做完用 /code-review 审一遍,最后提交当前分支。
/implement- 前提是有 spec 或 tickets(先 grill / to-spec / to-tickets)
- 它自己会串起 tdd 和 code-review,你只 review 结果
- 禁止 model 调用,只能你主动触发
code-review · 双轴代码审查(Standards + Spec) 高频
对固定点(commit / branch / tag)到 HEAD 的 diff 做两轴审查:Standards 查编码规范 + 12 种代码坏味道;Spec 核对是否对齐需求。两个子代理并行,并排报告。
/code-review main- 固定点没指定会问你(如 main、HEAD~5、某 SHA)
- 仓库自己的 CODING_STANDARDS.md 优先于基线
- 提交前必跑,比单人 review 更全
to-tickets · 计划拆成工单 高频
把计划 / spec / 对话拆成一堆 tracer-bullet 工单,每张声明自己被哪些票 block。本地写进文件,或在真实 tracker 上建原生依赖链接。
/to-tickets- 依赖 /setup-matt-pocock-skills 提供的 tracker 与标签
- tracer-bullet:每张都是能跑通的小切片,而非大块任务
- 是 implement 的理想输入
triage · Issue / PR 状态机分流 高频
把 issue(和外部 PR)推过一套小的 triage 角色状态机:分类(bug / enhancement)、验证、必要时 grill,最后写出 AI 可直接接手的 brief。
/triage 42- 每个 triage 评论都要带「This was generated by AI during triage.」
- 依赖 /setup 配置的 tracker 与标签词汇
- 禁止 model 调用,只能你主动触发
05周期 / 按需
中频 · 几天一次或按需
improve-codebase-architecture · 扫描架构深化机会 中频
扫描整个代码库,找出「把浅模块变深模块」的重构机会(提升可测性与 AI 可导航性),生成可视化 HTML 报告,你挑一个就用 grill 陪你深入改。作者建议每隔几天跑一次。
/improve-codebase-architecture- 它是「调研」不是「救援」:老代码库会找到真候选,但不会替你解 mud
- 建立在项目的 domain model 与共享设计词汇之上
- 每隔几天跑一次,防软件熵加速
to-spec · 对话 → spec 中频
把当前对话综合成一份 spec 发到 issue tracker。不做访谈,只综合你已经聊过的内容。
/to-spec- 和 grill-with-docs 搭配:先对齐再出 spec 最顺
- 依赖 /setup 提供的 tracker 与标签
- 禁止 model 调用
research · 后台研究 + 引用归档 中频
起一个后台 agent 去查问题:只认高可信一手来源(官方文档 / 源码 / spec),把带引用的结论写成 MD 存回仓库。你继续干别的。
/research Play App Signing 对 SHA-1 指纹的影响- 跑在后台 agent 上,你这边不等待
- 严禁二手转述,每条 claim 都要追到源头
- 找不到既有约定就放到合理位置并说明
prototype · 一次性原型验证 中频
为回答某个设计问题造一个扔掉的原型:状态/逻辑类问题 → 单个可分享 HTML 文件;UI 类 → 从一个路由切换的多版不同 UI 变体。
/prototype 这个状态机对不对?给个能点着试的- 原型是「扔掉代码,只为回答问题」
- 先想清楚要回答哪个问题,再决定走逻辑分支还是 UI 分支
- 禁止 model 调用
domain-modeling · 建立 / 打磨领域模型 中频
主动构建并打磨项目领域模型:挑战术语、想边界场景,术语一成型就立刻写进 glossary 和 ADR。用于讨论术语、写 CONTEXT.md、记 ADR 时。
/domain-modeling- 和 grill-with-docs 同源,是共享语言的活动纪律
- 术语固化得越早,后续 AI 越省 token、命名越一致
- 禁止 model 调用
codebase-design · 深模块共享词汇 中频
设计深模块的共享词汇表:seam / depth / leverage / locality 等术语的精确定义,用于设计或改进模块接口、决定 seam 放哪、让代码更易测更 AI 可导航。
/codebase-design- 术语要精确:别用 component/service/API/boundary 混用
- 目标是「小接口后面藏大量行为」的深模块
- 是参考型词汇,不是一次会话
wayfinder · 超大任务的决策地图 中频
把大到一次会话装不下的工作,在 issue tracker 上画成一张「决策工单地图」,一次解一个决策,直到通往终点的路清晰。重「找路」而非「冲终点」。
/wayfinder- 先给目的地命名,它决定每张工单的形状
- 解的是「决策」不是「构建切片」
- 禁止 model 调用
ask-matt · 技能路由器 中频
你记不住所有技能时来问它:根据当前情况指向合适的技能或流程(主流程 + 两个 on-ramp),其余大多是独立技能或底层词汇层。
/ask-matt 我想给老模块加新功能,该用哪个?- 记不住清单时的入口
- 本质是「flow 路由器」,不是具体干活
- 禁止 model 调用
06效率 / 协作
低频 · 偶尔用到
handoff · 会话交接文档 低频
把当前会话压缩成一份交接文档,让另一个(或下次的)agent 能直接续上。存到系统临时目录而非当前工作区。
/handoff 下一步要接着做 OAuth 参数对齐- 不重复 specs/plans/ADRs 已有内容,只引用路径
- 适合休假 / 转交需求
- 禁止 model 调用
teach · 跨会话渐进教学 低频
教用户一个新技能/概念,且是有状态的:把学习状态存进工作区多个文件,跨多次会话渐进推进。
/teach 我想系统学 TDD- 把当前目录当教学 workspace
- 适合长期、分主题的学习
- 禁止 model 调用
wait-what · 没跟上?重新讲一遍 低频
上一条消息没听懂时立刻触发:让 AI 用 CONTEXT.md 的共享语言、Simplified Technical English 重新讲一遍,补齐你缺的上下文。
/wait-what- 对话中随时可打断重讲
- 依赖 CONTEXT.md 的共享语言(没有就先 grill-with-docs)
- 禁止 model 调用
to-questionnaire · 把决策变成问卷 低频
把你独自答不了的决定,变成一份问卷交给那个能答的人(异步填,或一起开会填)。它先 grill 你「发给谁、要回什么」,问题再针对知识缺口。
/to-questionnaire 后端 OAuth 参数该怎么填?- grill 的是「发送」不是「主题」——发送你总能答
- 适合跨角色 / 问专家
- 禁止 model 调用
writing-for-agents · 给 agent 写文档的参考 低频
写任何 agent 消费的文档(skill、AGENTS.md / CLAUDE.md、被指针引用的 doc)时的写作参考:context pointer、可预测性等杠杆。
/writing-for-agents- 写 skill 时配合读 SKILL-MECHANICS.md(frontmatter / 调用方式 / 路由)
- 包装不同,写法一致:让 agent 每轮吃同样的 process
- 可 model 调用(作为参考被引用)
07一次性配置
每个仓库只跑一次
setup-matt-pocock-skills · 每仓库一次性配置 低频
配置本仓库的工程技能:选 issue tracker(GitHub / Linear / 本地文件)、triage 标签词汇、领域文档布局。每个仓库只跑一次,之后别的工程技能才能用。
/setup-matt-pocock-skills- 安装后第一件事就是跑它
- 配置会写进 docs/agents/issue-tracker.md 等处
- 换仓库要重新跑
08最佳实践 · 三条高频路径
/grill-with-docs 对齐 + 建 CONTEXT.md
/to-spec 对话 → spec
/to-tickets 拆成 tracer-bullet 工单
/implement 实现(自动驱动 /tdd + /code-review)/diagnosing-bugs
① 建反馈循环(先别猜)
② 复现 + 最小化
③ 列 3-5 个假设
④ 验证 + 修复
⑤ 加回归测试/improve-codebase-architecture
→ 扫描浅模块变深模块的机会
→ 输出可视化 HTML 报告
→ 挑一个 grill 深入改