Matt Pocock Skills:从需求澄清到工程交付的 Agent 工作流

This article is extracted from the chat log with AI. Please identify it with caution.

AI 参与说明(Agent:Codex):本文由 Codex 根据 mattpocock/skills 官方仓库与本机安装快照协助整理和校验。资料核验于 2026-08-25,上游源码锁定为提交 6654f6b。本文核对了 skill 名称、分类、调用策略与公开工作流,但未实际运行 setup-matt-pocock-skills,也未用整套流程完成真实工程交付;具体行为仍应以所用 Agent Harness、仓库规则和锁定版本的 SKILL.md 为准。

先说结论#

Matt Pocock Skills 不是 TypeScript 语法、类型体操或框架 API 的知识包,而是一套可组合的 AI software engineering workflow。它把开发者与 Agent 的协作拆成若干小型 skill:先澄清需求和统一领域语言,再形成 specification、拆分可交付任务、用 Test-Driven Development(TDD)实现,最后按代码规范和原始需求两条轴线复核结果。

它也不是要求团队接受一整套封闭方法论的“全自动开发框架”。官方 README 强调小型、可修改、可组合和 model-agnostic;用户仍掌握工作流入口、项目规则与最终决策。更准确地说,这套 skills 是把传统软件工程纪律包装成 Agent 可以重复执行的工作单元,而不是用更多 prompt 掩盖工程反馈闭环。项目 README

它试图解决哪几类问题#

官方把常见失败归纳为四条主线:Agent 没理解需求、项目没有共享语言、生成的代码缺少可运行反馈,以及代码库在快速生成代码后加速退化。对应的处理方式分别是 grilling、CONTEXT.md 与 Architecture Decision Record(ADR)、TDD 与诊断循环,以及 deep module / clean seam 等代码设计纪律。项目 README

因此,它的价值不在于“多装了 37 条命令”,而在于建立一条可检查的证据链:

  1. 需求通过持续提问被明确,而不是靠 Agent 猜测。
  2. 关键术语、边界和决定进入 CONTEXT.md 与 ADR,而不是只留在聊天历史中。
  3. 计划被切成有阻塞关系的 tracer-bullet tickets,而不是一份顺序很长的待办清单。
  4. 实现通过测试、运行结果和诊断 instrumentation 获得反馈。
  5. Review 同时追问“是否符合仓库标准”和“是否忠实实现原始 specification”。

本机为什么是 37 个 skills#

截至本次核验,本机新安装快照中的 37 个 skill 名称与锁定提交下全部 SKILL.md 一一对应。这个数字由四部分组成:稳定 Engineering 18 个、稳定 Productivity 7 个、In Progress 8 个、Misc 4 个。上游目录在安装后被展平,因此仅看本机同级目录,无法直接知道某项是否属于稳定核心。

稳定 Engineering:18 个#

这组覆盖从需求入口到代码交付的主要工程活动。Engineering 清单

  • 对齐与编排:ask-matt 负责推荐适合的 skill;grill-with-docs 在追问设计的同时维护领域文档;setup-matt-pocock-skills 配置仓库级约定;wayfinder 为跨多个 Agent session 的大型工作维护决策地图。
  • 规划与交付:to-spec 把已有对话整理成 specification;to-tickets 拆成声明阻塞边的 tracer-bullet tickets;implement 按 specification 或 tickets 实现;triage 让 Issues 在明确的 triage role 状态机中流转。
  • 反馈与设计:prototype 做可丢弃的状态、逻辑或 UI 验证;diagnosing-bugs 建立可复现、最小化、假设、instrumentation、修复和 regression test 的诊断循环;research 要求后台 Agent 使用高可信一手来源;tdd 以 red → green 的垂直切片推进,并把 refactor 放到 review 阶段。
  • 代码库纪律:domain-modeling 维护领域词汇和 ADR;codebase-design 提供 deep module、small interface 与 clean seam 的共同语言;improve-codebase-architecture 扫描 deepening opportunities;code-review 做 two-axis review;resolving-merge-conflicts 按双方变更意图处理冲突;wizard 为只能由人完成的凭据、控制台或 cutover 步骤生成交互式 Bash 向导。

稳定 Productivity:7 个#

这组不是专门写代码,而是处理协作、表达和知识传递。Productivity 清单

  • grill-me 是用户显式启动的追问入口,grilling 是其他 skill 可以复用的底层访谈纪律。
  • handoff 把当前对话压缩成可供另一 Agent 接手的文档。
  • teach 使用当前目录保存跨 session 的教学状态。
  • to-questionnaire 把本人无法独立决定的问题整理成发给决策者的问卷。
  • wait-what 在解释没有被理解时,利用项目词汇重新表达。
  • writing-for-agents 用于编写 skill、AGENTS.mdCLAUDE.md 等给 Agent 阅读的文档。

In Progress:8 个#

claude-handoffimplement-specloop-meretrosetup-ts-deep-moduleswriting-beatswriting-fragmentswriting-shape 都已被本机安装,但上游明确把它们标为 Beta:不进入稳定插件和顶层 README,没有完整文档页,未来可能修改或消失。其中 retro 在锁定提交中仍是设计 stub,不能当作已经成熟的 retrospective 工具。In Progress 说明

这组可以理解为三类实验:跨 Agent / 跨 session 交接与执行、TypeScript deep-module 约束,以及从 fragments 到 beats 再到 article shape 的写作流程。它们适合小范围试验,不应仅因“已经安装”就进入团队默认流程。

Misc:4 个#

git-guardrails-claude-codemigrate-to-shoehornscaffold-exercisessetup-pre-commit 是作者保留的低频专项工具。它们分别面向 Claude Code 的危险 Git 命令拦截、测试数据从 as assertion 迁移到 @total-typescript/shoehorn、课程练习目录脚手架,以及 Husky / lint-staged / Prettier / type check / test 的 pre-commit 配置。上游将 Misc 定义为“不常使用、也不在插件中推广”的工具,不应把它们误解为核心工作流的四个必选步骤。Misc 说明

User-invoked 与 Model-invoked#

这套仓库没有再用“command 与 skill”区分层级;每个 SKILL.md 都是 skill,唯一的分类轴是谁能够触发它。Invocation 规则

  • User-invoked:只能由用户显式输入或从 UI 选择。Claude Code 通过 disable-model-invocation: true 限制,Codex 通过 agents/openai.yaml 中的 policy.allow_implicit_invocation: false 表达同一策略。这类 skill 通常是需要人决定何时启动的编排入口。
  • Model-invoked:用户可以显式调用,模型也可以在任务语义匹配时主动选择。它们通常承载可复用的诊断、设计、测试或写作纪律。

本机 37 项快照中,22 项是 User-invoked,15 项是 Model-invoked。组成方式是:稳定 25 项中有 14 项 User-invoked、11 项 Model-invoked;8 项 In Progress 当前均为 User-invoked;4 项 Misc 当前均为 Model-invoked。

这里的“Model-invoked”只是允许自动选择,不等于每次相关任务都一定触发。实际是否触发仍取决于 Agent Harness 是否加载该 skill、描述能否与当前意图匹配、项目级规则是否允许,以及更高优先级的用户指令。反过来,User-invoked 也不是“未安装”,只是模型不能擅自把它当成下一步。

从需求澄清到交付的主线#

下面的纵向流程是根据稳定 skills 的职责归纳出的实用主线,不是强制每个任务都完整走一遍。小修改可以跳过不需要的阶段;设计风险越高、参与者越多,保留 specification 与 tickets 的价值越大。

flowchart TD
    setup["setup-matt-pocock-skills<br/>配置仓库约定"] --> grill["grill-with-docs<br/>澄清需求、更新 CONTEXT 与 ADR"]
    grill --> decision{"是否有高风险设计假设?"}
    decision -->|有| prototype["prototype<br/>制作可丢弃验证"]
    decision -->|没有| spec["to-spec<br/>整理 specification"]
    prototype --> spec
    spec --> tickets["to-tickets<br/>拆 tracer-bullet tickets 与 blocking edges"]
    tickets --> implement["implement<br/>按任务图推进"]
    implement --> tdd["tdd<br/>red → green 垂直切片"]
    tdd --> review["code-review<br/>refactor + Standards + Spec"]
    review --> delivery["提交、交付或继续修正"]

1. setup-matt-pocock-skills:安装之后的仓库配置#

安装只让 Agent 能读取 skills,并没有告诉它项目把 Issues 放在哪里、使用哪些 triage labels、CONTEXT.md 与 ADR 应放在哪里。setup-matt-pocock-skills 会先检查现有 Git remote、AGENTS.md / CLAUDE.md、monorepo 信号和已有文档,再让用户确认 Issue tracker 与领域文档布局。它是 prompt-driven skill,不是可盲目重复执行的确定性脚本。Setup skill

2. grill-with-docs:把模糊认识变成共享语言#

这一阶段不是让 Agent 一次生成更多内容,而是持续追问仍有多个答案的设计分支,并把稳定术语写入 CONTEXT.md、把难以逆转的决定写入 ADR。它减少后续 session 重新猜测项目术语的成本,也让代码中的 module、function 和文件命名有共同依据。Domain modeling

3. prototype:只在需要回答设计问题时插入#

prototype 的产物是 throwaway prototype,不是生产实现。状态与逻辑问题可以用单个可分享 HTML 验证,UI 问题可以并列多个差异足够大的方案。其价值是用低成本反馈淘汰错误假设;若需求和技术路径已经清楚,就不必为了流程完整而强行增加这一阶段。Prototype skill

4. to-specto-tickets:从共识到可抓取工作#

to-spec 不重新访谈,而是综合当前已经讨论的内容并发布到配置好的 Issue tracker。to-tickets 再把 specification 拆成可以独立抓取的 tracer-bullet tickets,每项声明 blocking edges。这里的目标不是把组件横向切成“先做全部数据库、再做全部 API、最后做 UI”,而是形成能尽早跑通反馈的垂直切片。Engineering 清单

5. implement:把 TDD 与 two-axis review 纳入交付#

implement 以 specification 或 tickets 为输入,在预先约定的 seam 上调用 tdd,并在提交前调用 code-review。当前 tdd/SKILL.md 要求每轮只做一个 red → green 垂直切片,refactor 留到 review 阶段;这比顶层 README 的概括更精确。code-review 将审查拆成两条相互独立的轴:Standards 检查仓库已有规则与 code smell baseline,Spec 检查实现是否忠实满足来源 Issue / specification;两者由并行 sub-agents 执行,避免一个审查视角污染另一个。TDD skill Implement skill Code review skill

三条常见 on-ramp#

并不是每项工作都从 setup 后的新需求访谈开始。稳定 Engineering skills 还提供三条常见入口:

  • 已经有 Issue 队列:从 triage 进入,验证、分类、补充信息并形成 agent-ready brief;它依赖 setup 中记录的 triage label vocabulary。
  • 已经出现 bug 或 performance regression:从 diagnosing-bugs 进入。先建立会在该 bug 上变红的反馈闭环,再最小化、提出假设、增加 instrumentation、修复并补 regression test,而不是直接修改第一个看起来可疑的位置。Diagnosing bugs
  • 工作量明显超过单个 Agent session:从 wayfinder 进入,把未知点做成 decision tickets,按依赖逐个解决,直到执行路径清晰;它用于消除重大决策不确定性,不是另一种普通 task list。Wayfinder skill

domain-modelingcodebase-design 则贯穿这些入口。前者维护“这个业务中的词究竟是什么意思”,后者维护“行为应藏在多深的 module 后、interface 应多小、测试应通过哪条 seam 观察”。它们提供共同词汇,不负责替用户选择产品目标。Codebase design

安装不等于完成 repo setup#

通过 npx skills@latest add mattpocock/skills 安装的是普通、可编辑的文件副本。它不会在上游更新时自动改变;需要主动审阅并执行 npx skills update。这与 Claude Code 的 managed、read-only plugin 是两种分发哲学,二者同时安装还会造成重复 skill。锁定提交时,原生 Codex plugin 仍在 roadmap。安装说明

更重要的是,安装与仓库配置是两个阶段:

  1. 安装解决“Agent 能否看到这些 skill 文件”。
  2. repo setup 解决“这些 skill 在本仓库应读取和写入什么”。

在普通代码仓库使用前,应先审阅 setup 准备修改的 AGENTS.mdCLAUDE.md,确认 Issue tracker、triage labels、CONTEXT.md / ADR layout,以及它计划创建的 docs/agents/*.md。如果团队已经有同类约定,应适配现有结构,不能让通用 skill 覆盖项目规则。

Blog 兼容性警告#

不要在本 Blog 直接运行 setup-matt-pocock-skills。本项目已有公开内容目录 docs/Agents/,而 setup 的默认配置文件位置是 docs/agents/。在本机所使用的 macOS 大小写不敏感文件系统上,这两个路径会发生冲突;setup 计划写入的 Issue tracker、triage labels 与 domain 配置可能进入现有公开内容目录,并被 Hugo 当作站点内容发布。

风险不只是多出几个文件。该 skill 还会选择并修改 AGENTS.mdCLAUDE.md,记录 Issue tracker 与领域文档约定。在这个 Blog 中,目录创建、公开内容、Hugo contentDir、front matter 和 Agent 规则已经有更具体的项目约束;项目规则优先于通用 skill。即使只是想体验流程,也不应在 Blog 上直接跑 setup。

若要在普通代码仓库采用这套 skills,至少先审阅并确认以下变更面:

  • 它准备修改 AGENTS.md 还是 CLAUDE.md,是否与既有 steering rules 冲突。
  • Issue tracker 是 GitHub、GitLab、local Markdown,还是团队已有的其他系统。
  • 五种 triage roles 如何映射到既有 labels,避免创建同义重复标签。
  • CONTEXT.md 与 ADR 使用 single-context 还是 multi-context layout。
  • docs/agents/ 是否会进入公开文档、制品、搜索索引或部署包。

适合与不适合的场景#

适合:

  • 团队希望保留人工决策权,又想让 Agent 重复执行 specification、TDD、诊断与 review 纪律。
  • 中大型变更经常跨 session、跨开发者或跨 Agent,需要共享领域语言和可追溯决定。
  • 仓库已有自动测试、静态检查、Issue tracker 和代码规范,能给 Agent 快速、真实的反馈。
  • 团队愿意按项目实际情况修改 skill,而不是把上游文本当作不可更改的框架。

不太适合:

  • 一次性的小改动没有设计分支,也不值得建立 specification 与 tickets。
  • 期待“装完即可无人监督完成整个产品”,不愿参与 grilling、review 和关键决策。
  • 仓库没有可运行反馈,团队也不准备补测试、类型检查或验证方式;此时 TDD 与 diagnosis 只剩形式。
  • 内容仓库或公开文档站的目录与 setup 默认路径冲突,却没有先做发布边界审查。
  • 把 In Progress 或 Misc 全部设成团队默认,只因为安装器已经复制了文件。

建议先从哪几个开始#

不要一开始同时改变 37 种工作方式。普通代码仓库可以按下面顺序试用:

  1. 先阅读 setup-matt-pocock-skills 的预期修改;确认路径和项目规则后,再完成一次 repo setup。Blog 是前述例外,不应直接执行。
  2. 新功能先试 grill-with-docs,观察它是否真正减少术语歧义和遗漏的设计分支。
  3. bug 使用 diagnosing-bugs,新实现使用 tdd,把可运行反馈放到 prompt 之前。
  4. 在一个中等规模改动上试 code-review,比较 Standards 与 Spec 两条轴是否发现了不同问题。
  5. 只有当团队已经认可前述纪律,再引入 to-specto-ticketsimplement 的完整交付链。

如果不知道从哪个入口开始,显式调用 ask-matt;如果只是要重新解释一段没有听懂的说明,使用 wait-what。Beta 写作流程、implement-specretro 等 In Progress skills 可以最后再评估。

关联阅读#

参考资料#

本文共 6277 字,创建于 Aug 25, 2026

相关标签: Tools, Skills, AI, Agent, ByAI