SKILL.md
readonlyread-only
name
repo-scan
description
跨技術棧原始碼資產審計 — 分類每個檔案、偵測內嵌的第三方函式庫,並為每個模組提供可操作的四大等級判定,附互動式 HTML 報表。
repo-scan
每個生態系都有自己的相依管理工具,但沒有任何工具能跨 C++、Android、iOS 和 Web 告訴你:有多少程式碼真正屬於你、哪些是第三方的、哪些是無用的包袱。
使用時機
- 接手大型舊有程式碼庫,需要結構性概覽
- 重大重構前 — 識別哪些是核心、哪些是重複、哪些是廢棄的
- 審計直接內嵌在原始碼中的第三方相依(未在套件管理工具中宣告)
- 為 monorepo 重組準備架構決策記錄
安裝
# 只擷取固定 commit 以確保可重現性
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
安裝任何 agent skill 前,請先審查原始碼。
核心功能
| 功能 | 說明 |
|---|---|
| 跨技術棧掃描 | 一次掃描 C/C++、Java/Android、iOS (OC/Swift)、Web (TS/JS/Vue) |
| 檔案分類 | 每個檔案標記為專案程式碼、第三方程式碼或建置產物 |
| 函式庫偵測 | 50+ 個已知函式庫(FFmpeg、Boost、OpenSSL…)並提取版本 |
| 四大等級判定 | 核心資產 / 提取並合併 / 重建 / 棄用 |
| HTML 報表 | 深色主題互動式頁面,支援向下鑽研導航 |
| Monorepo 支援 | 分層掃描,提供摘要與子專案報表 |
分析深度等級
| 等級 | 每個模組讀取檔案數 | 使用情境 |
|---|---|---|
fast |
1-2 | 大型目錄快速盤點 |
standard |
2-5 | 預設審計,含完整相依與架構檢查 |
deep |
5-10 | 增加執行緒安全、記憶體管理、API 一致性檢查 |
full |
所有檔案 | 合併前全面審查 |
運作方式
- 分類儲存庫表面:列舉檔案,然後將每個檔案標記為專案程式碼、內嵌第三方程式碼或建置產物。
- 偵測內嵌函式庫:檢查目錄名稱、標頭檔、授權檔案與版本標記,以識別捆綁的相依函式庫及其可能版本。
- 評分每個模組:將檔案依模組或子系統分組,然後根據所有權、重複性與維護成本,指派四大等級之一。
- 突顯結構風險:指出無用產物、重複的包裝器、過時的供應商程式碼,以及應提取、重建或棄用的模組。
- 產生報表:回傳簡潔摘要與互動式 HTML 輸出,包含每個模組的向下鑽研功能,以便非同步審查審計結果。
範例
在一個 50,000 檔案的 C++ monorepo 中:
- 發現 FFmpeg 2.x(2015 年版)仍在生產環境中使用
- 發現同一個 SDK 包裝器重複了三次
- 識別出 636 MB 已提交的 Debug/ipch/obj 建置產物
- 分類結果:3 MB 專案程式碼 vs 596 MB 第三方程式碼
最佳實踐
- 首次審計從
standard深度開始 - 對於超過 100 個模組的 monorepo,使用
fast取得快速盤點 - 對標記為需重構的模組,逐步執行
deep深度 - 檢視跨模組分析,以偵測子專案間的重複






