repo-scan

repo-scan

熱門

跨技術棧原始碼資產審計 — 分類每個檔案、偵測內嵌的第三方函式庫,並為每個模組提供可操作的四大等級判定,附互動式 HTML 報表。

23萬星標
3.5萬分支
更新於 2026/7/19
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 所有檔案 合併前全面審查

運作方式

  1. 分類儲存庫表面:列舉檔案,然後將每個檔案標記為專案程式碼、內嵌第三方程式碼或建置產物。
  2. 偵測內嵌函式庫:檢查目錄名稱、標頭檔、授權檔案與版本標記,以識別捆綁的相依函式庫及其可能版本。
  3. 評分每個模組:將檔案依模組或子系統分組,然後根據所有權、重複性與維護成本,指派四大等級之一。
  4. 突顯結構風險:指出無用產物、重複的包裝器、過時的供應商程式碼,以及應提取、重建或棄用的模組。
  5. 產生報表:回傳簡潔摘要與互動式 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 深度
  • 檢視跨模組分析,以偵測子專案間的重複

連結