Agent Skills
返回列表
💻

Comby 结构化代码迁移

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/apply-structural-codemods-across-large-codebases-with-comby。

技能介绍

问题:正则替换容易误伤

大型代码库做迁移时,常见目标是把重复出现的代码模式统一改掉:函数签名、参数顺序、导入路径、日志格式、错误包装、测试脚手架。纯正则搜索替换看起来快,但会误伤字符串、注释、注释掉的代码和其他语言里的相似 token;遇到括号嵌套、引号、泛型或插值时,更容易断错边界。人工逐文件改又难以保证一致性,还容易漏掉新分支。

核心能力:用结构化匹配做 codemod

该技能围绕 Comby CLI 展开:把目标代码写成带 :[hole] 的匹配模板,再用替换模板输出新结构。它按 token 或语法边界识别占位符,能处理重复片段和局部上下文,因此代理执行迁移时比逐行正则更可控。实用流程通常是:先在小范围样本上跑通匹配,确认每个 hole 捕获的内容;再推广到仓库并按文件类型过滤;最后 review diff、跑测试和类型检查。

注意点

它适合模式稳定、边界清晰的重复改写,不适合无规律的业务逻辑重写。使用时仍需把 comby 接入环境,保留命令和模板版本,并对生成结果做静态检查;复杂语言语法可能需要调整模板或拆分迁移步骤。

使用场景

  • 维护大体量遗留仓库时,把散落各处的旧函数签名统一改为新的参数顺序
  • 代码库升级期,用模板把重复出现的日志格式和错误包装批量替换为新写法
  • 跨多个文件的 import 路径或包名需要批量改写时,用模板匹配代替逐文件手工修改
  • 多语言仓库做统一升级,需要在改动前先确认每个占位符捕获的内容是否正确

适合人员

  • 维护大体量遗留系统的后端工程师,需要把散落各处的重复调用统一改成新接口签名
  • 编写内部代码迁移脚本的平台工程师,希望用模板化 codemod 替代手写正则替换
  • 负责多语言仓库统一升级的迁移负责人,需要在改动前确认每次匹配捕获的范围
  • 用代理自动化重构的技术团队,希望把重复模式迁移变成可复现、可 review 的 diff