Appearance
AI 怎么做大规模代码迁移:Codebase Migrate
解决 AI 面对大规模代码重构时“一次改太多、容易改崩、无法 Review”的问题:通过配合外部 CLI 工具建立自动化流水线,让 AI 能够精准划定影响范围、运行基于 AST 的代码转换,并按“每 25 个文件一批次”的节奏提交安全、可回退的 Pull Request。
为什么需要这个技能
代码库里有 300 个文件需要从 Jest 迁移到 Vitest。 如果你直接对 AI Agent 说:“把所有测试都迁移到 Vitest”,它大概率会一口气改掉几百个文件,然后你面临两个下场:
- 本地测试全线飘红,你也搞不清是哪里改错了。
- 你获得了一个拥有 5000 行 diff 的巨型 PR,没有人能 Review 这么大的改动。
代码库迁移不仅是写代码,更是工程管理。
codebase-migrate 技能提供的是一套工程流水线:定义精确的转换规则 计算爆炸半径 编写 codemod 分批次执行并提 PR CI 验证。
适用场景
- 框架或库的升级(如 React 17 升级 19,Webpack 迁移 Vite)。
- 全局 API 重命名或参数签名变更。
- 全局状态管理或配置文件的重构。
核心工作流
- 精确定义与范围圈定:不要给模糊指令,明确要求把
A转换成B,并用ripgrep先找出一共有多少个目标。 - 引入结构化转换工具:尽量避免让 AI 用正则去生硬替换,而是指导它使用
ast-grep、jscodeshift等基于 AST(抽象语法树)的工具,保证语法层面的安全。 - 分批次 PR 策略:这是本技能最核心的价值。用
batch.list控制每次只让 AI 修改 20-30 个文件,并结合第三方工具(如Composio CLI)自动创建 PR 和关联工单,通过 CI 后再合入。 - 状态标记:维护
done.list,避免下一批次重复处理。
技术难点与避坑指南
- 不要混用修改意图:永远不要在同一个分批 PR 中既修改 API 签名,顺手又让 AI 格式化了一下代码。这会导致 Review 完全失焦。
- 随时可回退:分批的核心价值就是隔离故障。如果第 3 批在生产环境引发问题,只需 revert 这个小 PR,而不至于把整个迁移工程推倒重来。
获取与使用
此技能通过脚本形式沉淀了完整的迁移打法。你可以直接下载中文版 Skill 包,添加到你的工作流中,按文档里的步骤执行大规模替换。
下载 codebase-migrate 中文版 Skill ZIP