上個月,有團隊請 Claude Code 重構金流模組。
表面看起來一切完美:
- 改了 18 個檔案
- 單元測試全過
- CI 全綠
上線後才發現:Webhook 回呼邏輯漏改——還有 6 個隱藏呼叫點沒進 Agent 的清單。
這不是 Claude Code 獨有。Cursor、GitHub Copilot、Windsurf 的 AI 程式助理 都一樣:本質是在讀檔,不是掌握程式之間的關係。
所以 CodeGraph 在 2026 年竄紅:本地建可查詢的程式碼知識圖譜,用 MCP 讓 Claude Code 動手前先跑 impact analysis。下文對齊真實搜尋:Claude Code 漏改、Cursor Composer、MCP、CodeGraph,以及大倉索引為何常放在 Cloud Mac。
Claude Code 為什麼容易漏改程式
大家搜「Claude Code 漏改」「Claude Code monorepo」,問的不是模型笨不笨,而是為什麼改一處、別處沒跟上。
Claude Code 會 Read、Grep、改多檔、跑測試——流程順,但大倉裡呼叫關係是圖,不是清單:
- 公開方法改名,Extension 或測試裡的 conformance 可能沒被檢索到;
- 協定欄位變更,手機 Mock、背景 Job、Webhook 各藏一角;
- 讀了 40 個檔,第 41 個間接引用可能不在 context window。
於是「編譯過、測試過、上線漏改」。AI 程式開發 的卡點在改既有系統。對照 Claude Code vs Cursor,產品不同,漏改機制相同:缺結構化影響面查詢。
Cursor Composer 為什麼需要程式碼知識圖譜
Cursor 的 Composer 擅長大範圍 diff,改 UI 很順;但動公開 API、支付協定、跨 package 依賴 仍看「搜到哪些檔」——只靠語意搜尋,Cursor 漏改 和 Claude Code 是同類事故。
程式碼知識圖譜把「誰呼叫 PaymentService」變成可遍歷的邊。實務上常讓 Cursor 與 Claude Code 共用 .codegraph:codegraph install --target=claude,cursor。
三張結構圖:一般 Agent vs CodeGraph Agent
以下為本文原創示意圖。
PaymentService 前,圖譜可列出 WebhookHandler、BillingAPI、AdminPanel 等引用方
CodeGraph 是什麼(還沒聽過這名字的讀者)
CodeGraph(如 colbymchenry/codegraph)在本地用 tree-sitter 建索引,符號與 calls / imports 寫入 .codegraph/codegraph.db。不取代 Claude Code 或 Cursor,而是補倉庫地圖。
常用 codegraph_impact、codegraph_callers、codegraph_trace。iOS / Swift 團隊改 Protocol、SPM 邊界時,impact 比純 Grep 穩。
什麼時候團隊會把 CodeGraph 當標配
週末腳本不必 day one 上圖譜。以下情況會變成預設:
- 多 package、多 App 或多 Xcode Target,單次改動常跨十幾個檔
- 事故型態是「測試過、預發現 Webhook 錯」—典型影響面漏改
- Claude Code 與 Cursor 同倉,需要一份共用必改清單
這類輪廓下,CodeGraph 會和 CI、Code Review、固定 macOS 建置機一起,進入 AI 程式開發 檢查清單。
MCP 如何讓 Claude Code 呼叫 CodeGraph
搜「Claude Code MCP」的人要的是:Model Context Protocol 把圖譜查詢變成 Agent 的工具。
- 安裝 CodeGraph CLI;
- 執行
codegraph install --target=claude,cursor --yes; - 倉庫根目錄
codegraph init -i; - 在
CLAUDE.md規定:改公開 API 前必須 codegraph_impact。
請 Claude Code 重構 PaymentService.charge 時,可先透過 MCP 拿檔案清單——從「摸黑改 18 檔」變成「按圖改 24 檔且不漏 Webhook」。
codegraph init -i codegraph install --target=claude,cursor --yes codegraph impact "PaymentService.charge" --depth 3
大倉索引:許多團隊把 CodeGraph 放在 Cloud Mac
全量 codegraph index 吃 CPU 與磁碟 IO,十萬行以上常要數十分鐘,在 MacBook 上會和 Claude Code、Xcode 搶資源。
因此愈來愈多團隊:
- 在 Cloud Mac 常駐節點跑
codegraph init -i; - 與
xcodebuild、pnpm test排在同一台 自架 Runner; - 本地 AI 程式助理 只查詢圖譜。
圖譜版本與建置、測試對齊——詳見 Cloud Mac 方案。
索引與建置同一環境
索引耗 CPU/IO,與 Xcode 建置同源部署,可避免「本地圖是昨天的、CI 已是今天的」——Swift 多 Target 倉庫尤其需要。
RAG、Grep、超長上下文:為何無法單獨扛
| 手段 | 擅長 | 漏改時的盲區 |
|---|---|---|
| 向量 RAG | 語意相似片段 | 真正呼叫方可能「讀起來不像」 |
| Grep | 字串命中 | 動態派發、間接呼叫、產生碼 |
| 200K+ 上下文 | 一次塞很多檔 | 仍可能漏讀;成本高 |
| CodeGraph | 符號級 impact / callers | 需維護索引;小專案可能過度 |
成熟組合:CodeGraph 定範圍 → RAG 補語意 → Claude Code / Cursor 編輯 → 測試驗證。
建議工作流(Claude Code + CodeGraph)
- 在 Cloud Mac 或本機建好
.codegraph; - 改金流、鑑權、公開 API 前先
codegraph impact或 MCP; - 依清單改完跑測試;PR 可增量更新索引;
- 搭配 Mac mini + Claude Code 時,可查詢在本機、索引在雲端。
安裝、MCP 與 Before/After
逐步安裝、Monorepo 案例、更多 FAQ:
Claude Code 為什麼總是漏改程式?GitHub 熱門 CodeGraph 給出了答案(2026)
本篇偏「為什麼」;連結文章偏「怎麼裝、怎麼接 MCP」。
常見問題
CodeGraph 和 Sourcegraph 有什麼不同?
Sourcegraph 是企業級程式碼搜尋,給人在瀏覽器查。CodeGraph 給 AI 程式助理:本地 SQLite、不上傳原始碼,用 MCP 提供 impact。可並用。
CodeGraph 能用於 Swift 嗎?
能。適合 iOS/macOS 多 Target、SPM、Xcode 工程;改 Protocol 前跑 impact,減少 Extension、測試 Target 漏改。
CodeGraph 能和 Claude Code 一起用嗎?
能,且建議。install 後 Agent 可呼叫 codegraph_impact,或先在終端機查再貼進 prompt。
CodeGraph 一定要 MCP 嗎?
CLI 可單獨用;要讓 Agent 模式自動查圖譜,需要 MCP。一次 install 可配 Claude 與 Cursor。
Claude Code 為什麼容易漏改?(一句話)
在讀檔,不在理解關係;改公開符號前缺確定性影響面清單。
Cursor Composer 為什麼需要知識圖譜?
大範圍 diff 仍可能漏間接呼叫方;共用 CodeGraph 索引可統一必改清單。
索引放 Cloud Mac 還是本機?
小倉本機即可;大倉、Swift 全量建議 Cloud Mac 跑索引,本地只查。
- 相關閱讀— Claude Code vs Cursor · Claude Code 生態
ZavCloud · 雲端 Mac
在 Cloud Mac 跑 CodeGraph 索引,Claude Code 專心改碼
索引、Xcode 建置與 MCP 對齊——Agent 對著最新圖譜改金流,不是昨天的快照。
查看 Cloud Mac 方案