name: codemod-executor description: 执行基于AST的自动化代码转换,用于大规模重构和迁移 allowed-tools: [“Bash”, “Read”, “Write”, “Grep”, “Glob”, “Edit”]
Codemod Executor 技能
使用基于AST的工具执行自动化代码转换,用于大规模重构、框架迁移和语言版本升级。
目的
为以下场景启用自动化代码转换:
- 框架迁移(React, Angular, Vue)
- 语言版本升级
- API弃用处理
- 模式标准化
- 大规模重构
能力
1. 基于AST的转换
- 将源代码解析为AST
- 应用转换规则
- 生成修改后的源代码
- 保持代码风格
2. 模式匹配与替换
- 定义源模式
- 指定目标模式
- 处理边缘情况
- 支持通配符和捕获
3. 多文件转换
- 应用于整个代码库
- 处理导入更新
- 协调跨文件更改
- 管理副作用
4. 预演预览
- 在应用前预览更改
- 生成差异报告
- 评估影响范围
- 识别有风险的转换
5. 回滚支持
- 创建转换检查点
- 支持选择性回滚
- 跟踪已应用的Codemod
- 维护变更历史
6. 自定义Codemod创建
- 定义新的转换规则
- 隔离测试Codemod
- 记录转换逻辑
- 跨团队共享
工具集成
| 工具 | 语言 | 集成方法 |
|---|---|---|
| jscodeshift | JavaScript/TypeScript | CLI |
| ts-morph | TypeScript | 库 |
| Rector | PHP | CLI |
| Scalafix | Scala | CLI |
| OpenRewrite | Java | CLI / Maven |
| Bowler | Python | CLI |
| ast-grep | 多语言 | CLI / MCP |
| gofmt -r | Go | CLI |
输出模式
{
"executionId": "string",
"timestamp": "ISO8601",
"codemod": {
"name": "string",
"version": "string",
"description": "string"
},
"results": {
"filesProcessed": "number",
"filesModified": "number",
"filesSkipped": "number",
"transformations": "number"
},
"changes": [
{
"file": "string",
"transformations": [
{
"type": "string",
"line": "number",
"before": "string",
"after": "string"
}
]
}
],
"errors": [],
"warnings": []
}
与迁移流程集成
- 代码重构: 大规模重构
- 框架升级: 框架迁移
- 语言版本迁移: 语法升级
- 代码翻译: 语言转换辅助
相关技能
refactoring-assistant: 建议转换static-code-analyzer: 转换前分析
相关代理
code-transformation-executor: 编排Codemodframework-upgrade-specialist: 框架特定的Codemod