name: code-smell-detector description: 自动检测代码异味和反模式以识别重构机会 allowed-tools: [“Bash”, “Read”, “Write”, “Grep”, “Glob”, “Edit”]
代码异味检测器技能
自动检测代码异味、反模式和设计问题,这些迹象表明代码库中存在更深层次的问题。此技能识别重构机会并按影响程度进行优先级排序。
目的
实现系统化的代码异味检测,用于:
- 重构优先级排序
- 技术债务识别
- 代码质量改进
- 迁移准备
- 设计模式违规检测
能力
1. 长方法检测
- 识别超出行数阈值的方法
- 分析参数数量
- 检测高圈复杂度
- 建议提取候选
2. 大类识别
- 检测具有过多职责的类
- 识别上帝类
- 分析类内聚性
- 建议分解策略
3. 特性依恋分析
- 查找过度使用其他类数据的方法
- 识别功能错位
- 建议方法重定位
- 映射跨类依赖关系
4. 基本类型偏执检测
- 识别基本类型的过度使用
- 查找缺失的值对象
- 检测字符串类型代码
- 建议领域类型提取
5. 平行继承层次结构
- 检测镜像类层次结构
- 识别继承耦合
- 建议层次结构合并
- 映射继承关系
6. 霰弹式修改检测
- 识别需要多文件编辑的变更
- 检测分散的功能
- 映射变更传播模式
- 建议整合点
7. 上帝类识别
- 检测承担过多职责的类
- 分析职责分布
- 计算低内聚性指标
- 建议单一职责重构
工具集成
| 工具 | 目的 | 集成方法 |
|---|---|---|
| SonarQube | 代码异味检测 | MCP 服务器 / API |
| PMD | Java 异味检测 | CLI |
| IntelliJ IDEA | IDE 基础分析 | CLI / 导出 |
| Designite | 设计异味检测 | CLI |
| ast-grep | 基于模式的检测 | MCP 服务器 / CLI |
| ESLint | JavaScript 异味规则 | CLI |
输出模式
{
"analysisId": "string",
"timestamp": "ISO8601",
"target": {
"path": "string",
"filesAnalyzed": "number"
},
"smells": [
{
"type": "string",
"severity": "high|medium|low",
"file": "string",
"line": "number",
"element": "string",
"description": "string",
"metrics": {},
"refactoringSuggestion": "string",
"estimatedEffort": "string"
}
],
"summary": {
"totalSmells": "number",
"byType": {},
"bySeverity": {},
"hotspots": []
}
}
与迁移流程集成
- 代码重构: 主要异味识别
- 技术债务修复: 债务量化
- 遗留代码库评估: 质量评估
相关技能
静态代码分析器: 更广泛的质量分析重构助手: 异味修复死代码消除器: 未使用代码移除
相关代理
代码转换执行器: 执行重构技术债务审计员: 优先处理债务修复