docs/zh-CN/skills/repo-scan
stars:0
forks:0
watches:0
last updated:N/A
repo-scan
每个生态系统都有自己的依赖管理器,但没有工具能跨 C++、Android、iOS 和 Web 告诉你:有多少代码真正属于你,哪些是第三方代码,哪些是冗余负担。
适用场景
- 接手大型遗留代码库,需要了解整体结构
- 重大重构前——识别核心代码、重复代码和废弃代码
- 审计直接嵌入源码(而非通过包管理器声明)的第三方依赖
- 为单体仓库重组准备架构决策记录
安装
# Fetch only the pinned commit for reproducibility
mkdir -p ~/.claude/skills/repo-scan
git init repo-scan
cd repo-scan
git remote add origin https://github.com/haibindev/repo-scan.git
git fetch --depth 1 origin 2742664
git checkout --detach FETCH_HEAD
cp -r . ~/.claude/skills/repo-scan
安装任何代理技能前,请先审查源码。
核心能力
| 能力 | 描述 |
|---|---|
| 跨技术栈扫描 | 一次扫描 C/C++、Java/Android、iOS(OC/Swift)、Web(TS/JS/Vue) |
| 文件分类 | 每个文件标记为项目代码、第三方代码或构建产物 |
| 库检测 | 识别 50+ 已知库(FFmpeg、Boost、OpenSSL…)并提取版本号 |
| 四级判定 | 核心资产 / 提取合并 / 重建 / 废弃 |
| HTML 报告 | 交互式深色主题页面,支持逐层下钻导航 |
| 单体仓库支持 | 分层扫描,提供摘要 + 子项目报告 |
分析深度级别
| 级别 | 读取文件数 | 适用场景 |
|---|---|---|
fast | 每模块 1-2 个 | 快速盘点大型目录 |
standard | 每模块 2-5 个 | 默认审计,含完整依赖 + 架构检查 |
deep | 每模块 5-10 个 | 增加线程安全、内存管理、API 一致性检查 |
full | 所有文件 | 合并前全面审查 |
工作原理
- 分类仓库表面:枚举文件,将每个文件标记为项目代码、嵌入的第三方代码或构建产物。
- 检测嵌入的库:检查目录名、头文件、许可证文件和版本标记,识别捆绑的依赖及其可能版本。
- 为每个模块评分:按模块或子系统分组文件,根据所有权、重复度和维护成本分配四种判定之一。
- 突出结构风险:指出冗余产物、重复的封装器、过时的供应商代码,以及应提取、重建或废弃的模块。
- 生成报告:返回简洁摘要及交互式 HTML 输出,支持按模块下钻,便于异步审查审计结果。
示例
在一个 50,000 文件的 C++ 单体仓库中:
- 发现仍在使用 FFmpeg 2.x(2015 年版本)
- 发现同一 SDK 封装器重复了 3 次
- 识别出 636 MB 已提交的 Debug/ipch/obj 构建产物
- 分类结果:3 MB 项目代码 vs 596 MB 第三方代码
最佳实践
- 首次审计时从
standard深度开始 - 对包含 100+ 模块的单体仓库使用
fast快速盘点 - 对标记为需重构的模块增量运行
deep - 审查跨模块分析结果,检测子项目间的重复代码
