---
name: repo-scan
description: 跨栈源代码资产审计——对每个文件进行分类，检测嵌入的第三方库，并为每个模块提供可操作的四级判定结果，附带交互式HTML报告。
origin: community
---

# repo-scan

> 每个生态系统都有自己的依赖管理器，但没有工具能跨 C++、Android、iOS 和 Web 告诉你：有多少代码真正属于你，哪些是第三方代码，哪些是冗余负担。

## 适用场景

* 接手大型遗留代码库，需要了解整体结构
* 重大重构前——识别核心代码、重复代码和废弃代码
* 审计直接嵌入源码（而非通过包管理器声明）的第三方依赖
* 为单体仓库重组准备架构决策记录

## 安装

```bash
# 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` | 所有文件 | 合并前全面审查 |

## 工作原理

1. **分类仓库表面**：枚举文件，将每个文件标记为项目代码、嵌入的第三方代码或构建产物。
2. **检测嵌入的库**：检查目录名、头文件、许可证文件和版本标记，识别捆绑的依赖及其可能版本。
3. **为每个模块评分**：按模块或子系统分组文件，根据所有权、重复度和维护成本分配四种判定之一。
4. **突出结构风险**：指出冗余产物、重复的封装器、过时的供应商代码，以及应提取、重建或废弃的模块。
5. **生成报告**：返回简洁摘要及交互式 HTML 输出，支持按模块下钻，便于异步审查审计结果。

## 示例

在一个 50,000 文件的 C++ 单体仓库中：

* 发现仍在使用 FFmpeg 2.x（2015 年版本）
* 发现同一 SDK 封装器重复了 3 次
* 识别出 636 MB 已提交的 Debug/ipch/obj 构建产物
* 分类结果：3 MB 项目代码 vs 596 MB 第三方代码

## 最佳实践

* 首次审计时从 `standard` 深度开始
* 对包含 100+ 模块的单体仓库使用 `fast` 快速盘点
* 对标记为需重构的模块增量运行 `deep`
* 审查跨模块分析结果，检测子项目间的重复代码

## 链接

* [GitHub 仓库](https://github.com/haibindev/repo-scan)
