jscpd
jscpd 是一个源代码重复检测器,使用 Rabin-Karp 算法,能在 225 种以上的编程语言和文档格式中找出重复的代码块。复制粘贴是技术债的常见来源,jscpd 会报告重复块的位置。README 说最新版本加入了由 Rust 驱动的引擎。
项目较新的部分面向 AI 工作流。`ai` 报告器输出紧凑、节省 token 的结果(公共路径前缀压缩、不含代码片段),可以直接接入 LLM 提示词;在项目自己的测试样例上,它约用 1,100 个估算 token,而默认控制台报告器约 5,400 个,大约少 79%。它还附带两个智能体技能:工具参考技能,以及指导读取重复结果并提取公共代码的 dry-refactoring 技能,用 `npx skills add kucherenko/jscpd` 安装。独立的 jscpd-server 包把检测能力以 MCP 服务(streamable HTTP)的方式提供。主包提供命令行和 API,其他包涵盖核心算法、分词器、查找器、用于大型仓库的 LevelDB 存储和 HTML 报告器,代码采用 MIT 许可证。