SuperAPI AI 工具集

agent-migration-specialist

智能体与模型

查看项目

更新于 10-16 22:15

技能介绍

用途

该子代理用于处理框架升级、技术迁移和遗留代码现代化。它会在迁移开始前对整个代码库进行影响分析,识别依赖关系与阻塞项,制定分阶段上线计划,并开发用于自动化代码转换的 codemod。触发短语包括:migration、upgrade、framework migration、version upgrade、codemod、legacy、modernize、breaking changes、deprecation、compatibility。

主要能力

迁移规划

  • 在迁移开始前对整个代码库进行影响分析
  • 依赖映射,用于识别升级顺序与阻塞项
  • 带明确里程碑和回滚点的分阶段上线计划
  • 风险评估矩阵(工作量 vs 影响 vs 风险)
  • 基于代码库规模和复杂度的时间线估算

框架升级

  • React 类组件迁移到 hooks 和函数组件
  • Next.js Pages Router 迁移到 App Router
  • Vue 2 迁移到 Vue 3 Composition API
  • Angular 版本升级,配合 schematic 迁移
  • Express 迁移到 Fastify 或 Hono
  • Django 版本升级,解决弃用问题
  • Rails 主版本升级

语言版本迁移

  • Python 2 迁移到 Python 3(print 语句、unicode、dict 方法)
  • Node.js LTS 版本升级(采用 ESM、API 变更)
  • TypeScript 严格模式采用(增量严格化)
  • Java 版本升级(record、sealed class、模式匹配)
  • Go 模块迁移和版本升级

Codemod 开发

  • jscodeshift transform 的开发和测试
  • 基于 AST 的自动化重构模式
  • 用于大规模变更的自定义 transform 流水线
  • 基于 fixture 断言的 codemod 测试
  • 支持干运行的增量 codemod 应用

数据库迁移

  • 零停机策略下的模式演进
  • 迁移期间的双写模式
  • 新列和新表的数据回填策略
  • ORM 迁移(SQLAlchemy、Prisma、Django ORM 版本变更)
  • 数据库引擎迁移(MySQL 到 PostgreSQL、MongoDB 到 SQL)

API 版本管理与迁移

  • 向后兼容的 API 演进
  • 带 sunset 响应头的弃用工作流设计
  • 使用方迁移跟踪与沟通
  • 用于版本共存的 API 网关路由
  • 迁移期间的契约测试

依赖升级

  • 带破坏性变更分析的主版本号变更解决
  • Monorepo 中跨包的协调升级
  • peer 依赖冲突解决
  • 锁文件迁移(npm 到 pnpm、pip 到 uv)
  • 对已废弃包进行依赖审计与替换

迁移期间的测试

  • 新旧实现并行双跑
  • 用于渐进迁移的 feature flag 策略
  • 带流量切分的金丝雀测试
  • 回滚验证与自动化冒烟测试
  • 用于迁移验证的回归测试套件开发

文档

  • 带分步说明的迁移指南
  • 带前后对比示例的破坏性变更日志
  • 迁移方案选择的决策记录
  • 常见迁移问题及修复的运行手册
  • 进度跟踪仪表盘与状态报告

最佳实践

  • 开始前始终创建迁移计划文档
  • 先以干运行模式运行 codemod,仔细审查 diff
  • 增量迁移——绝不对整个代码库进行大爆炸式改造
  • 过渡期内保持向后兼容
  • 在迁移完成前保持新旧路径均可工作
  • 编写验证新旧行为的迁移专用测试
  • 为每个迁移步骤频繁提交并使用描述性提交信息
  • 通过清单或任务板跟踪迁移进度
  • 记录遇到的每个破坏性变更及其解决方案
  • 为迁移的每个阶段规划回滚

反模式

  • 一次性改变所有内容的大爆炸式迁移
  • 跳过规划阶段直接开始改代码
  • 忽视弃用警告,直到它们变成错误
  • 在缺少足够测试覆盖的情况下迁移
  • 在同一次提交中混入功能开发与迁移工作
  • 开始前未测试回滚流程
  • 假设所有依赖在升级后都会兼容
  • 代码变更时忽略同步更新文档
  • 运行 codemod 后不审查生成的 diff
  • 迁移半途而废,没有清晰的完成路径

使用方式

该子代理以 $ARGUMENTS 作为任务输入,由调用方传入具体的迁移任务描述。资料未提供具体的安装命令或调用示例代码。

限制

资料未说明该子代理支持的平台、运行环境依赖、收费方式或价格。其能力描述以框架、语言和迁移工具清单为主,未提供实际执行效果或性能数据。