codebase-memory、codegraph、GitNexus、graphify 四個工具,放在一組真實的 TS ↔ Go 服務上測(兩邊都用量測當時工作分支的 HEAD,完整範圍)。兩邊之間有 75 個 HTTP 端點、1 條 gRPC。沒有任何工具自動接上任何一條。5 題跨 repo 實戰題,四個工具組和只用 grep 的基線幾乎都答對,跨 repo 的銜接全靠 grep。工具真正有差的地方在 repo 內:那裡 codegraph 1.6.2 明顯領先。
| 工具 | 跨 repo 連結 | HTTP /75 | gRPC /1 | Go 服務 route → handler /130 | 為什麼 |
|---|---|---|---|---|---|
| codebase-memory(只建索引) | 0 | 0 | 0 | 0 | 一般索引不會產生跨 repo 連結。 |
| codebase-memory(加跑 cross-repo pass) | 136 | 0 | 0 | 0 | 136 條全錯:來源全是 Go 服務的測試、scripts、web,目標是 backend 的 benchmark 假 handler(91 條)、泛用路由(44 條)或 middleware(1 條)。Go 1.22 的 mux.Handle("POST /path") 被丟棄(解析器要求路徑以 / 開頭),router 產生 0 個 Route。backend 只認得樣板字串 URL(50/75),純字串的一律漏掉;邊上沒有 README 說的 confidence。 |
| codegraph 1.4.1 | — | 0 | 0 | 53 | 沒有跨 repo 功能。route → handler 有 77 條連到同名方法,包括測試替身。 |
| GitNexus group | 2 | 0 | 0 | 0 | 2 條都錯(一條其實在 backend 內部,一條方向相反)。Go 服務的 HTTP provider 數是 0,推測是因為認不得 Go 1.22 的寫法(沒有讀它的原始碼確認)。手寫 manifest 宣告了 75 條,但兩端都對不到程式碼符號;gRPC 解到產生出來的 stub。 |
| graphify merge | 0 | 0 | 0 | 0 | 兩張圖之間 0 條直接邊,只有 10 個同時連到兩邊的外部節點(標準函式庫和幾個未解析的參照)。 |
題目:proto 欄位改名的兩邊影響、worker → Go 服務應用層的正向追蹤、回傳格式改變的反向影響、列出全部 75 個端點、找出 SSE 事件和 DTO 的合約漂移。每組 1 個 agent,依真值表評分。
| 分組 | Q1(6) | Q2(7) | Q3(10) | Q4(75) | Q5a(7) | Q5b(4) | 錯 | token | 工具呼叫 |
|---|---|---|---|---|---|---|---|---|---|
| 只用 grep | 6 | 7 | 10 | 75 | 7 | 4 | 1 | 162,414 | 49 |
| codegraph | 6 | 7 | 10 | 75 | 7 | 4 | 1 | 155,351 | 53 |
| GitNexus | 6 | 7 | 10 | 75 | 7 | 4 | 1 | 177,576 | 66 |
| graphify | 6 | 7 | 10 | 75 | 7 | 4 | 0 | 154,966 | 59 |
| codebase-memory | 6 | 7 | 10 | 75 | 5 | 4 | 1 | 200,628 | 71 |
新 HEAD 的 backend service 層,4,495 個呼叫與 new 運算式(召回分母 4,126),跨檔 1,395 個。嚴格判定:目標必須是 type checker 解析到的那個宣告。
| 工具 | 跨檔召回 | default singleton(894) | 具名 const 實例(68) | 跨檔精確度 | 主要錯誤 |
|---|---|---|---|---|---|
| codegraph 1.4.1 | 91% | 96% | 0% | 64% | 同名退化、只連到接收者常數 |
| codegraph 1.6.2 | 97% | 95% | 100% | 81% | 範圍外 repository/第三方函式庫的同名猜測 |
| codebase-memory | 25% | 4% | 0% | 83% | 漏抓:匯入的 singleton 幾乎沒有 CALLS 邊 |
| GitNexus | 34% | 0% | 100% | 97% | 漏 default singleton;介面 dispatch 會連到所有實作 |
| graphify | 22% | 0% | 0% | 98% | 漏所有成員呼叫;少數同名錯連 |