用途:这是一个“代码重复分流”技能,负责发现重复代码并产出整合计划,本身不实施去重。工作分三阶段:用确定性工具扫描检测重复块,而非主观猜测;分流区分真正有害的重复与合理/巧合的重复,并按类型和严重度分类;对每个真实克隆提出去重策略并路由到下游技能。
主要能力:封装跨语言复制粘贴检测器 jscpd,一条命令覆盖 python、javascript、csharp、rust、go;也支持按语言切换到原生检测工具以做 AST/语义级检测。可为每个克隆对报告重复行数与 token 数、检测到的语言、两处位置(file:start-end)及整体重复行百分比。
使用方式:输入参数 target_path 必填,language(默认 auto)、min_tokens、min_lines、top_n(默认 15)、standard(general 或 ob)可选。扫描命令:python3 skills/clean-code-duplication/scripts/report_duplication.py <target_path> --language <language-or-auto> --top <top_n>,若覆盖阈值则加 --min-tokens / --min-lines。运行器不自行安装依赖,若 jscpd 与 npx 均不可用会退出并给出安装说明,此时回退到 references/languages/<language>.md 记录的原生工具。随后按克隆类型(Type-1 至 Type-4)与影响面(非行数)定严重度,参照 references/duplication-thresholds.md 过滤误报与合理豁免,阅读两处代码判定修复属本地还是结构性,再从提取函数、提取并参数化、提取公共核心、引入共享工具模块、模板方法/策略、泛型/类型参数中选择最小可行策略。最终按 references/clone-report-template.md 结构输出报告,含扫描结果与逐克隆提案及路由。
路由与限制:同文件/模块且私有辅助函数可解决的路由到 clean-code-refactor;需要新模块/工具/基类的先经架构评审再实现;跨包或需反转依赖的先做架构评审;合理豁免仅记录不动手。本技能不实现去重。若没有克隆超过阈值,扫描后即报告干净结果;深度提案限制在 top 3–5 个克隆,除非用户要求穷尽分析;不得推荐会耦合本应独立调用方的抽象。关于具体阈值、严重度标准与输出字段细节,资料指向对应参考文件,此处不再复述;官方说明字段为空,未提供更多信息。