repo-scan
affaan-m/ECC
C++、Android、iOS、Webの各ソースコードリポジトリをスキャンして、ファイルを分類し、埋め込まれたサードパーティ製ライブラリを検出し、モジュールごとに実用的な4段階の評価結果を、インタラクティブなHTMLレポートとして生成します。
...すべて拡張します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) を1回の処理でスキャン |
| ファイル分類 | すべてのファイルに「プロジェクトコード」「サードパーティ」「ビルドアーティファクト」のタグを付与 |
| ライブラリの検出 | 50以上の既知ライブラリ(FFmpeg、Boost、OpenSSLなど)の検出およびバージョン情報の抽出 |
| 4段階の判定 | コアアセット/抽出・マージ/再構築/非推奨 |
| HTMLレポート | ドリルダウンナビゲーションを備えたインタラクティブなダークテーマページ |
| モノレポのサポート | 要約およびサブプロジェクトレポートを備えた階層型スキャン |
分析の深度レベル
| レベル | 読み込まれたファイル数 | ユースケース |
|---|---|---|
fast |
モジュールあたり1~2件 | 大規模なディレクトリの簡易的なインベントリ作成 |
standard |
モジュールあたり2~5件 | 完全な依存関係およびアーキテクチャチェックを含むデフォルトの監査 |
deep |
モジュールあたり5~10件 | スレッドセーフネス、メモリ管理、APIの一貫性の追加 |
full |
すべてのファイル | マージ前の包括的なレビュー |
仕組み
- リポジトリの範囲を分類:ファイルを列挙し、それぞれをプロジェクトコード、組み込みのサードパーティコード、またはビルド成果物としてタグ付けします。
- 組み込みライブラリの検出:ディレクトリ名、ヘッダー、ライセンスファイル、バージョンマーカーを調査し、バンドルされた依存関係と推定されるバージョンを特定します。
- 各モジュールの評価:ファイルをモジュールまたはサブシステムごとにグループ化し、所有権、重複、および保守コストに基づいて、4つの判定のいずれかを割り当てます。
- 構造上のリスクを特定:不要なアーティファクト、重複したラッパー、古くなったベンダーコード、および抽出・再構築・非推奨化すべきモジュールを指摘します。
- レポートを生成:簡潔な要約に加え、モジュールごとの詳細確認が可能なインタラクティブなHTML出力を返すことで、監査結果を非同期で確認できるようにする。
使用例
50,000ファイルからなるC++モノレポの場合:
- FFmpeg 2.x(2015年版)が依然として本番環境で利用されていることを発見
- 同一のSDKラッパーが3回重複して存在していることを発見
- コミット済みのDebug/ipch/objビルドアーティファクトが636 MBあることを特定
- 分類結果:プロジェクトコード 3 MB 対 サードパーティ製コード 596 MB
ベストプラクティス
- まずは
standard詳細な調査から始める - 100以上のモジュールを含む
fast100以上のモジュールを含むモノリポジトリでは、迅速なインベントリ作成のためにこれを使用する - 実行
deepリファクタリングの対象としてフラグが立てられたモジュールに対して、段階的に実行する - サブプロジェクト間の重複検出のために、モジュール横断的な分析を確認する
リンク
- GitHubリポジトリ
---
name: repo-scan
description: Scans source code repositories across C++, Android, iOS, and Web to classify files, detect embedded third-party libraries, and produce actionable four-level verdicts per module with interactive HTML reports.
---
# repo-scan
> Every ecosystem has its own dependency manager, but no tool looks across C++, Android, iOS, and Web to tell you: how much code is actually yours, what's third-party, and what's dead weight.
## When to Use
- Taking over a large legacy codebase and need a structural overview
- Before major refactoring — identify what's core, what's duplicate, what's dead
- Auditing third-party dependencies embedded directly in source (not declared in package managers)
- Preparing architecture decision records for monorepo reorganization
## Installation
```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
```
> Review the source before installing any agent skill.
## Core Capabilities
| Capability | Description |
|---|---|
| **Cross-stack scanning** | C/C++, Java/Android, iOS (OC/Swift), Web (TS/JS/Vue) in one pass |
| **File classification** | Every file tagged as project code, third-party, or build artifact |
| **Library detection** | 50+ known libraries (FFmpeg, Boost, OpenSSL…) with version extraction |
| **Four-level verdicts** | Core Asset / Extract & Merge / Rebuild / Deprecate |
| **HTML reports** | Interactive dark-theme pages with drill-down navigation |
| **Monorepo support** | Hierarchical scanning with summary + sub-project reports |
## Analysis Depth Levels
| Level | Files Read | Use Case |
|---|---|---|
| `fast` | 1-2 per module | Quick inventory of huge directories |
| `standard` | 2-5 per module | Default audit with full dependency + architecture checks |
| `deep` | 5-10 per module | Adds thread safety, memory management, API consistency |
| `full` | All files | Pre-merge comprehensive review |
## How It Works
1. **Classify the repo surface**: enumerate files, then tag each as project code, embedded third-party code, or build artifact.
2. **Detect embedded libraries**: inspect directory names, headers, license files, and version markers to identify bundled dependencies and likely versions.
3. **Score each module**: group files by module or subsystem, then assign one of the four verdicts based on ownership, duplication, and maintenance cost.
4. **Highlight structural risks**: call out dead-weight artifacts, duplicated wrappers, outdated vendored code, and modules that should be extracted, rebuilt, or deprecated.
5. **Produce the report**: return a concise summary plus the interactive HTML output with per-module drill-down so the audit can be reviewed asynchronously.
## Examples
On a 50,000-file C++ monorepo:
- Found FFmpeg 2.x (2015 vintage) still in production
- Discovered the same SDK wrapper duplicated 3 times
- Identified 636 MB of committed Debug/ipch/obj build artifacts
- Classified: 3 MB project code vs 596 MB third-party
## Best Practices
- Start with `standard` depth for first-time audits
- Use `fast` for monorepos with 100+ modules to get a quick inventory
- Run `deep` incrementally on modules flagged for refactoring
- Review the cross-module analysis for duplicate detection across sub-projects
## Links
- [GitHub Repository](https://github.com/haibindev/repo-scan)
すべてのファイル
1件のファイルrepo-scanをインストール
スキルファイルをダウンロードし、.claude/skills/ ディレクトリに解凍してください。
ZIPをダウンロードリポジトリをクローンし、スキルファイルをプロジェクトにコピーしてください。
git clone https://github.com/affaan-m/ECC/tree/main/skills/repo-scan # Copy SKILL.md to your .claude/skills/ directory
コピー





家
