| name | repo-scan |
| description | Cross-stack source code asset audit — classifies every file, detects embedded third-party libraries, and delivers actionable four-level verdicts per module with interactive HTML reports. |
| origin | community |
repo-scan
どのエコシステムにも独自の依存関係マネージャーがありますが、C++、Android、iOS、Web を横断して「実際にどれだけのコードが自分のものか、サードパーティは何か、不要なものは何か」を教えてくれるツールはありません。
使用タイミング
- 大規模なレガシーコードベースを引き継ぐ際に、構造的な概要が必要な場合
- 大規模リファクタリングの前に、コア・重複・デッドコードを特定する場合
- パッケージマネージャーで宣言されていない、ソースに直接埋め込まれたサードパーティ依存関係を監査する場合
- モノレポ再編成のための Architecture Decision Records を準備する場合
インストール
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 等)のバージョン抽出付き検出 |
| 4段階の判定 | Core Asset / Extract & Merge / Rebuild / Deprecate |
| HTML レポート | ドリルダウンナビゲーション付きのインタラクティブなダークテーマページ |
| モノレポ対応 | サマリー+サブプロジェクトレポートによる階層スキャン |
分析深度レベル
| レベル | 読み取りファイル数 | ユースケース |
|---|
fast | モジュールあたり1-2 | 巨大ディレクトリの簡易インベントリ |
standard | モジュールあたり2-5 | 依存関係+アーキテクチャチェックを含むデフォルト監査 |
deep | モジュールあたり5-10 | スレッドセーフティ、メモリ管理、API 一貫性を追加 |
full | 全ファイル | マージ前の包括的レビュー |
仕組み
- リポジトリ表面の分類: ファイルを列挙し、各ファイルをプロジェクトコード、埋め込みサードパーティコード、ビルド成果物としてタグ付けします。
- 埋め込みライブラリの検出: ディレクトリ名、ヘッダー、ライセンスファイル、バージョンマーカーを調査し、バンドルされた依存関係と推定バージョンを特定します。
- モジュールのスコアリング: ファイルをモジュールまたはサブシステムごとにグループ化し、所有権、重複、メンテナンスコストに基づいて4段階の判定のいずれかを割り当てます。
- 構造的リスクのハイライト: デッドウェイト成果物、重複ラッパー、古くなったベンダーコード、抽出・再構築・廃止すべきモジュールを指摘します。
- レポートの生成: 簡潔なサマリーと、モジュール別ドリルダウン可能なインタラクティブ HTML 出力を返し、非同期でレビューできるようにします。
例
50,000ファイルの C++ モノレポでの実行結果:
- 本番環境にまだ残っている FFmpeg 2.x(2015年版)を発見
- 同じ SDK ラッパーが3回重複していることを発見
- 636 MB のコミット済み Debug/ipch/obj ビルド成果物を特定
- 分類結果: プロジェクトコード 3 MB vs サードパーティ 596 MB
ベストプラクティス
- 初回監査では
standard 深度から始めてください
- 100以上のモジュールがあるモノレポでは
fast を使用して簡易インベントリを取得してください
- リファクタリング対象としてフラグが立ったモジュールに対して
deep をインクリメンタルに実行してください
- サブプロジェクト間の重複検出のために、クロスモジュール分析を確認してください
リンク