Skip to content

AI 怎么做大规模代码迁移:Codebase Migrate

解决 AI 面对大规模代码重构时“一次改太多、容易改崩、无法 Review”的问题:通过配合外部 CLI 工具建立自动化流水线,让 AI 能够精准划定影响范围、运行基于 AST 的代码转换,并按“每 25 个文件一批次”的节奏提交安全、可回退的 Pull Request。

为什么需要这个技能

代码库里有 300 个文件需要从 Jest 迁移到 Vitest。 如果你直接对 AI Agent 说:“把所有测试都迁移到 Vitest”,它大概率会一口气改掉几百个文件,然后你面临两个下场:

  1. 本地测试全线飘红,你也搞不清是哪里改错了。
  2. 你获得了一个拥有 5000 行 diff 的巨型 PR,没有人能 Review 这么大的改动。

代码库迁移不仅是写代码,更是工程管理。

codebase-migrate 技能提供的是一套工程流水线:定义精确的转换规则 计算爆炸半径 编写 codemod 分批次执行并提 PR CI 验证。

适用场景

  • 框架或库的升级(如 React 17 升级 19,Webpack 迁移 Vite)。
  • 全局 API 重命名或参数签名变更。
  • 全局状态管理或配置文件的重构。

核心工作流

  1. 精确定义与范围圈定:不要给模糊指令,明确要求把 A 转换成 B,并用 ripgrep 先找出一共有多少个目标。
  2. 引入结构化转换工具:尽量避免让 AI 用正则去生硬替换,而是指导它使用 ast-grepjscodeshift 等基于 AST(抽象语法树)的工具,保证语法层面的安全。
  3. 分批次 PR 策略:这是本技能最核心的价值。用 batch.list 控制每次只让 AI 修改 20-30 个文件,并结合第三方工具(如 Composio CLI)自动创建 PR 和关联工单,通过 CI 后再合入。
  4. 状态标记:维护 done.list,避免下一批次重复处理。

技术难点与避坑指南

  • 不要混用修改意图:永远不要在同一个分批 PR 中既修改 API 签名,顺手又让 AI 格式化了一下代码。这会导致 Review 完全失焦。
  • 随时可回退:分批的核心价值就是隔离故障。如果第 3 批在生产环境引发问题,只需 revert 这个小 PR,而不至于把整个迁移工程推倒重来。

获取与使用

此技能通过脚本形式沉淀了完整的迁移打法。你可以直接下载中文版 Skill 包,添加到你的工作流中,按文档里的步骤执行大规模替换。

下载 codebase-migrate 中文版 Skill ZIP

你可能还需要