SuperAPI AI 工具集

finding-duplicate-functions

编程与开发

查看项目

更新于 10-16 07:24

技能介绍

用途:审计代码库中的语义重复,即功能相同但名称或实现不同的函数。经典复制粘贴检测工具(如 jscpd)只能发现语法重复,无法识别“意图相同、实现不同”的情况,本技能通过“先提取、再按意图聚类”的两阶段方法弥补这一缺口。

适用场景:代码库由多人或 LLM 长期迭代、怀疑工具函数被反复重写、重大重构前寻找合并机会,或已用 jscpd 处理完语法重复之后。

主要流程:1)用 ./scripts/extract-functions.sh src/ -o catalog.json 提取函数目录,支持 -o 输出文件、-c 上下文行数、-t 文件类型、--include-tests 包含测试文件(默认排除测试文件);2)用 haiku 子代理按 scripts/categorize-prompt.md 按领域分类,输出 categorized.json;3)用 ./scripts/prepare-category-analysis.sh categorized.json ./categories 拆分,仅含 3 个以上函数的类别值得分析;4)对每个类别用 opus 子代理按 scripts/find-duplicates-prompt.md 检测,输出到 ./duplicates/{category}.json;5)用 ./scripts/generate-report.sh ./duplicates ./duplicates-report.md 生成按置信度分组的报告;6)人工复核,对高置信度重复确认保留函数有测试、更新调用方、删除重复并运行测试。

高风险重复区域:utils/、helpers/、lib/ 等通用工具,校验代码、错误格式化、路径处理、字符串格式化、日期格式化、API 响应整形。

常见错误:提取过多(应聚焦导出函数和公共方法)、跳过分类直接检测全量目录、用 haiku 做重复检测(分类可用 haiku,检测需 opus)、未确认测试覆盖就合并删除。

限制:资料未提供具体支持的编程语言范围、性能数据、收费或价格信息,也未提供除上述脚本外的安装方式。