AI 工程实践

2026-07-22

2
0
0

这不是一篇教你“用 AI 写代码”的文章,而是一篇教你“用 AI 做工程”的文章。

如果你最近在关注 AI 编程,你可能听说过一个叫 mattpocock/skills 的 GitHub 项目。截至本文撰写时,它已经收获了 18.1 万 Stars1.5 万 Forks

作者 Matt Pocock 在 README 里写了一段很有意思的开场白:

“My agent skills that I use every day to do real engineering – not vibe coding.”

“Vibe coding”是个流行词,大意是“跟着感觉写代码”——想到哪写到哪,AI 生成什么就用什么。而 Matt 要做的恰恰相反:用 AI 做真正的软件工程

今天这篇文章,我就带你拆解这套技能体系的核心流程与必装技能,帮助你从 0 到 1 开发一个新项目时,不再“跟着感觉走”。

为什么要有一套标准流程?

Matt 在 README 中直言,他建立这套技能体系,是因为看到了 AI 编程中的四个典型失败模式

第一,沟通错位。 你以为 AI 理解你了,结果它产出的东西完全不是你想的那样。Matt 引用了《程序员修炼之道》中的一句话:“没有人确切地知道自己想要什么”。在 AI 时代,这个问题被放大了——你与 Agent 之间存在天然的“沟通鸿沟”。

第二,AI 过于啰嗦。 AI 被丢进一个项目,被迫边做边猜项目里的“黑话”,结果用了 20 个词才能说清楚 1 个词就能表达的概念。

第三,代码不工作。 当反馈循环缺失时,AI 就像蒙着眼睛写代码——它不知道代码跑起来到底什么样。

第四,代码变成“大泥球”。 AI 极大地加速了编码速度,同时也加速了软件熵——代码库以空前的速度变得复杂、难以修改。

这四个问题,几乎每一个用 AI 写过代码的人都深有体会。而 Matt 的这套技能体系,正是针对这四个问题逐一给出了工程化的解决方案。

从 0 到 1 的五步流程

这套流程的核心是:先磨平沟通代沟,再做规范拆解,随后用测试驱动开发,最后定期重构架构。具体分为五个阶段:

第一步:项目初始化(Run Once)

在全新项目的根目录下,先运行配置命令:

text

/setup-matt-pocock-skills

这个命令会做三件事:

  • 问你要用哪个 Issue Tracker(GitHub Issues、Linear 或本地 Markdown 文件)

  • 问你工单分类用什么标签

  • 问你生成的文档(Spec、CONTEXT.md、ADR 等)存放在哪里

只需运行一次,后续所有技能都基于这个配置工作。

第二步:梳理想想与建立领域语言

千万不要一上来就让 AI 写代码。先用 /grill-with-docs 做一个“拷问式对话”。

这个 Skill 会像一位极度挑剔的架构师,对你的想法穷追猛打:边界情况是什么?跨时区怎么处理?没有网络时怎么办?——直到所有逻辑漏洞和分支决策被彻底穷尽。

更关键的是,在追问过程中,它会自动生成并更新两样东西:

  • CONTEXT.md:项目的专属词汇表/领域模型

  • ADR(架构决策记录):记录为什么做某个决策

为什么这很重要?Matt 举了一个生动的例子:

  • 之前:“当一个课程章节中的某节课被‘实现’(即在文件系统中被赋予一个位置)时,会出现一个问题”

  • 之后:“materialization cascade 存在问题”

一个精准的术语,省去了每次对话都要重新解释的麻烦。这套“统一语言(Ubiquitous Language)”让变量、函数、文件命名保持一致,代码库更易于导航,AI 也能节省大量 Token

Matt 说这可能是整个仓库里最酷的技术——“试试看,你就知道了”。

第三步:需求规范化与任务拆解

当想法被彻底问清楚后,就该将其转化为可执行的工程任务了。这一步分两个 Skill:

/to-spec:无需重新“面试”AI,它会自动将之前在 /grill-with-docs 中讨论的所有结论,提炼成一份规范的 Specification(技术规格书) ,并发布到你配置的 Issue 系统中。

/to-tickets:将大块的 Spec 拆解为多个示踪弹(Tracer-bullet)任务——每个 Ticket 都清晰标记依赖关系和阻塞节点。

示踪弹是个军事术语,指“打出去能看到弹道轨迹的第一发子弹”。在软件开发中,它意味着:先打通一条贯穿整个系统的“最小可行路径” ,再在此基础上逐步扩展。这种方式避免了“一次性让 AI 写几百行代码然后崩溃”的窘境。

第四步:测试驱动的编码实现

拿到拆解好的 Ticket 后,进入正式的编码阶段:

text

/implement #1

这个命令会触发两个自动流程:

tdd(模型自动调用):AI 会遵循 Red-Green-Refactor(红-绿-重构) 循环——先写一个必然失败的测试用例(Red),再写刚好让测试通过的最少代码(Green),最后重构代码使其干净整洁(Refactor)。

code-review(模型自动调用):在代码提交前,并行启动两个子 Agent,分别检查“代码规范”和“是否忠实实现了 Spec 需求”。

这套反馈循环让 AI 不再是“蒙眼写代码”,而是每一步都能看到代码实际运行的效果。

第五步:架构维护与重构

随着功能越加越多,代码库会逐渐变成“大泥潭(Ball of Mud)”。Matt 引用了 Kent Beck 的话:“每天都要投资于系统设计”。

/improve-codebase-architecture 就是这个问题的解药。它会:

  • 扫描全局代码,评估模块深度与耦合度

  • 生成一份直观的 HTML 架构质量报告

  • 针对你选中的薄弱环节,引导你进行专项重构

Matt 的建议是:每开发 3-5 个新功能后运行一次

必装技能清单

基于上述流程,以下是你必须安装的核心技能组合:

阶段

Skill

触发方式

核心作用

0. 初始化

/setup-matt-pocock-skills

用户手动

配置 Issue Tracker 与文档目录

1. 梳理想法

/grill-with-docs

用户手动

追问边缘情况,生成 CONTEXT.md 与 ADR

2. 明确方案

/to-spec/to-tickets

用户手动

生成 Spec 文档与可执行的 Ticket 队列

3. 编码开发

/implement

用户手动

联动 tddcode-review,产出高质量代码

4. 演进重构

/improve-codebase-architecture

用户手动

扫描架构问题,防止代码恶化

完整的安装命令:

bash

npx skills@latest add mattpocock/skills
# 选择技能时,务必勾选 /setup-matt-pocock-skills
# 然后在 Agent 中运行 /setup-matt-pocock-skills

总结

Matt Pocock 这套技能体系的本质,是把软件工程的基本原则——领域驱动设计、测试驱动开发、架构重构、代码审查——封装成了可重复执行的 AI 命令

它不是在教你“如何让 AI 帮你写代码”,而是在教你“如何让 AI 像一位资深工程师一样工作”。

如果你正打算从 0 开发一个新项目,不妨试试这套流程:

/setup-matt-pocock-skills/grill-with-docs/to-spec + /to-tickets/implement/improve-codebase-architecture

这套组合拳,能让你和 AI 之间的沟通成本降到最低,同时让代码质量始终在线。

评论