AI写代码天天返工?23万星的开源项目给出答案
| 最后更新 | 2026-09-18 |
|---|---|
| 来源 | 5elsu9kt.nektrack.com |
| 分类标签 | 头条采集 |
说个我自己这段时间的感受。
用AI写代码,返工最多的情况都差不多:需求我说得挺清楚,它做得也挺快,结果出来一看,根本不是我要的那个东西。
我翻过自己的返工记录,多数时候跟模型聪不聪明关系不大。是我和它之间少了一套干活的规矩,需求没问透,写完也没验。
Matt Pocock的做法很直接,他把自己每天在用的那套规矩整理出来开源了。
仓库叫 mattpocock/skills。
这个仓库现在23.8万Star,被装了1800多万次,是目前安装量最高的一套技能集。
第一性原理:AI缺的不是智商,是规矩
大多数人的思路是:AI写得不准,是因为模型不够强。于是换更强的模型,花更多的钱。
Matt反着来。
他问了一个问题:如果AI已经足够聪明,为什么还会犯错?
答案很简单——你给它的需求是模糊的,它执行的路径是没有约束的。
就像让一个顶级工程师干活,你不给他写需求文档,不给他Code Review,只说"帮我做个功能"。他能做好,但返工率会很高。
Matt的做法是把"规矩"写成文件,让AI每次干活都照着读一遍。
这叫Skill。
Skill到底是什么
一个Skill就是一个文件夹,里面放一份说明文档。
文档告诉AI:某一类活,要按什么流程干。
用的时候敲个 /tdd 这样的命令,把它喊出来。或者让AI自己判断该不该用。
它跟 CLAUDE.md 那种每次都加载的项目说明不一样。Skill只在被触发的那次会话里加载,平时不占上下文。
这背后有个杠杆思维:找到能放大10倍的支点。这个支点是"可重复执行的规矩"。
你写一次Skill,下次AI照做。你不用每次都重新解释。
四组Skill,覆盖完整工作流
仓库里有五十来个Skill,真正日常高频用的就二十多个。我按干活的顺序分成四组。
第一组:动手之前,先把需求问清楚
这是最火的两个Skill:/grill-me 和 /grill-with-docs。
它们干的事就一件——让AI反过来盘问你。
注意,是AI问你,不是你问它。它会把你需求里没想清楚的岔路一个一个问出来,一次只问一个,一直问到每条岔路都有答案为止。
我实际用下来,经常被它问住。很多想当然的地方,都是被这么问出来的。
/grill-with-docs 多干一件事:盘问过程中,它会把项目里的术语整理进一个叫 CONTEXT.md 的文件,把那些不好撤销的技术决策写成 ADR 文档存下来。
CONTEXT.md 的价值很大。没有它的时候,同样的问题你得跟AI这么解释:"课程里某个章节下的课时,被变成真实文件的时候出了点问题"。有了它,一句话就够了:"materialization cascade 出了个问题"。
意思没变,话短了很多。而且这个词一旦定下来,AI后面写代码也会照着用,变量名、文件名自然是同一套叫法,不用每次都重新掰扯。
第二组:写代码时,测试和排错有规矩
/tdd——测试驱动开发。
先写一个注定失败的测试,再写刚好够它通过的实现,一次只切一小片。它专门防一种很常见的假TDD:先把所有测试写完,再写所有实现。那样测的全是你想象出来的形状,不是真实行为。
/diagnosing-bugs——排查bug用的。
它的规矩很硬:必须先造出一条能稳定复现问题的命令,并且真的跑过一次,才允许进入猜原因的阶段。跑不出来就不许猜。
这条规矩我觉得直接抄进团队的bug模板里都不过分。
/code-review——提交前的检查。
一边看代码有没有遵守项目自己定的规范,一边看它是不是真的实现了当初的需求,两边分开跑,谁也不干扰谁。
第三组:管住代码库,别越写越乱
AI写代码快,代码变乱也快。
/improve-codebase-architecture 会扫一遍整个仓库,找出那些值得收拾的模块,生成一份 HTML 报告摆在你面前,你挑一个想改的,它会针对这个候选继续跟你讨论怎么改。
Matt建议隔几天就跑一次。它只负责把候选找出来给你看,不会自作主张动手重构。
这背后用的是"深模块、浅模块"那套经典理论。浅模块的接口和实现一样复杂,基本就是个传话的,这种就是它要揪出来的对象。
第四组:把一个完整需求串成流程
前面这些Skill都是单个的,下面这几个负责把流程串起来。
一个需求从讨论到提交,中间这几步它们各管一段:
/to-spec:聊得差不多了,直接把当前对话整理成一份规格说明。它不会再追问你,只把已经聊过的东西收拢成文档。
/to-tickets:把规格拆成一张张工单,每张都标清楚谁阻塞谁,先干什么后干什么。
/implement:照着规格或工单开始干活,中间自动走 /tdd 的节奏,提交之前再过一遍 /code-review。
/triage:issue一多就需要分诊,它按一套状态机把issue一个个过一遍。
/handoff:会话聊得太长、AI开始变迟钝的时候,把当前进度压成一份交接文档,开一个新会话接着干。
/prototype:遇到那种说不清、必须亲眼看到的问题,先做个一次性的原型看看,看完就扔。
为什么是现在
这个仓库我翻完以后,印象最深的一点是:里面其实没有什么新东西。
盘问需求、测试先行、统一语言、ADR、原型验证——全是软件工程里讲了二三十年的老规矩。
这个开源项目做的事,说白了就是把老规矩写成AI能照着执行的文件。
这些做法单拎出来都不新鲜。不过我还是挺认这个方向。
我现在用AI写代码,会不会写早就不成问题了。真正头疼的是它写得太快,快到以前那些老问题全被放大了。
需求没说清、代码越堆越乱,代价都比以前大不少。这种时候,反而是这些老规矩管用。
什么情况下值得用
说几个我觉得对得上号的场景。
接新需求的时候。需求越模糊,grill系列的价值越大。我自己体会是,盘问那半小时看着烦,但比起写完再返工,还是划算得多。
Bug复现不出来的时候。与其盯着代码猜,不如让 /diagnosing-bugs 逼着我们先把复现命令造出来。很多查了好几天没结果的bug,回头看都是这一步被跳过去了。
老项目越改越乱的时候。隔几天跑一次
/improve-codebase-architecture,让它把值得收拾的地方列出来,我们挑着改。
还有不写代码的事。/grill-me 不看代码也能用,写方案、做决策、想产品点子,让它盘你一轮,比自己闷头想要扎实。
什么时候用不上
就想快速糊个demo、写个一次性脚本,那这套东西对你就是负担。直接让AI写就完了。
Matt在README里也写得很明白:这些skill是他拿来做真实工程的,vibe coding用不上这套。
我的建议
别一次全装。挑一两个最对症的先试。
我自己是从 /grill-with-docs 开始的,它是这套东西的入口。用顺手了再往下加。
这套东西不挑模型。README里写明了 work with any model,装的时候可以选装到哪个工具上,Codex也好、其他支持Agent Skills规范的客户端也好,都能用。
最后一句
AI不会因为你换更强的模型就变得靠谱。它只会因为你给了更清晰的规矩而变得靠谱。
把老规矩写成文件,让AI照着执行。这是我能想到的最朴素的智慧。
本文属个人实战分享,不构成投资建议。市场有风险,决策需谨慎。
作者:K哥聊AI,深圳35加,AI工具重度用户,专注免费AI工具教程与实战,拒绝割韭菜。