重复代码检测Skill

Skill

Sky-Cube a1ed809 2.1 KB Updated

File contents

重复代码检测Skill

适用场景

代码质量度量环节,检测项目内重复代码块,统计重复率,按类型给出抽取公共方法/模块或保留的处置建议。

执行步骤

  1. 选工具:优先运行现有工具(jscpd、SonarQube duplication、PMD CPD);无工具时人工比对(同文件相邻重复、跨文件相似结构逐段比对)。
  2. 应用阈值(默认值,可按项目调整)筛选重复块。
  3. 输出重复块清单:双位置证据、行数、相似度。
  4. 按重复类型给处置建议,并统计重复率。

阈值与判定(默认)

规模 判定
<10 行且仅 1 处重复 可接受,不处理
10-50 行或 2-3 处重复 建议抽取公共方法/基类
>50 行或 >3 处重复 必须抽取公共模块/工具类/共享库
仅注释、字符串、生成代码相似 不计入重复,标记忽略

处置建议(按重复类型)

  • 抽取公共方法:功能完全一致的代码块,抽到工具类/基类,调用方替换。
  • 模板方法/策略模式:结构相似、局部步骤不同的代码块。
  • 抽公共模块:跨服务/跨仓库重复,抽共享库或 SDK 统一维护。
  • 保留不处理:重复内容为配置、协议生成代码、遗留代码冻结区,注明理由。

规范要点

  • 每处重复必须给出双位置证据:文件路径 + 行号 + 重复行数,禁止「感觉这段代码哪见过」式结论。
  • 相似度判定必须注明口径:工具名 + 参数,或人工比对的比对标准。
  • 与全局规范一致:重复逻辑必须抽取公共方法,禁止复制粘贴式开发。
  • 建议抽取时必须说明:目标落点(哪个工具类/基类)+ 调用方替换范围。

输出模板

## 重复代码检测报告
| # | 重复块描述 | 位置1(文件:行) | 位置2(文件:行) | 行数 | 相似度 | 处置建议 |
## 重复率统计(重复行数 / 总行数,工具与参数)
## 忽略清单(注释/生成代码,附理由)

自检清单

  • 每处重复有双位置证据
  • 阈值与相似度口径已说明
  • 每处重复有处置建议(含「不处理」的理由)
  • 重复率已统计

Sky-Cube/fullflow-dev-agent/tree/main/.claude/skills/duplicate-code-detection commit a1ed809145

Frequently asked questions

npx skillmds@latest add sky-cube/skill-64