夜雨聆风学习资料网

ARTICLE · 1160065

【Skill 拆解·AI 编程】密歇根把 AI 编程纪律做成五个 Skill

【Skill 拆解·AI 编程】密歇根把 AI 编程纪律做成五个 Skill

把一个跑了八年的老系统交给 AI 接手,头两周的体验通常是好的:需求说完,代码就出来了。第三、四周开始变味——设计文档还停在第一版,代码已经沿着三次"顺手改一下"走了岔路;让 AI 评审 AI 的 diff,得到的永远是"整体合理,建议补充测试"。真正缺的不是更聪明的模型,而是一道 AI 自己绕不过去的关卡。密歇根大学 EECS 498「Applied Agentic Software Engineering」课把这道关卡做成了五个可以直接装进 Agent 的 Skill。值得装,但要想清楚:它约束的第一对象是人,不是模型。

五个 Skill,一条流水线

这套 Skill 实现的是 Dave Rensin 提出的 Elephant-Goldfish 模型。他在 2026 年 4 月的文章里把方法写成了一份规格说明,核心只有一句:当模型包揽大部分代码,人能为之负责的东西就不再是代码,而是设计——设计判断必须先于代码落进文档。Elephant 指陪你长谈、记得所有争论的长会话;Goldfish 指零记忆的新会话,它只知道纸面上写了什么。一份设计文档好不好,标准只有一个:拿给三条全新的金鱼,它们能不能只靠文档就理解、挑刺并动手实现。

五个 Skill 按流水线衔接。/peanuts 处理存量代码库:自底向上给每个目录写 README,每层写完都停在"待人审"状态,进度记在 PEANUTS.md 账本里,AI 永远不能自己把状态改成通过。/elephant 开一场全程禁码的设计对话——你想让它"顺手写个小示例"都不行——它内置一条反谄媚开关,模型一开始附和就要求重置成批评者姿态,最后产出四节结构的设计文档。/goldfish 把文档同时发给三个零上下文的新会话,分别做理解测试、批评评审和可实现性检查,意见没收敛到措辞级别就改文档重跑;文档头部的 human_review_gate 字段只有人能改。/egm-implement 拿着过了门的文档写码,围栏是文件级的:文档没列出的文件一个不碰,现实和文档对不上就停下来记一笔,绝不悄悄吸收。/mean-review 最后做对抗性评审,四类容易被人眼放过的坏味道由脚本强制扫描,它只出意见清单,不改一行代码。

段与段之间的交接都由人手动触发,没有一个 Skill 会自动调用下一个——空隙就是留给人做决定的位置。

▲ 图 1:五个 Skill 串成一条流水线:读旧码、写设计、新鲜评审、围栏实现、对抗评审,每次交接都盖一枚人工图章。

它碰什么:纯文档加三个只读脚本

拆开安装包,写入面比看上去还小。五个 Skill 的本体就是五份 Markdown,合计约 70KB;代码只有三个 Python 脚本,合计 1129 行,全部用标准库。唯一一处外部调用是 peanuts 的账本脚本执行 git ls-files 列文件,不在 git 仓库里就退回普通目录遍历。三个脚本都没有网络请求;账本脚本只写 PEANUTS.md,另外两个纯只读。运行要求是 git 加 Python 3.9 以上;/goldfish 需要你的 Agent 工具能开出全新上下文的子代理,/mean-review 依赖 git(以及可选的 gh)拿 diff。

▲ 图 2:GitHub 上的 egm/skills 目录:五个文件夹各装一个 Skill,SKILL.md 加模板、参考、脚本和触发测试。

▲ 图 3:peanuts 账本脚本里唯一的外部调用是 git ls-files,失败就退回目录遍历;三个脚本共 1129 行,全部标准库。

两件事要在装之前知道。其一,这个课程仓库没有声明 License:自己用、公司内部用没有问题,再分发就要谨慎。其二,/peanuts 会往范围内每个目录写 README.md,已有的同名文件会被覆盖,官方文档的建议是在一次性分支上先跑一遍。

和你已经在用的比

多数人手里的"纪律"是建议性的:AGENTS.md 里写一句"先设计后编码",或者在模型的 plan mode 里勾一个选项。模型状态好的时候这些都生效,赶工的时候它们只是提示词里的愿望。EGM 的区别在于把规则做成了状态机:/goldfish 的 readiness 和 human_review_gate 是账本文件里的字段,/egm-implement 开工前先查这两个字段,没过门就拒绝动手。规则从"希望模型遵守"变成"流程走不下去",这是质变。

生态里更常见的是单点纪律 Skill。同一份 skills.sh 快照里,mattpocock 的 tdd 装机 105.9 万,superpowers 的 test-driven-development 装机 24.6 万——都是"把一件事的规矩写清楚"。EGM 五件套罕见的地方是覆盖全链路:从读旧代码、写设计、验证设计、实现到评审一条线贯通,而且每个 Skill 附带十二条触发测试,一半该触发、一半是故意凑近的陷阱,用来验证描述写得准不准。

▲ 图 4:装下五个 Skill 的上下文代价:目录层五个描述合计约 900 token 常驻,正文每个 3000–3900 token 按需加载,参考文件再按引用取用。

常驻成本也说得清:Skill 分三层加载,目录层每个约 175 token、五个合计约 900;正文每个 3000 到 3900 token,只在模型主动调取时进入请求;参考文件按引用再取。比起把一整本规矩常驻在 AGENTS.md 里,这是更省的工程化形态。

值得带走的想法

这套东西真正的杠杆不在"让 AI 更能干",而在把流程约束写成可审计的规则。门禁是文件里 AI 改不了的字段,账本是每一步留痕的四本 Markdown;出了问题,翻账本就能定位是哪一步、谁拍的板。即便不装这五个 Skill,"AI 不当自己的裁判"和"每个交接点都要有只有人能改的状态位"这两条,搬进任何团队的工作流都成立。

▲ 图 5:钉住流程的不是更聪明的模型:一边是人拍板的图章,一边是留痕的账本。

判定:install

让 AI 长期接手存量代码库的工程师、想把设计纪律固化进团队流程的技术负责人,值得装。改动只有几行的一次性任务,或者不愿意花二三十分钟跟模型把设计聊透的人,不用装。第一步照官方建议来:建一个一次性 git 仓库,丢几个真实文件进去,跑 /elephant 设计一个小特性,再跑 /goldfish 看三个陌生评审会挑出什么——二十分钟就能体会到"新鲜上下文"四个字的分量。

参考:GitHub eecs498-aase/materials(commit 795b99ce);Dave Rensin《Elephants, Goldfish and the New Golden Age of Software Engineering》2026-04;skills.sh API 2026-10-12 快照;邵猛 X 帖 2026-10-11(AIHOT 转录)。

相关学习资料