跳到主内容
重构安全测试

代码重构 Prompt:让 AI 做安全的大规模重构

让 AI 重构代码经常改出新 bug?这条 prompt 强制 AI 先分析影响范围、生成回归测试、分步重构、每步验证,最后输出变更清单。适合大规模跨文件重构和接口签名变更。Claude Code / Cursor / Trae 适用。

用法

对需要重构的代码,配合下面的 prompt。适合跨文件重构、改接口签名、提取公共逻辑等场景。

Prompt

我需要重构以下代码,请按安全重构流程执行,不要跳步:

## 1. 影响分析(先做这个,不要改代码)
列出这次重构会影响的所有文件和函数:
- 直接影响:被改的文件 / 函数
- 间接影响:调用方 / 被调用方
- 测试影响:哪些测试需要更新

## 2. 测试基线(确保重构前测试通过)
- 跑一遍现有测试,确认全绿
- 如果没有测试,先帮我写覆盖当前行为的测试(不要写期望行为)
- 测试不过就停下,不要继续重构

## 3. 重构计划
把重构拆成 N 个小步骤,每步:
- 改什么(具体到文件 + 函数)
- 为什么这步是安全的
- 这步后测试应该仍然全绿

## 4. 分步执行
按计划逐步执行,每步完成后:
- 跑测试
- 如果测试失败,立即回滚这一步,告诉我原因
- 测试全绿才继续下一步

## 5. 清理
- 删除废弃的旧代码
- 更新相关注释和文档
- 跑完整测试套件最终确认

## 规则
- 不要一次性改超过 3 个文件
- 不要改变公共 API 的行为(签名可以加可选参数,不能删/改已有参数)
- 不要在重构时顺便修 bug(另开任务)
- 每一步都要可独立提交

---

需要重构的代码:
(粘贴代码或描述重构需求)

效果

不加 prompt 时 AI 经常一把梭——一次改 10 个文件,测试挂了不知道哪步出错。

加了这条 prompt 后 AI 被迫分步执行,每步验证,出问题能立即定位到具体步骤。大幅降低重构引入 bug 的概率。

分步执行长什么样

比如"把回调风格的 fetchUser(id, cb) 改成 Promise 风格",跨 8 个调用点。这条 prompt 会让 AI 这样走:

  1. 影响分析grep 出 8 处调用 + 3 个测试文件,列清单。
  2. 测试基线:先跑现有测试确认全绿;某调用点没测试,先补一个覆盖当前回调行为的测试。
  3. 计划:拆成"① 新增 Promise 版函数(保留旧版)→ ② 逐个迁移调用点 → ③ 删旧版"三步。
  4. 分步执行:每迁一个调用点跑一次测试;第 5 个调用点迁移后测试红了,立即回滚这一步并报告"该处依赖了回调的同步副作用",而不是硬改完 8 个再说。

关键在第 4 步的"红了就停、回滚、报告"——这是和"一把梭"最大的区别。一把梭改完 8 个文件测试挂了,你根本不知道是哪一处引入的。

何时用这条、何时用轻量版

  • 一段代码、不跨文件 → 用 安全重构 Prompt(更轻)
  • 跨文件、改签名、提取公共模块 → 用本条

为什么有效

  • 强制先做影响分析:大规模重构翻车几乎都不是因为改错,而是因为没改全——影响面清单是唯一的防线。
  • 要求先建测试基线:没有绿测基线,重构后的「通过」毫无意义,这是大规模重构 Playbook 里的第一步。
  • 分步执行 + 每步可验证:一次性大改会让 diff 无法 review,分步让每一步都能单独回滚。

进阶(自动化)

用 worktree 隔离重构分支,边改边跑主分支测试对照:

git worktree add ../refactor-branch -b refactor/auth
cd ../refactor-branch && pnpm test   # 确认基线绿
# 每完成一步:跑测试 + 单步 commit,便于二分
git commit -am "refactor(auth): step 3 — extract token service"

并行推进多个重构任务时,见 git worktree 并行 Agent 工作流

反例(AI 默认会写的烂版本)

默认输出:直接给一份「重构后」的完整文件,2000 行 diff,测试跑挂了也不知道是哪一步引入的。

加了 prompt 之后:先输出影响清单(12 个调用点、3 处测试、1 个导出符号),再给 5 步计划,每步一 commit、每步跑测试,第 3 步失败时能直接 revert 到 step 2。

延伸阅读

相关对比

Aider vs Claude Code:终端 AI 编程双雄怎么选

Aider vs Claude Code 2026 选型对比:开源 BYOK 多模型 vs Anthropic 订阅长任务 Agent,从编程能力、多模型支持、价格、Git 集成、国内可用性和适合人群判断,帮你选对终端 AI 编程工具。

Augment Code vs Cursor:企业 AI 编程怎么选?Context Engine vs AI IDE 对比

Augment Code vs Cursor 2026 选型对比:Context Engine 全仓索引的企业 AI 平台 vs SpaceX 收购的 AI IDE 天花板,从形态、Context 覆盖、长任务、价格、合规、中文支持和适合人群 8 个维度判断,帮你选对企业 AI 编程工具。

Claude Code vs Cline:CLI AI Agent 怎么选?2026 对比

Claude Code vs Cline 2026 选型对比:Anthropic 官方闭源 CLI Agent vs Apache-2.0 开源 VS Code 插件。从模型绑定、工作流、MCP 支持、价格、隐私和适合人群 6 个维度帮你选对 CLI AI 编程工具。

Claude Code vs Codex CLI:终端 AI Agent 双雄对比

Claude Code vs Codex CLI 2026 选型对比:Anthropic 与 OpenAI 两大官方终端 Agent 的模型、长任务、MCP 生态、Windows 支持、订阅打包价格和国内可用性全方位对比,帮你判断该用哪个终端 AI Agent,以及能不能两个一起用。

Claude Code vs Crush:Anthropic 官方 vs 多模型 TUI(2026 实测选型)

Claude Code vs Crush 2026 选型对比:Anthropic 官方 CLI Agent(Claude only + 长任务最稳 + MCP 一等公民)vs Charmbracelet 开源 TUI Agent(多模型 mid-session 切换 + LSP + FSL-1.1-MIT)。从模型、长任务、生态、价格、国内可用性帮你选对终端 AI 编程工具。

Claude Code vs Gemini CLI:终端 AI Agent 怎么选?(2026 选型指南)

Claude Code 和 Gemini CLI 都是终端原生的 AI 编码 Agent。一句话结论 + 决策树 + 价格 + 国内可用性对比:长任务与 CLAUDE.md 生态选前者,免费额度与接入门槛选后者。

相关评测