AI 写代码这件事,现在最大的问题不是它写不出来,而是它写完之后,没人能判断到底能不能用。密歇根大学一门叫「Applied Agentic Software Engineering」的课程,把这套流程拆成了五个技能,核心思路有点反常识:让 AI 干活,但绝不让它当裁判。

先给遗留代码建台账,而不是直接改

第一个技能叫 /peanuts,处理的是最头疼的场景——遗留代码。做法是自底向上,给每一级目录建立 README 台账和摘要,而不是让 AI 一上来就通读整个仓库然后开始幻觉。

关键在于,AI 生成 README 之后,只能标记为 needs-human-review,永远不能自己标成 approved。技能文档里写得很直白:「AI 不是裁判。」人工评审这道门禁,用来吸收叶子层级大约 50% 的错误率。

设计阶段绝对不许写代码

第二个技能 /elephant 坚持「先长设计后长代码」。它把设计过程做成一场高强度技术面试,强制 AI 去挑战用户的盲点,还专门设了一道反谄媚防线。

配套的 /goldfish 更极端:彻底隔离会话上下文,用全新的、零共享上下文的评审者并行盲审设计文档,只检验文档本身是否自洽。设计文档因此成为唯一事实源。

这套组合的逻辑是,设计阶段如果被 AI 的客气话糊弄过去,后面写多少代码都是白费。

代码漂移必须被强制暴露

到了实现环节,/egm-implement 用门禁脚本和文件围栏机制卡住每一次改动。任何没有记录在案的修改,一律视为设计漂移,必须强制记录,不能悄悄溜过去。

这里的 IMPLEMENT.md 被定义成崩溃恢复协议:每个文件、每个决定、每条漂移都要实时记录,而不是事后补。事后补的记录,等于没有记录。

最后一个技能 /mean-review 负责评审,走的是对抗性框架加确定性脚本。它授权评审者尖锐批判,专门拦截代码注水。文档里那句话说得挺狠:一个客气地说「看起来不错!」的 AI 评审者,恰恰是 slop 大规模堆积的方式。

五个技能串起来是一条流水线

把五个技能连起来看,逻辑很清晰:

  • /peanuts 治理遗留代码,人工门禁兜底
  • /elephant 强制设计先行,反谄媚
  • /goldfish 零上下文盲审设计文档
  • /egm-implement 门禁脚本防漂移
  • /mean-review 对抗性评审拦注水

整套体系展示的,是工业级 Agent 编程需要的工程纪律。它没有把 AI 当成一个可以托付判断力的角色,而是把它放在一个被反复校验、被强制记录、被另一个 AI 挑刺的位置上。

这套方法论来自 meng shao 的拆解,原文约 3398 字,阅读时间 14 分钟,标签涵盖 AI 编程、AI Agent、提示工程与 Agent 编排。