1 🛠️ Matt Pocock Agent Skills 深度解析指南
一句话定义:
mattpocock/skills是由 TypeScript 领域大师 Matt Pocock (Total TypeScript 作者) 基于数十年软件工程经验打造的 AI 编程 Agent 技能库。它的核心宗旨是 “Real Engineering, Not Vibe Coding(真正的软件工程,而非凭感觉编码)”,旨在解决 Agent 开发中最致命的四大失误:需求不准、话太啰嗦、代码不通、架构成泥。
1.1 📌 目录
- 1. 这个仓库是干嘛的?(核心价值与痛点解决)
- 2. 18 个技能库全景分类地图 (Skill Directory)
- 3. Matt Pocock 标准工程工作流 (The Engineering Workflow)
- 4. Matt Pocock 四大核心工程思想
- 5. 保存与使用指南
1.2 这个仓库是干嘛的?(核心价值与痛点解决)
Matt Pocock 认为,绝大多数 AI 编程工具(如 Claude Code, Codex, Cursor)在实际工程开发中会陷入以下 4 种常见失败模式,本仓库的 18 个 Skills 针对这四大痛点给出了精准的工程化解决方案:
| # | AI 编程常见故障 (Failure Modes) | Matt Pocock 的工程化解法 | 对应的核心 Skill |
|---|---|---|---|
| 1 | Agent 没做我想要的东西 ( misalignment 沟通对齐断层) | 通过苛刻、单步追问的**“面试官”对话 (Grilling)**,在动代码前彻底对齐意图。 | /grill-with-docs/grill-me |
| 2 | Agent 说话极度废话啰嗦 (缺少统一领域语言,Token 浪费) | 引入 DDD (领域驱动设计),建立统一术语表 CONTEXT.md 和架构决策记录 ADR。用精炼术语替代长篇废话。 | /domain-modeling |
| 3 | Agent 写的代码根本跑不通 (盲目写代码,无反馈闭环) | 引入严格的 TDD (红-绿 循环) 与只在“缝隙 (Seam)”上测试的纪律,提供代码运行反馈闭环。 | /tdd/diagnosing-bugs |
| 4 | 代码库迅速退化为“大泥球” (软件熵增加速,混乱难维护) | 关注代码设计,定期扫描代码库,将浅模块 (Shallow) 重构为深模块 (Deep),出具 HTML 架构报告。 | /improve-codebase-architecture/codebase-design |
1.3 18 个技能库全景分类地图 (Skill Directory)
本仓库将 Skills 按照**“谁来触发”**划分为两大类:
- User-invoked (用户显式触发):只能由用户在 Chat 中输入
/xxx触发,充当流程的编排者(Orchestrators)。 - Model-invoked (模型自动调用):既可用户触发,也可由 Agent 在需要时自动调用,代表工程纪律与最佳实践 (Disciplines)。
1.3.1 用户显式调用的技能 (User-Invoked Orchestrators - 9个)
| 技能指令 | 类型 | 核心作用与使用场景 |
|---|---|---|
/ask-matt | 编排路由 | 技能路由导航。当你不知道当前情况该用哪个 Skill 时调用它,它会为你推荐最佳工作流。 |
/setup-matt-pocock-skills | 初始化 | 环境初始化。配置当前项目的 issue tracker(GitHub/Linear/本地文件)、Triage 标签和文档目录。项目首次使用前运行一次。 |
/grill-with-docs | 需求对齐 | 文档化追问面试。对你的需求进行不间断追问,并在对话过程中实时更新 CONTEXT.md 词汇表和生成 ADR。 |
/to-spec | 规格合成 | 合成 PRD/Spec。无需面试,直接将当前对话和上下文合成为规范的规格书(含 User Stories、Testing Seams)。 |
/to-tickets | 任务拆解 | 拆解 Tracer-bullet 任务。将 Spec 拆解为垂直切片、带依赖网络(Blocked by)的 Tickets。 |
/implement | 实施驱动 | 任务实施。根据 Spec 或 Ticket 执行开发,驱动 /tdd 写测试并在提交前自动拉起 /code-review。 |
/triage | 状态流转 | Issue 状态机分发。按照预设的 triage 角色和标签流转处理任务 Issue。 |
/improve-codebase-architecture | 架构优化 | 代码库健康扫描。扫描代码库中的架构摩擦点,生成漂亮的 HTML 对比报告,并引导你挑选一项进行深层重构。 |
/wayfinder | 巨型规划 | 长线探路者。用于超大型、单个 Session 容纳不下的工作,在 Issue Tracker 上建立调查 Ticket 地图逐个击破。 |
1.3.2 模型自动调用的工程技能 (Model-Invoked Disciplines - 9个)
| 技能名称 (ID) | 核心作用与使用场景 |
|---|---|
domain-modeling | 领域建模与术语维护。主动挑战不精确的词汇,更新 CONTEXT.md 词汇表与 docs/adr/*.md 决策记录。 |
tdd | 测试驱动开发循环。遵循“先写失败测试(Red) -> 仅编写刚好能通过的代码(Green)”的红绿循环,严格在预设 Seam 上写测试。 |
diagnosing-bugs | 系统化缺陷排查。科学调试循环:复现 -> 最小化 -> 提出假设 -> 埋点工具验证 -> 修复 -> 回归测试。 |
codebase-design | 深模块设计语言。提供深度模块(Deep Module,小接口大功能)、消除浅模块(Shallow)的核心设计词汇与模式。 |
code-review | 双轴代码审查。启动两个平行子 Agent 分别审查:Standards (标准与 Fowler 坏味道) 与 Spec (需求符合度)。 |
prototype | 快速抛弃型原型。为回答设计疑问构建可运行的终端小应用或多视觉方案,探索确定后再回主线。 |
research | 后台高信任研究。作为后台 Agent 运行,针对权威一级资料(源码/文档)进行调查并生成带引用来源的 Markdown。 |
resolving-merge-conflicts | 解决 Git 冲突。逐块分析冲突 hunk,根据两边的原始意图进行精准合并,坚决不 --abort。 |
1.3.3 通用生产力技能 (Productivity Skills - 4个)
| 技能指令 | 核心作用与使用场景 |
|---|---|
/grill-me | 通用面试追问。非代码场景下的追问(grilling 逻辑背后的接口),对任何想法或设计进行压力测试。 |
/handoff | 对话交接与压缩。将当前 Session 压缩为干净的 Handoff 文档,以便交接给下一个 Agent 接着做。 |
/teach | 多会话互动教学。将当前目录作为有状态的教学工作区,跨多个 session 教授用户某个概念或技能。 |
/writing-great-skills | 技能编写指南。为开发和修改 Agent Skills 提供词汇表和标准化原则。 |
1.4 Matt Pocock 标准工程工作流 (The Engineering Workflow)
Matt Pocock 将软件工程的最佳实践编排成了一条高度解耦、顺畅衔接的流水线:
flowchart TD Init["/setup-matt-pocock-skills<br/>(初始化配置)"] --> Grill["/grill-with-docs<br/>(追问对齐 + 建立 CONTEXT.md)"] Grill --> Spec["/to-spec<br/>(合成 PRD/Spec 规格书)"] Spec --> Tickets["/to-tickets<br/>(拆解为带依赖关系的垂直切片 Tickets)"] Tickets --> Implement["/implement<br/>(领任务实施)"] subgraph 编码闭环 Implement --> TDD["/tdd (红-绿 循环)"] TDD --> Review["/code-review (双轴审查)"] end Review --> Commit["Git Commit (完成提交)"] style Grill fill:#ffe6cc,stroke:#d79b00,stroke-width:2px style Spec fill:#d5e8d4,stroke:#82b366,stroke-width:2px style TDD fill:#dae8fc,stroke:#6c8ebf,stroke-width:2px
1.5 Matt Pocock 四大核心工程思想
- Ubiquitous Language (通用语言 / 领域模型):
- 在开发前必须建立
CONTEXT.md。例如:“把课程章节在文件系统中建立实际目录”在这套体系里叫materialization cascade(物化级联)。统一术语后,Agent 节省大量 Token 且变量/函数命名高度一致。
- 在开发前必须建立
- Deep Modules vs Shallow Modules (深模块与浅模块):
- 提倡 Deep Module(简单小巧的接口背后隐藏大量复杂的内部实现)。拒绝编写大量的包装层浅模块(Shallow Modules)。
- Seams (测试缝隙):
- 测试只在预先与用户商量好的公共缝隙(Seams)上编写,绝不针对私有实现细节写测试,确保重构代码时测试不会碎掉。
- Tracer Bullets (追踪弹/垂直切片):
- 拆解 Task 时拒绝按层拆(如先写所有 DB 再写 API),必须切窄而完整的垂直切片,确保每完成一个切片都能独立验证。