
Uncle Bob(Robert C. Martin)在 AI Coding 方法论里的判断是:
别再靠长 Prompt 训话,要把软件工程纪律拆成『确定性工具 + 短命窄职责 Agent + 人守边界』。
Uncle Bob 总结出下面的质量保障流水线(5 角色 Gauntlet),以及架构治理与小步实现两步展开到可落地的颗粒度。
这条流水线叫 Gauntlet(关卡)。每个 Agent 只干一件事,干完就退出,下一个 Agent 从干净上下文接手,用 git worktree 或交接文件传物,不累积『思维残渣』。单 Agent 5 分钟出活但质量存疑;过完整条线约 1 小时,换人类半天,且质量更高。

角色 | 输入 | 核心动作 | 输出与门槛 |
|---|---|---|---|
Specifier(规格器) | 人话需求文档 | 转成 Gherkin(Given-When-Then)验收场景 + 人工视角 QA 步骤文档 | 可执行验收规格;歧义不猜,反问人 |
Coder(编码者) | Gherkin 规格 | 写单测 + 实现,跑通验收场景(红→绿) | 行为正确的代码,不要求同时整洁 |
Cleaner(清洁工) | Coder 产物 | 跑 CRAP 分析、拆高圈复杂度函数、DRY 审查、补测 | CRAP/复杂度达标(Agent 阈值放宽到 6–8,人 4 以下)的干净代码 |
Hardener(加固器) | Cleaner 产物 | 变异测试:把 > 改 >=、+ 改 -、布尔取反,看测试能否抓到;存活变异体=测试无效 | 零存活变异体、高覆盖的『真测试』套件 |
QA Agent | Specifier 的 QA 文档 | 转成 UI 驱动可执行脚本,端到端跑真实操作 | 确定性通过/失败报告,交人审阅 |
Agent 擅长战术编码,不擅长战略分层。Uncle Bob 本人仍亲自划模块,再让 Agent 在约束里改:

Agent 极爱写华丽计划,但实现一碰细节就崩——和 70 年代瀑布 SDD 一样失效。做法:
不想上 5 Agent 流水线,先跑这个:
Given-When-Then(含异常和边界情况)make gauntlet 串起:typecheck + lint + 单测 + 覆盖率门禁 + 变异测试 + 复杂度上限
质量流水线是『让 Agent 自己证明自己对』,
架构治理是『人定边界、Agent 在边界里小步冲』。
两者合起来,就是把《Clean Code》的纪律从『人背规则』重构成『系统强制规则』。