AI 命令行

用 Claude Code 走完一个真实的修 bug 流程

AI 编码助手不是"让它自动修",而是一套有纪律的工作流。本文用一个真实项目的 bug 为例,演示从复现、加测试、定点修改到回归验证的完整闭环,并给出每一步该下发的指令。

作者:巧匠团队·8 分钟阅读·更新于 2026-09-06

先定纪律:改之前必须能复现

最常见的翻车是:用户提交一个问题,Claude 直接改了代码、给了个"看起来对"的修法,但根本没人验证过 bug 是否真实存在。修正心态的关键是让工具先"复现"——用最小输入把问题稳定逼出来,再谈修。

下发指令时把上下文和期望清晰说出来:什么环境、出错时的输入、期望 vs 实际。比自己心里想明白更重要。如果项目有测试框架,第一步就该让 Claude 写一个会失败的测试来捕获当前 bug 行为。

好提示的开头三要素:复现步骤、你在上面观察到的具体现象、系统的预期行为。三样越具体,越不会诞生"自动脑补"的错误修复。

# 给 Claude Code 的任务指令模板
"复现 [BUG]: 在当前分支先写一个测试,用输入 X 验证它如今失败(红)。
只写测试,不要改业务代码,跑通这个失败用例后再回来告诉我。"
# 期望看到:一个红测(失败测试) 作为 bug 的铁证

用测试"钉死"期望行为,再让代码通过它

有了复现的失败测试,修复就变成"让它变绿"的过程,而不是自由发挥。要求 Claude 在执行修复前先声明它的诊断(根因假设),再动手,这样你能在它做任何修改之前判断方向靠不靠谱。

然后下指令:只改必要的最小范围,逐个让相关测试通过,期间不引入新依赖、不改无关文件。跑完整测试套件确认全绿,保留这个失败测试作为回归护栏,防止未来重蹈覆辙。

关键点在于:让工具先给出诊断说明,而不是直接输出 patch。这样能区分"猜对了再修"和"盲目改到测试过为止"两种质量。

# 追加指令
"先给出根因诊断(一两句),再最小改动让测试变绿。
不要加新依赖,不要碰无关文件;完成后跑 npm test 回贴结果。"

改完不等于完成:代码审查与回归跑一遍

让 Claude 修改后,自己至少做一遍"逆向审查":改的是什么?改动是否超出问题描述?有没有副作用与边界没覆盖?推荐用 Claude Code 的 git diff 能力让工具自述变更,再人工复核。

把完整测试套件与类型检查作为硬门槛(pnpm test、pnpm typecheck),如果项目有 linter,一并跑。随后要求 Claude 补充"为什么这样改"的变更说明,记录决策而非只堆代码。

一个真实流程里,审查往往能发现 AI 少处理的并发、判空或历史兼容问题,所以这一步不可省。

claude "用 git diff 列出本次所有改动,逐条解释作用;
跑 pnpm test 与 pnpm typecheck 并报告是否通过;
补充一行变更说明(为什么这样改,而非改了什么)。"

常见翻车:工具"改对"了却把别处改坏

AI 修复最危险的不是没修好,而是顺带把相邻逻辑改得面目全非。这往往源于指令范围不明确——只说"修这个 bug",工具就自行扩大改动面。

应对办法是把范围写死:允许修改的文件/函数给白名单,禁止改动的东西明确列出,目标是"最小 diff"。审查 diff 时若出现无关重构、被删的可疑逻辑、格式大改,就要回退并限定范围重来。

同时保留它删改前的基线。用 version control 的 diff/back 或直接把原始文件复制成 .bak,让工具改坏了也有退路。

diff --git a/src/payment.js b/src/payment.js
# 审查要点:仅应为修复目标而变;出现无关重构/删除立即回退
# 隐藏改坏的退路
cp src/payment.js src/payment.js.bak   # 改动前手动留底

沉淀:把这次的根因和解法写进注释与文档

修复闭环的最后一步不是提交,而是沉淀。让 Claude 在代码的关键位置加一句"为什么这里要这样"的注释(说明坑,而非复述代码),并在项目 docs 或 issue 里记录根因、触发条件、解决方式。

这一步的价值在于:下次有人或 AI 再遇到相似问题时,能直接读到历史决策,而不是重新踩同样的坑。它把一次临时修复转化为可复用知识,也是区分"救火"和"治理"的分水岭。

若修复涉及公共约定(如参数校验、边界处理),建议顺手更新 CONTRIBUTING 或 README 的对应小节,让规范与代码一致演进。

// 修复痕记实例(注释里写"为什么",而非复述做了什么)
// 此前 dateStr 允许为空导致 endDate 非法,parse 前必须判空
// 根因见 docs/bugfix/2026-09-outdated-enddate.md
claude "在这个修复处加注释说明 出发原因,并把根因记录到 docs 对应文件。"

官方参考来源

下方为命令对应的官方权威文档,供你核对最新用法与深入查阅。