“看看这张截图。”一篇来自GitHub Copilot的博文这样开头。画面不大,但图标密集,讲述的故事却让开发者心跳加速——这就是堆叠会话:同一个仓库里,一系列任务像瀑布一样逐层推进,每个会话都建立在上一个的基础之上。
事情要从十多年前说起。我有个私藏的老项目,一个个人用“生活仪表盘”,聚合日历、智能家居、任务管理。2014年搭的架子,这些年修修补补,但更新变得越来越扎手。依赖库已经老得让人脸红:React 15(2016年发布的古董)、Less做CSS预处理,还有那个时代的 react-bootstrap。说出来你可能不信,Bootstrap。
在AI还没这么能打的时候,想把这团乱麻理顺,我估算得花数周。我以前试过,然后放弃了。项目不大,但刚好卡在那个让你觉得“不值得费那劲”的体积上。
但现在我们有了AI。于是我打开GitHub Copilot应用,把仓库加进去,准备开干。在Plan模式下,我给出了一份详细的现代化任务说明书:“我要给这个前端项目做一次现代化改造。不少代码是十多年前写的,需要好好清理。我想用Tailwind或者原生CSS(帮我分析后做决定),彻底移除Less这些预处理器,整体提升可访问性和响应式表现。先专注样式,再逐步整理和合并React业务逻辑,可能还需要升级依赖。先定计划,然后我们再动手。”
我还特地加了四条原则:第一,没什么是不能动的,部分重写甚至推到重来都行;第二,链接在悬停和聚焦时要变色并加下划线;第三,输入框统一减小边框圆角,标签要更清爽;第四,容器需要合理的换行和最大宽度,别让一个输入框占满整块宽屏。
我把这份需求喂给Claude Opus 4.8,又让GPT-5.5做了一次“橡皮鸭”审查。来回推敲,终于敲定了一个满意的方案。深吸一口气,我点了“开始”,看着Copilot应用在我的项目里翻江倒海。
结果,它没成功。而且锅得我背。
记得我说“以前试过,然后放弃”吗?原来,那一次尝试并非毫无痕迹——我给仓库留下了一个没处理干净的尾巴。它到底是什么?且听下回分解。
热门跟贴