Matt-Skills 深度解剖:45K Stars 的"工程师武器库",为什么比 Vibe Coding 更接近真实工程

"My agent skills that I use every day to do real engineering — not vibe coding." — Matt Pocock

目录
  1. 一、项目速览:从 .claude 目录到 45K Stars
  2. 二、Vibe Coding 的陷阱:为什么"凭感觉写代码"会失控
  3. 2.1 什么是 Vibe Coding
  4. 2.2 四个经典失败模式
  5. 三、技能全景图:21 个技能的分工
  6. 3.1 规划与设计(Planning & Design)
  7. 3.2 开发(Development)
  8. 3.3 工具与安全(Tooling & Safety)
  9. 3.4 通用效率(Productivity)
  10. 四、核心设计哲学:为什么"小"比"大"更好
  11. 4.1 与 GSD / BMAD / Spec-Kit 的对比
  12. 4.2 四大工程经典的当代映射
  13. 4.3 "Tracer Bullet" vs "Horizontal Slice"
  14. 五、实战工作流:从需求到发布的完整路径
  15. 六、生态与社区
  16. 6.1 安装与配置
  17. 6.2 自定义与 fork
  18. 6.3 相关项目
  19. 七、为什么这件事很重要
  20. 7.1 从"提示词工程"到"流程工程"
  21. 7.2 控制权的归属
  22. 7.3 对中文开发者的启示
  23. 八、局限与批评
  24. 8.1 学习曲线
  25. 8.2 Token 消耗
  26. 8.3 与 Cursor 的摩擦
  27. 九、结论:为什么 45K Stars 不是偶然
  28. 核心信息源
"My agent skills that I use every day to do real engineering — not vibe coding."
— Matt Pocock

2026 年 2 月 3 日,Matt Pocock 做了一件极其朴素的事:他把自己 .claude 目录里的技能文件直接推到了 GitHub 上,没有包装,没有营销,就一行 README。

三个月后,这个仓库冲到了 45,289 Stars,3,652 Forks,60,000+ 开发者订阅他的 newsletter。

这不是又一个"AI 提示词合集"。这是 TypeScript 领域最有影响力的教育者,把数十年软件工程经验——从《The Pragmatic Programmer》到 Domain-Driven Design,从 TDD 红绿重构到 John Ousterhout 的"深度模块"哲学——全部压缩成了 AI 能执行、工程师能掌控的结构化工作流。

本期硬核拆解,我们不只是介绍这个项目的功能。我们要回答一个更深层的问题:为什么 AI 编程 Agent 需要"工程纪律",以及 Matt Pocock 如何用 21 个 Skill 给 Agent 装上刹车和方向盘。


一、项目速览:从 .claude 目录到 45K Stars

属性数值
GitHub Stars45,289(截至 2026-04-30)
Forks3,652
Skills 数量21+(explainx.ai 上 24 个 approved)
协议MIT(完全可商用)
安装npx skills@latest add mattpocock/skills
配置/setup-matt-pocock-skills(一次性)
兼容Claude Code, Codex, Cursor, 任何支持 Skills 协议的 Agent
作者Matt Pocock(Total TypeScript 创始人,前 Vercel 工程师)
核心 slogan"For real engineers, not vibe coding"
关键洞察:这不是一套"提示词模板",而是一套工程工作流的编码。每个 Skill 对应一个真实的软件开发阶段——需求澄清、设计评审、任务拆分、TDD 实施、Bug 诊断、架构优化。


二、Vibe Coding 的陷阱:为什么"凭感觉写代码"会失控

在深入 Skill 之前,先理解 Matt Pocock 试图解决的核心问题。

2.1 什么是 Vibe Coding

Vibe Coding(氛围编程)是 2026 年 AI 编程圈的流行词,指的是:

"写一段注释,让 AI 猜代码;跑通就行,不看实现细节。"

短期效率极高。但三个月后:

  • 提交历史一团糟
  • 没有测试覆盖
  • 架构像意大利面条
  • 换个需求就要重写一半

2.2 四个经典失败模式

Matt Pocock 在 README 中明确列出了他用 Skills 解决的四个失败模式:

#### 失败模式 #1:AI 没做你想做的

"No-one knows exactly what they want" — David Thomas & Andrew Hunt

你和 AI 之间存在沟通鸿沟。你以为它理解了,等它写完了才发现完全不对。

解法:/grill-me — 让 AI 像资深产品经理一样追着你问 30、40、甚至 50 个问题,直到把设计决策树的每个分支都走通。

一个真实的 grilling session:Claude Code 在一段对话里问了 16 个问题,历时半小时。结果是——需求在编码前就被彻底澄清了。

#### 失败模式 #2:AI 太啰嗦

AI 被丢进项目后,要边做边猜术语。结果用 20 个词说清的事,它写了 200 个词。

解法:CONTEXT.md + ubiquitous language

在 /grill-with-docs 中,AI 会帮你建立一套领域统一语言:

  • BEFORE:"There's a problem when a lesson inside a section of a course is made 'real' (i.e. given a spot in the file system)"
  • AFTER:"There's a problem with the materialization cascade"
从 28 个词压缩到 6 个词。而且这套语言会被写入 CONTEXT.md,成为 AI 后续所有对话的词汇表。

副作用:变量名、函数名、文件名全部统一,代码库导航效率暴增,AI 思考消耗的 token 大幅减少。

#### 失败模式 #3:代码不工作

没有反馈循环的 AI 就像蒙眼开车。它不知道代码能不能跑,不知道性能有没有退化。

解法:/tdd + /diagnose

TDD 给 AI 一个红绿重构循环的约束:先写失败的测试,再写最小实现,最后重构。这个循环是 Agent 级别的——AI 不能跳过失败测试阶段。

Diagnose 则包装了最佳调试实践:复现 → 最小化 → 假设 → 仪器 → 修复 → 回归测试。

#### 失败模式 #4:我们建了一个大泥球

"Invest in the design of the system every day." — Kent Beck

Agent 能极速写代码,也能极速制造混乱。代码复杂度以史无前例的速度膨胀。

解法:/improve-codebase-architecture

它会定期扫描代码库,找出"浅模块"(小接口、深实现)的机会,把复杂度藏在简单的接口后面。这是 John Ousterhout《A Philosophy of Software Design》中"深度模块"理念的自动化实践。


三、技能全景图:21 个技能的分工

3.1 规划与设计(Planning & Design)

Skill作用触发时机
write-a-prd交互式访谈生成 PRD,探索代码库理解上下文,设计模块边界,提交为 GitHub issue新功能启动前
to-issues把 PRD 拆成可独立执行的 GitHub issues,用 tracer bullet vertical slicesPRD 完成后
grill-me结构化设计评审,追问每个决策分支,直到所有假设都被验证任何变更前
design-an-interfaceAPI 和接口设计,探索使用模式、人机工程学和约束设计公共接口时
request-refactor-plan重构前的结构化调查:范围、风险、步骤排序大规模重构前
#### write-a-prd 的精妙之处

传统 PRD 是填模板。Matt 的 PRD Skill 是发现式访谈:

1. 访谈用户获取详细描述 2. 探索代码库验证断言 3. 用 /grill-me relentless interview 4. 勾勒出需要的主要模块 5. 用模板写 PRD 并提交为 GitHub issue

关键:每个 PRD 的 user stories 都使用领域统一语言,确保 AI 后续实施时不会偏离。

#### to-issues 的 tracer bullet 哲学

Matt 明确要求:vertical slices,不是 horizontal slices。

WRONG (horizontal slice):
  任务1: 写所有测试
  任务2: 写所有实现
  任务3: 写所有集成

RIGHT (vertical slice / tracer bullet):
  任务1: 端到端走通一个用户场景(测试+实现+集成)
  任务2: 扩展第二个场景
  任务3: 扩展第三个场景

每个 issue 都是一根"tracer bullet"(曳光弹)——它贯穿所有技术层,快速验证"这条路径走得通"。未知未知(unknown unknowns)在第一个 slice 就被暴露出来。

3.2 开发(Development)

Skill作用触发时机
tdd红绿重构循环,按 vertical slice 实施,强制测试先行实现功能或修复 bug
triage-issue把模糊 issue 变成结构化 bug 报告:复现→根因→TDD 修复计划收到 bug 报告时
improve-codebase-architecture扫描代码库,找出浅模块→深模块的重构机会定期(建议每周一次)
migrate-to-shoehorn迁移工具技术迁移时
scaffold-exercises脚手架新项目启动时
#### tdd 的 vertical slice 纪律

这是 Matt 最强调的技能之一。核心原则:

"Tests should verify behavior through public interfaces, not implementation details. Code can change entirely; tests shouldn't."

Horizontal Slice 的陷阱:

  • 批量写的测试是在测试"想象中的行为",不是"实际的行为"
  • 测试的是"形状"(数据结构、函数签名)而不是用户可见的行为
  • 测试对真实变化不敏感:行为崩了它通过,行为正常它失败
Vertical Slice 的正确做法:
RED→GREEN: test1 → impl1  (第一个行为端到端走通)
RED→GREEN: test2 → impl2  (第二个行为)
RED→GREEN: test3 → impl3  (第三个行为)
...
REFACTOR: 提取重复、深化模块、应用 SOLID

checklist 每个循环:

  • [ ] 测试描述行为,不是实现
  • [ ] 测试只使用公共接口
  • [ ] 测试能在内部重构后存活
  • [ ] 代码是此测试的最小实现
  • [ ] 没有 speculative features
#### triage-issue 的诊断流程

1. Capture: 获取问题描述(只问一个问题:"What's the problem you're seeing?")
2. Explore: 用 Agent tool 深入调查代码库
   - 找出 bug 在哪里表现(入口点、UI、API 响应)
   - 追踪代码路径
   - 找到根因(不是症状)
   - 查看相关代码、测试、最近变更
3. Fix approach: 确定最小变更、影响模块、需验证的行为
4. TDD fix plan: 设计 RED-GREEN 循环列表
   - 每个循环一个 vertical slice
   - 测试验证行为,不是实现细节
   - 测试在激进重构后仍能存活

3.3 工具与安全(Tooling & Safety)

Skill作用
setup-pre-commit配置 Husky + lint-staged + Prettier,标准化代码质量
git-guardrails-claude-code拦截危险 git 操作(force push、reset --hard、rewrite shared branch history)
git-guardrails 的必要性:Claude Code 可以执行 git 操作。如果没有约束,它可能在共享分支上 rewrite history、force push、删除工作成果。这个 Skill 用 PreToolUse hooks 拦截危险命令,要求人类批准高风险操作——就像资深工程师对初级贡献者做的那样。

3.4 通用效率(Productivity)

Skill作用
caveman超压缩通信模式,砍掉填充词,减少 ~75% token 消耗
grill-with-docsgrilling session + 对照领域文档 + 更新 CONTEXT.md 和 ADR inline
write-a-skill引导创建新 Skill 的完整流程
ubiquitous-language建立和维护领域统一语言
obsidian-vault与 Obsidian 笔记集成(wikilinks、搜索、创建)

四、核心设计哲学:为什么"小"比"大"更好

4.1 与 GSD / BMAD / Spec-Kit 的对比

Matt Pocock 在 README 中明确划清了界限:

"Approaches like GSD, BMAD, and Spec-Kit try to help by owning the process. But while doing so, they take away your control and make bugs in the process hard to resolve."
维度GSD / BMAD / Spec-KitMatt Pocock Skills
控制粒度试图"拥有"整个流程保持工程师的控制权
技能大小大而全的框架小、可组合、易适配
适配成本高(需要接受整套方法论)低(按需安装单个 Skill)
故障恢复流程 bug 难以定位每个 Skill 独立,问题隔离
模型依赖通常绑定特定模型与任何模型兼容
工程哲学管理流程编码工程习惯
关键洞察:Matt 不是要替代工程师的决策权,而是把那些需要反复交代的"工程共识"封装成可重用的指令。AI 是工具,工程师是主角。

4.2 四大工程经典的当代映射

Matt 的 Skills 不是凭空创造的。它们直接映射到四本软件工程经典:

经典著作核心理念对应的 Skill
《The Pragmatic Programmer》"不要破窗"、小步快跑、反馈循环/tdd, /diagnose, /to-issues
《Domain-Driven Design》领域统一语言、边界上下文/grill-with-docs, CONTEXT.md, ubiquitous-language
《Extreme Programming Explained》每天投资系统设计/improve-codebase-architecture
《A Philosophy of Software Design》深度模块(小接口、深实现)/improve-codebase-architecture, /design-an-interface

4.3 "Tracer Bullet" vs "Horizontal Slice"

这是 Matt TDD Skill 中最重要的概念,值得单独强调。

Horizontal Slice(传统瀑布式):

Phase 1: 写所有测试(5个测试文件)
Phase 2: 写所有实现(5个模块)
Phase 3: 写所有集成代码

问题:

  • 你在 Phase 1 承诺的测试结构,到 Phase 2 发现根本不对
  • 测试是基于"想象"写的,不是基于"实际代码"写的
  • 你无法在 Phase 1 知道哪些行为是真正重要的
Vertical Slice / Tracer Bullet(Matt 的方式):
Slice 1: 用户登录端到端(1个测试 + 最小实现 + 集成)
Slice 2: 用户注册端到端(1个测试 + 最小实现 + 集成)
Slice 3: 密码重置端到端(1个测试 + 最小实现 + 集成)

优势:

  • 每个 slice 立即验证"这条路走得通"
  • 前面的 slice 告诉你后面的 slice 该怎么写
  • 未知未知在第一个 slice 就被暴露
  • 每个测试都是基于"刚写好的代码"写的,描述的是真实行为

五、实战工作流:从需求到发布的完整路径

一个典型的 Matt Skills 工作流:

阶段 1: 需求对齐
  └─ /grill-me "我要加一个用户认证功能"
     └─ Claude 问 30 个问题:JWT vs Session?密码策略?MFA?
     └─ 输出:共享理解

阶段 2: 文档化
  └─ /write-a-prd
     └─ 探索代码库现有认证逻辑
     └─ 用 grill-me 的结果写 PRD
     └─ 提交为 GitHub issue #42

阶段 3: 任务拆分
  └─ /to-issues #42
     └─ 拆成 5 个 vertical slices:
        - Issue #43: 登录端到端走通
        - Issue #44: 注册端到端走通
        - Issue #45: 密码重置
        - Issue #46: JWT token 刷新
        - Issue #47: 前端集成
     └─ 自动建立 blocking 关系

阶段 4: TDD 实施
  └─ /tdd "实现 Issue #43"
     └─ 确认接口设计
     └─ 确认测试优先级
     └─ RED: 写登录测试 → 失败
     └─ GREEN: 最小实现 → 通过
     └─ RED: 写密码校验测试 → 失败
     └─ GREEN: 最小实现 → 通过
     └─ REFACTOR: 提取公共逻辑

阶段 5: 架构维护
  └─ /improve-codebase-architecture
     └─ 发现 auth 模块和 user 模块耦合过紧
     └─ 建议:提取 AuthService,隐藏实现细节

阶段 6: 安全检查
  └─ git-guardrails 确保不会 force push main


六、生态与社区

6.1 安装与配置

# 安装技能集合
npx skills@latest add mattpocock/skills

# 配置项目(一次性)
/setup-matt-pocock-skills
# 会问你:
# - 用什么 issue tracker?(GitHub / Linear / local files)
# - triage 用什么 label 体系?
# - 文档存在哪里?

6.2 自定义与 fork

Skills 本质是 markdown 文件(SKILL.md),可以:

  • Fork 仓库并修改
  • 添加项目特定的 checklist
  • 加入公司内部模板
  • 调整流程匹配团队习惯

6.3 相关项目

项目关系特点
glebis/claude-skills社区 fork多 Agent TDD 架构(Orchestrator + Test Writer + Implementer + Refactorer)
AgentConn分析者指出 Matt 的 TDD 直接映射了 TypeScript 团队已有的工作流
Shelpuk-AI/agent-skill-tddTDD 扩展需求工作流 + TDD
duceum/Clean-Quality-Code-Skill质量代码质量代码和架构技能
Mathews-Tom/armory精选集生产级技能精选

七、为什么这件事很重要

7.1 从"提示词工程"到"流程工程"

AI 编程的进化路径:

1. Phase 1(2024):提示词工程——写更好的 prompt 让 AI 猜对 2. Phase 2(2025):Vibe Coding——让 AI 随便写,人工兜底 3. Phase 3(2026):流程工程——把工程纪律编码成 Agent 可执行的工作流

Matt Pocock 的 Skills 是 Phase 3 的代表。它们不追求"一键生成整个项目",而是回答一个更务实的问题:

"如果 AI 是没有记忆的初级开发者,我怎么用流程和约束让它产出生产级代码?"

7.2 控制权的归属

GSD / BMAD / Spec-Kit 的危险在于:它们试图用 AI 替代工程师的决策权。

Matt 的选择是相反的:

  • /grill-me 让 AI 问问题,但决策权在人类
  • /tdd 让 AI 执行测试循环,但测试设计由人类确认
  • /to-issues 让 AI 拆分任务,但优先级由人类调整
AI 是工具,工程师是主角。

7.3 对中文开发者的启示

这套 Skills 与编程语言无关(虽然 Matt 是 TypeScript 大佬,但 Skills 适用于任何语言)。对于中国开发者,特别有价值的是:

1. ubiquitous-language:中英文混合项目尤其需要统一语言 2. CONTEXT.md + ADR:把"为什么这样设计"写成文档,解决"交接时没人知道原因"的痛点 3. triage state machine:国内很多团队 issue 管理混乱,这个流程可以直接套用


八、局限与批评

8.1 学习曲线

Matt 自己承认:"这些技能需要工程经验才能用好。"

  • 如果你不知道什么是 TDD,/tdd 对你只是一个神秘咒语
  • 如果你没读过《A Philosophy of Software Design》,"深度模块"对你只是 jargon
  • 如果你不用 GitHub Issues,/to-issues 的价值大打折扣
这不是"零基础 AI 编程"工具,这是"有经验的工程师把经验编码给 AI"的工具。

8.2 Token 消耗

/grill-me 的一场 session 可能问 30-50 个问题,消耗大量 token。Matt 的解法是 /caveman(压缩通信),但总体成本仍高于"随便写个 prompt"。

8.3 与 Cursor 的摩擦

有开发者报告:在 Cursor 中使用 Agent Skills 时,常遇到权限配置问题——to-prd 需要 GitHub API 鉴权,/triage 需要 issue tracker 配置。"装完就能用"的愿景需要一定的 DevOps 基础。


九、结论:为什么 45K Stars 不是偶然

Matt Pocock Skills 的爆发不是因为这个项目"包装得好"。恰恰相反——它是反包装的。

  • 没有精美的 landing page
  • 没有复杂的产品矩阵
  • 就是 .claude 目录里的 markdown 文件
  • 一行 README:"My agent skills that I use every day to do real engineering — not vibe coding."
45K Stars 证明了一件事:开发者渴望的不是更聪明的 AI,而是更有纪律的 AI 工作流程。

当大多数人还在"让 AI 随便写"的时候,Matt 提供了一种替代方案:把工程经典(TDD、DDD、深度模块、反馈循环)编码成 AI 可执行、人类可掌控的流程。

最终结论:

1. Vibe Coding 适合原型,Matt Skills 适合生产 2. 小技能比大框架更有生命力(可组合、易适配、故障隔离) 3. 控制权在工程师手里,不在 AI 手里 4. 这不是提示词工程,是流程工程 5. 21 个 Skills 的本质:把"经验"变成"代码"

如果你已经在用 Claude Code、Codex 或 Cursor,但感觉 AI "会写代码,但不太会做工程"——这套 Skills 就是答案。

"AI 是工具,工程师是主角。Skills 不是让你把控制权交给 AI,而是让你用更好的方式指挥 AI。"

核心信息源

  • GitHub 仓库: https://github.com/mattpocock/skills
  • Matt Pocock Newsletter: ~60,000 开发者订阅
  • Tosea.ai 完整指南: https://tosea.ai/blog/matt-pocock-skills-claude-code-guide
  • PyShine 结构化工作流解析: https://pyshine.com/MattPocock-Skills-AI-Agent-Workflows/
  • 01MVP 中文完整指南: https://www.01mvp.com/docs/skills/series/mattpocock-skills
  • 掘金 23K Stars 报道: https://juejin.cn/post/7633240840346271795
  • AI Hero 5 Skills 深度解析: https://www.aihero.dev/5-agent-skills-i-use-every-day
  • GitCode 拒绝 Vibe Coding: https://blog.gitcode.com/aac807bd2e79a97df120a58a14f2b657.html
  • Implicator 45K Stars 报道: https://www.implicator.ai/matt-pocock-skills-repo-jumps-past-45k-stars-with-reusable-ai-instructions/
  • ExplainX Skill 目录: https://explainx.ai/mattpocock
  • AI Red Team 全流程工作坊: https://www.ai-redteam.com/insights/full-walkthrough-workflow-for-ai-coding-from-planning-to-production-matt-pocock/
  • 掘金 Agent 时代分析: https://juejin.cn/post/7633640076660768808
#记忆 #小凯 #MattSkills #AI编程 #ClaudeCode #工程实践 #TDD #深度研究

👍 1

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens