大家好,我是Zack。
先说一个场景:你让 AI 改项目,话说完了,它转头问你——这个项目是干嘛的?用的什么框架?文件都在哪?
你只好停下手里的事,花两分钟把项目从头介绍一遍。下次新开会话,同样的话再说一遍。
我以前就这么干,一个下午重复三四遍,纯纯的体力活。今天给你一个三行文件的办法,把这个重复劳动砍掉。我拿真实项目掐表测过:同样的活,不写说明 47 秒,写了说明 32 秒,而且改动质量差出一截。命令全部可抄。
先看我踩的坑
我造了个最小的待办应用做实验:三个文件,index.html 放页面结构,app.js 放全部逻辑,style.css 放样式,浏览器打开就能用。
第一轮,我直接下命令:「给这个项目加个删除已完成待办的功能,顺便美化一下样式」。
47 秒跑完,结果有两处不对劲。
第一处,它说「检查后发现项目里已经有了删除功能」——根本没有,是它自己刚加的,转头就把自己加的东西说成原本就有的。一个 299 行的小项目它都能把「谁做的」搞混,你的大项目它更记不住。
第二处,它把 style.css 全量重写,211 行从头到尾换了一遍。我只要美化,它把布局逻辑也动了。
这两个问题的根是同一个:它对这个项目一无所知,只能边猜边干。猜项目结构,猜你的意图,猜哪些不能碰。猜错的部分,就成了你要返工的部分。
换成的做法:一个三行的说明文件
动工前,在项目根目录放一个「项目说明.txt」。我的模板就四行:
这是一个纯前端待办清单应用,没有框架、没有构建工具,浏览器直接打开 index.html 就能用。
文件:index.html(页面结构)、app.js(全部逻辑:localStorage 存储 + 渲染)、style.css(样式)。
已完成:添加、勾选完成、删除已完成、深色模式。
注意:不要引入任何外部依赖,保持纯原生写法。
四行拆开看,每行堵一个猜错的口子:
第一行说清这东西是什么、怎么跑。不说这个,它可能给你上 npm、上构建工具,纯静态页面凭空多出一套 node_modules。
第二行是文件地图。不说这个,它要自己开文件一个个翻,你的项目越大它翻得越久。
第三行最值钱,写「已完成」。我第二轮的命令就是「按说明里的约定加完成进度统计」,它一看列表里没有这项,直接动手,不问一句废话。
第四行是红线区。「不要引入外部依赖」这句写上,它就不会好心帮你装个框架进来。
然后新开会话,第一句话别聊需求,就一句:
先读项目说明.txt,按里面的约定干活
第二轮实测:31.6 秒完成,比盲改快了 16 秒。更值的是质量——它只改了 app.js 里 6 行,统计条复用了页面上已有的元素,没碰 style.css。同样是「加个功能」,改动面从 211 行缩到 6 行,你看代码审的时间也跟着缩。
前后对比
| 项目 | 不写说明 | 写了说明 |
|---|---|---|
| 开工前 | AI 反问,你打字介绍 2 分钟 | 一句「先读项目说明.txt」 |
| 同一个活耗时 | 47.4 秒 | 31.6 秒 |
| 改动面 | style.css 全量重写 211 行 | app.js 改 6 行 |
| 状态混乱 | 把自己加的功能说成已有的 | 对照说明,不瞎猜 |
省的不只是这十几秒。真正省的是两样:一是每次新会话重复打字的沟通成本,二是审 AI 代码的时间——改动面小了,你确认起来快得多。
两条通用原则
第一,AI 猜的部分就是你要返工的部分。它不知道的就猜,猜错你就改。所以开工前把「它必定会问的」先写死:项目是什么、怎么跑、什么不能动。这个思路不限于编程,你让 AI 写文档、做表格,先给它一份背景说明,道理一样。
第二,说明文件是活的,随项目走。每完成一个功能,把「已完成」那行补上,把「下一步」写上。它就成了你和 AI 之间的共享记忆——你隔一个月回来,忘了做到哪,自己也先读它。
说点局限
一是小到只有一个文件的脚本,别折腾这个,直接说需求更快。
二是说明文件会过期。项目结构大改后忘了更新,AI 会被旧说明带偏——所以每次让它改完活,顺手让它核对一遍说明文件要不要更新,一句话的事。
三是它不替代你的判断。说明写得再全,改完的代码你还是要自己过一眼,这个环节省不得。
今晚就试:打开你最常改的项目,建个项目说明.txt,写满四行。下次让 AI 干活,先让它读这个文件,掐个表对比一下改动面。
你让 AI 改项目时,它问过什么让你无语的废话?评论区聊聊。