| name | metago-refactor-suggest |
| description | 重构建议技能。检测代码异味(Code Smell)、量化技术债务、识别重构机会,生成含优先级和影响范围的重构方案。遵循行为保持变换原则,确保重构不改变外部行为。输出含前后对比的重构报告。 |
| version | 1.0.0 |
| author | MetaGO |
| category | 科技开发 |
| platforms | ["cursor","claude-code","codex","trae","codebuddy","qoder","zcode","workbuddy","qclaw","ima"] |
| trigger | ["帮我重构代码","检测代码异味","技术债务评估","代码优化建议","重构方案生成"] |
重构建议(metago-refactor-suggest)
描述
检测代码异味、量化技术债务、识别重构机会,生成含优先级和影响范围的重构方案。遵循行为保持变换(Behavior Preservation)原则,确保重构不改变外部行为。
触发条件
- 用户请求重构、代码优化、技术债务评估时激活
- 代码审查发现可维护性问题时联动触发
- 定期技术债务盘点
- 与
metago-code-review-deep 协同:审查发现 Minor/Major 问题时触发
核心流程
1. 代码异味检测
- 长函数(行数 > 阈值,默认 50 行)
- 大类(字段/方法数 > 阈值)
- 重复代码(相似度 > 80%)
- 过长参数列表(参数数 > 5)
- 发散式修改(一个类因多个原因修改)
- 霰弹式修改(一个修改引发多处变更)
- 特性依恋(方法调用大量其他类)
- 数据泥团(多个变量总是一起出现)
2. 复杂度量分析
- 圈复杂度(Cyclomatic Complexity)> 10 需重构
- 认知复杂度(Cognitive Complexity)> 15 需重构
- 继承深度(DIT)> 4 需关注
- 耦合度(CBO)> 10 需优化
3. 依赖分析
- 循环依赖检测
- 不稳定依赖(依赖不稳定模块)
- 上层依赖下层(违反依赖倒置)
- 过度耦合(一个模块依赖过多模块)
4. 重构机会识别
| 异味类型 | 推荐重构手法 | 优先级 | 影响范围 |
|---|
| 长函数 | Extract Method | 高 | 函数级 |
| 重复代码 | Extract Method / Pull Up Method | 高 | 类级 |
| 大类 | Extract Class | 中 | 模块级 |
| 过长参数 | Introduce Parameter Object | 低 | 函数级 |
| 特性依恋 | Move Method | 中 | 类级 |
| 循环依赖 | Extract Class / Move Method | 高 | 模块级 |
5. 重构方案生成
- 重构步骤分解(原子化操作)
- 行为保持验证(测试覆盖要求)
- 风险评估(回归概率)
- 前后对比(复杂度、可读性、可维护性指标)
输出格式
【重构建议报告】
## 1. 技术债务概览
债务等级:🟢 低 / 🟡 中 / 🔴 高
债务量化:预估 N 人天
热点模块:path/to/module
## 2. 代码异味清单
| # | 异味 | 位置 | 严重度 | 推荐手法 |
|---|------|------|--------|----------|
| 1 | 长函数(85行) | file.ext:L10-L95 | 🟡 Major | Extract Method |
| 2 | 重复代码(92%相似) | file.ext:L20 / file2.ext:L15 | 🔴 Critical | Extract Method |
| ... | ... | ... | ... | ... |
## 3. 重构方案(按优先级排序)
### 方案1:[重构名称]
- 目标:...
- 步骤:
1. ...
2. ...
3. ...
- 测试要求:覆盖率达 X%
- 风险评估:低 / 中 / 高
- 预期收益:复杂度 15→8,可读性 +40%
### 方案2:...
## 4. 重构前后对比
| 指标 | 重构前 | 重构后 | 改善 |
|------|--------|--------|------|
| 圈复杂度 | 18 | 6 | -67% |
| 重复率 | 35% | 5% | -86% |
| 可维护性 | 4.2/10 | 8.1/10 | +93% |
## 5. 建议执行顺序
1. 先补充测试(当前覆盖率 X%)
2. 执行方案1(低风险高收益)
3. 执行方案2(...)
与其他技能的协同
- 与
metago-code-review-deep 协同:审查发现可维护性问题时触发重构建议
- 与
metago-coupling-optimize 协同:耦生度量化指导重构优先级
- 与
metago-critique 协同:重构方案需通过批判性分析
- 与
metago-decision-lock 协同:重构执行前需通过决策锁校验
- 与
metago-fact-check 协同:验证重构前后行为一致性