让 AI 改代码不再翻车 — 一个 change-workflow 配置
前天那期「我们的 Claude Code 不一样」讲了 harness 配置,很多朋友追问能不能分享点具体的。
今天就拆其中一个文件:change-workflow —— 加上它,AI 改代码不再翻车:小改动不再大费周章想一圈,牵连一大片的改动也不再直接上手出 bug。
我第一版按「难度」分高中低三级,失败了,因为难度判断不准(改的文件多 ≠ 任务复杂)。后来改成两个维度:不确定性 × 风险,把改动分成简单和复杂两类。这一期讲我怎么一步步拆出来的,外加一个细节——为什么这个配置要中英文混着写。
前天我发了一期「我们的 Claude Code 不一样」,讲的是它的 harness 配置不同——就像来了一个非常天才的管培生,我先针对公司情况给他做了一套详细的入职培训。那期有几万播放,很多人追着问:能不能分享点具体的东西。
今天就分享其中一个文件。
rules 文件夹里的 change-workflow
进到 Claude 的配置文件夹,里面有个 rules 文件夹,存的都是「原则」——像一份行为指南,Claude Code 做事的时候会按这里面的一系列流程规范来执行。
我今天要分享的,是其中一个叫 change-workflow 的文件:当它改代码的时候,该用什么方式去思考、去执行。
最头疼的那件事
让 Claude Code 写代码,最头疼的是它对所有改动一个态度:
- 有时候一个很小的改动,比如改个前端、改句文案,它也大费周章做一整套思考才动手——效率很低;
- 有时候一个看着很小的功能改动,其实牵扯到很多模块、很多管线、很多后台数据,本来应该先调研再动手,它却直接上手——结果一堆 bug。
怎么解决?
第一版失败了:别按难度分级
我一开始是想,把改动按难度分成高、中、低三个层级,让它先判断,再走不同流程。
但用下来发现,分三级并不好。因为它判断不准任务的复杂度——比如按「改了多少文件」来估,可改的文件多,也不一定就是复杂任务。
所以经过一轮调研,我把难度分级从三级压成了「低 / 高」两种。而真正的拆法,是先做两个维度的思考。
两个维度:不确定性 × 风险
第一个维度,不确定性——动手之前,是不是已经有明确方案了?这个改动能不能用一句话描述清楚?要改的内容是不是足够清楚?
第二个维度,风险——如果改错了,代价有多大?要不要我反复测试?还是干脆直接上线,看看 OK 不 OK 就行?
用这两个维度一判断,改动就分成了简单改动和复杂改动两类。
- 简单改动 → 直接执行。
- 复杂改动 → 走四个阶段。
复杂改动的四个阶段
- 澄清——先拿到一个客观的验收标准:做到什么样,这件事才算做完。它会用澄清性的问题跟我沟通。
- 调研——搜技术方案,看看社区有没有现成的最佳实践,别人做过就借鉴,不重复造轮子。
- 策划——进策划模式,做方案对比、技术选型,列一份执行前的审查清单。
- 审核——让我完成审核之后,才真正动手。
执行完之后,还会按风险层级做不同级别的校验,专门有一个「挑刺」的环节,挑完再检验。再加上一道验收门:按另一个文档去做 git 的部署、确定要更新哪些记忆,全写清楚。哪些任务可以并行,它也会提前想好,去提效率。
一个细节:为什么中英文混着写
这个文件是中英文混着写的——中文写叙述、写判断逻辑,但技术词我全保留英文。
这不是装样子,是为了让指令更稳。因为 Claude 训练的时候,大量用的就是这些英文技术词,像 commit、push,全是用英文训练出来的;用这种「原配」的英文词,它对配置的理解会更稳定。
而中文做骨架,是因为我的中文表达比英文好——配置文件我能调得更快,也能更快判断它是不是既严谨又简洁,用足够简洁的话把配置讲清楚。当然,如果你的英文比中文好,整篇用英文写,执行的鲁棒性可能还会更高。
最后说句题外话。我免费花时间分享,也是想在更大的平台上交点朋友、把自己的经验传出去。有人留言说「治好咳嗽再来讲」——是中肯的建议,但朋友之间,大概会先关心一句难不难受吧。也有很多朋友会主动告诉我,把这些经验用到了哪、有了什么收获,那种时候我就觉得,每天一刀不剪录这十几分钟,时间没白费。所以我还会继续分享下去。
来源:EP0025_audio.mp3 · ASR 模型 gemini-2.5-pro(切段并发) · 约 7 分钟原片完整文字版
[00:00] 前天我做了一些视频 就是讲说我们的 Claude Code 其实是不一样的因为它的 harness 的配置是不同的 那就像一个非常天才的 一个管培生 来到公司里之后呢 我先对他进行了一个针对 公司情况的 一个详细的一个培训 那那期视频呢 也已经有几万的播放了 很多人在追问说 能不能分享点具体的东西 那今天我就来分享这其中关于 让 Claude Code 能够更高效的 去写代码的这样的
[00:25] 一个配置文件 那我们进入到 Claude 的文件夹之后呢 会看到这里面有一个 rules 的一个文件夹 那这里面存的都是 关于这个原则的部分 那它就像一个形式的一个指南 就是当 Claude Code 在做一些事情的时候 会按照这里面的原则 这里面的一个一系列的流程规范 去进行执行 那我在里面就有一个文件 就是今天要分享的 这个是 change-workflow 就是当它在改代码的时候 它需要用一个什么样的
[00:50] 方式进行思考 并且进行执行 那我们具体来看这个这个东西啊 那在让 Claude Code 写代码的时候 其实最头疼的一件事情是说 有时候是很小的一个改动 比如说一个前端或者是一个文案 它就大费周章的做了 一系列的思考对吧 然后才去改那效率很低 或者是说这个修改虽然是 一个小的 功能变动但它牵扯到了 很多的模块 很多的管线 以及很多的这个后台的数据
[01:15] 它反而应该先去做调研 再去做的时候 他没有他直接去做了 这样就会导致很多的 bug 出来 那怎么样去解决这个问题呢? 我其实一开始的时候我是想说 把这个工作按照难度分为了 三个层级 就是高中低三个层级 让它去做一定的判断 然后再执行不同的流程 但是执行下来发现是说 其实分为三级并不是 一个特别好的方式因为 它并不能够
[01:40] 很好的判断任务的复杂度 比如说按照它修改的文件数 它有可能修改的文件多 但它也不是复杂的任务对吧 那所以经过了一系列的 这个调研之后呢 我就把这样的一个任务的 难度分级变成了 低和高这样的两种 那我是怎么怎么去拆的呢 它其实是先做了两个维度的思考 第一个维度就是 这个不确定性 就是这件修改这个代码的编写 在动手之前是不是
[02:06] 已经有明确的方案了 那或者是说这个改动能不能 用一句话去描述清楚 以及它是不是非常清楚说 要改的这样的一个内容是什么 那这是不确定性的部分维度 那第二个维度是风险的维度 就是这个修改 如果是这个改错了 它的这个错误的代价有多大 会会不会需要我去反复的做测试 以及是说我干脆直接上线
[02:31] 看看它是不是 OK 就可以了 那通过这样的两个维度的判断呢 它就把这个改动分为了就是 简单改动和复杂改动这两类改动 那简单的改动呢 它就可以去直接执行 那复杂的改动的话 它要走四个阶段的过程 那这四个阶段的过程呢 就是首先它会先去进行一个澄清 去拿到一个客观的 一个验收的标准 就是做到什么样 这件事情就算做完了
[02:57] 它会用澄清性的问题 跟用户进行沟通 那第二个阶段就是调研 它会去搜技术解决方案 那社区是否已经有了 最佳实践了 就别人做过的 话我们可以去借鉴 而不是去重复的去造轮子 那第三个阶段就是进入到 这个策划的模式 去做一个方案的对比 去做这个技术的选型 以及执行前的一个审查的清单 那最后就 求用户去完成这个审核 之后才去动手
[03:23] 那执行完了之后还会 根据这个风险的层级 去做不同级别的这样的 一个教教验 那专门会去做做这样一个 挑刺的这个环节啊 那那挑完之后再去做做检验 包括这个验收门 就是说它会按照另外的 文档去做这个 git 的部署啊 包括需要更新哪些记忆 全部都在这里面去写清楚
[03:48] 那有哪些任务是可以并行的 它会提前进行思考 去增强这个效率 这个文件我会分享出来哈 那还有一个细节值得去 单独说一下 大家可以看到说 这个文件它是 一个中英文混着写的 这样的方式 就是中文去写这个叙述 写判断的逻辑 但是技术词我全部都是 保留的这样的英文的 这样这样的方式 这样其实不是不是装B啊 那是为了让这个指令是更稳定的
[04:15] 因为这个 Claude 在训练的时候 大量的去采用这些技术的单词呢 它都比如说像 commit 像 push 这些全部都是 用英文去训练的 所以这样的原配的英文词 在这里会让它的 这个这个配置的理解更稳定那 用中文做骨架的原因是说 首先就是我的 英文并没有我的中文表达好啊 那这个配置文件是
[04:40] 可以我能够更快的 去进行一个调整的 那同样中文的这样的一个 提示词其实我也能够 快速的判断说它是不是 做到了既严谨又简洁 就是用足够简洁的 描述去把这样的一个 配置去讲清楚了 那这也有利于我自己后续的 当然如果用户的英文是更好的话 那整篇文档用英文去写的
[05:05] 话它的鲁棒性 就是它的执行的 稳定性可能是会更高的 最后多余说一点 我最近是一直是北京的 天气不太好嘛 然后会一直有很多的这个粉尘 会有过敏的现象 所以一直在咳嗽 哎呀我就觉得有点怎么说呢 我之所以去花时间来分享 也是为了在更广的
[05:30] 这个平台上去 交到一些朋友嘛 去把自己的一些经验 去免费的分享出来 但是也看到很多 很多朋友在评论区留言说 不要咳嗽了治好了再来讲 对吧太影响了 这个…收看了 我觉得这样的一个 表达虽然是一个很中肯的建议啊 但是确实听起来不是很舒服啊 就是我们是一个朋友的方式对吧
[05:55] 如果你认可我的内容 你你觉得我的分享很有价值 那你想跟我去交这个朋友的话 那从朋友的 角度不应该来关心一下说 这个难受不难受啊对吧 到底是什么样的情况造成的 是用什么样的方式去 去处理一下就是 就会感觉到说 有些有些人是 值得我去花时间做分享去沟通的
[06:22] 但有些人真的就是 什么样的人都会有我觉得 包括还有私信来来骂人的 你能想象到就是说 讲的是什么玩意儿 就是…哎呀我就觉得 当然了也有很多的 这个用户的分享是 他们学到了很多 然后也会主动的跟我去讲说 因为把我的这些经验 应用到了哪些地方
[06:47] 他们获得了哪样的收获 这时候我是非常开心的 我觉得我的 这个时间没有白费对吧 就算是一刀不剪的 每天去录这样的十几分钟 也是花时间的呀对吧 这个时间干点别的什么不好对吧 但是正是因为有这些人在 我觉得我的分享有了价值 那我我觉得我还是 会继续分享下去的 那喜欢我的朋友们呢记得三连 然后在评论区 提出你想去听到的内容
[07:12] 那我接下来会持续的 给大家去做分享 我们下期再见拜拜