repowise-dev/repowise
Codebase intelligence for AI and humans: code health scores, auto-generated docs, git analytics, dead code detection, and architectural decisions via MCP.
Repowise – 證據導向的程式碼庫智慧
是什麼 – Repowise 是一個基於 Python 的工具,可建立本地、持續更新的程式碼庫索引。該索引整合了語言無關的呼叫圖、Git 歷史、測試覆蓋率資訊、文件以及記錄的架構決策。從這單一的真相來源出發,它為開發者或 AI 驅動的程式碼代理通常需要透過 grep、閱讀程式碼或執行昂貴的模型提示來發現的問題,提供 決定性(無需 LLM 呼叫)的答案。
為何重要 – 現代 AI 程式碼助手在每次請求時都會花費大量時間「重新發現」程式碼庫的結構,這會增加 token 使用量、降低代理速度,並可能導致上下文遺失。Repowise 一次性完成繁重工作,然後以遠少的工具呼叫和大幅減少的負載(例如,典型提交上下文從 13,984 個 token 減少到 393 個 token)提供 帶引用 的、圖感知的結果。此專案還提供具體、可操作的重構建議和每個檔案的健康分數,所有計算均在本地完成且開源。
核心功能
| 領域 | Repowise 提供的內容 |
|---|---|
| 程式碼圖 | 支援 25 種語言的 AST 解析依賴關係,帶置信度標記的呼叫解析,社群檢測,中心性度量,執行流程追蹤。 |
| Git 信號 | 熱點檢測、所有權、共變更統計、巴士因子、缺陷修復歷史 – 全部源自程式碼庫自身的提交日誌。 |
| 文件維基 | 為每個模組/檔案自動產生、增量式維基頁面;可選擇性地為每頁新增 LLM 寫的段落。 |
| 架構決策 | 從五個來源(如提交訊息、程式碼註解)決定性地提取,加上手動捕獲;每個決策均連結到證據。 |
| 程式碼健康分析 | 49 個決定性檢測器(複雜度、內聚性、克隆檢測、未測試熱點、變更熵等)為每個檔案生成 1–10 的健康分數,並提供具體重構計畫(提取類/方法、移動方法、拆分檔案等)。 |
| 測試智慧 | 透過呼叫圖找出哪些測試 觸及 一個檔案(當覆蓋率報告遺失時的回退方案),並可列出差異所觸發的最小測試集。 |
| 變更風險 | 使用圖和 Git 信號對差異或 PR 進行 0–10 分的評分,返回可操作指令如 may_break 或 missing_tests。 |
| MCP 工具 | 十個任務型「模型-控制-協定」端點(圖、Git、文件、決策、健康、風險、受影響測試、精煉等),任何 MCP 兼容代理(Claude Code、Codex、Cursor、VS Code 等)均可呼叫。 |
| 精煉 | 在命令輸出(如長 pytest 日誌)到達代理前進行壓縮,保留錯誤和結束碼的同時,將 token 使用量減少 60–90 %。 |
| PR 機器人 | GitHub 應用,為每個 PR 發佈一條持續更新的評論,包含影響範圍、測試影響、風險分數、健康警報以及詳細分析頁面連結。 |
典型工作流程
- 安裝 –
pip install repowise。 - 初始化 – 在目標程式碼庫內執行
repowise init --no-prose -y。此操作解析程式碼、建構圖、提取 Git 信號、建立維基,並執行健康檢測器。 - 服務 –
repowise serve啟動本地 HTTP 端點,公開 MCP 工具。 - 連接 – 將你的程式碼代理(Claude Code、Codex、Cursor 等)指向該端點,或開啟內建儀表板探索健康分數、變更風險和重構建議。
- 迭代 – 隨著程式碼庫變更,Repowise 會增量更新索引,無需重新執行完整分析即可保持所有答案最新。
適用對象
| 使用情境 | Repowise 如何協助 |
|---|---|
| AI 輔助開發 | 代理透過單次呼叫即可獲得預先計算、帶引用的上下文(例如「誰呼叫了 auth.validate?」),減少 token 消耗和延遲。 |
| 安全的拉取請求審查 | 自動風險評分、測試影響清單和影響範圍圖直接顯示在 PR 評論中,讓審查者專注於真實破壞性風險。 |
| 持續程式碼健康改善 | 健康分數揭示缺陷高發檔案;具體重構計畫可輸入代理或手動應用。 |
| 大型多程式碼庫工作區 | 單一 MCP 端點可服務多個程式碼庫,支援跨服務契約檢查和架構強制。 |
| 企業部署 | 核心分析完全在本地執行,無需 API 金鑰,AGPL-3.0 許可,企業可選付費支援、安全擴充和 SLA 保證。 |
安裝與快速入門
pip install repowise # 取得 CLI 和程式庫
cd /path/to/your/repo
repowise init --no-prose -y # 建構索引(無需 LLM)
repowise serve # 啟動本地 MCP 伺服器
# 範例查詢
repowise risk main..HEAD # 當前 PR 的變更風險評分
repowise health --refactoring-targets # 列出低健康檔案及具體修復方案
repowise impacted-tests main..HEAD # 差異的最小測試集
完整說明見 docs/start/QUICKSTART.md。
證據與基準測試
- 代理效率 – 在
django/django程式碼庫上對 43 個問題的研究顯示,Repowise 將代理輸出減少 31.6 %,工具呼叫次數從 7.2 → 3.8(p < 0.0001)。 - 負載減少 – 典型提交上下文從 13,984 → 393 個 token(減少 97.2 %)。
- 缺陷預測 – 健康引擎的 49 個檢測器基於真實缺陷語料庫校準;程式碼庫內驗證顯示,最低健康檔案中最近缺陷的富集度為 3.3×。
- 圖準確性 – 在 37,853 個 Oracle 邊上與 5 個其他工具對比;Repowise 在所有 7 個編譯器評分單元中均達到最高精確度。
- 所有基準數據、方法和限制均在
docs/BENCHMARKS.md中公開。
許可與可用性
- 開源 – AGPL-3.0(原始碼在 GitHub,PyPI 套件
repowise)。 - 自托管 – 核心分析在本地執行,無需外部 API 金鑰或雲端服務。
- 商業選項 – 企業可選付費支援、安全擴充和 SLA 保證。
學習更多
- 即時示範 – https://repowise.dev(無需登入)。
- 文件 – https://docs.repowise.dev
- GitHub 程式碼庫 – https://github.com/repowise-dev/repowise
- PR 機器人安裝 – https://github.com/apps/repowise-bot
總結 – Repowise 將程式碼庫轉變為一個決定性知識庫,讓 AI 代理和開發者可即時查詢,降低 token 成本,提升安全性,並在不將程式碼發送到遠端 LLM 的情況下提供具體、可執行的修復方案。
相關
- 專案
- 專案
- 專案
- 專案
- 專案