Theme / v0.10.8

Codebase Memory

程式碼記憶與知識圖譜 MCP

指令詳解

index_status 工具詳解

如何使用 index_status 查詢當前工作區圖譜的索引覆蓋率、節點總數與解析狀態

指令用途

在開發者詢問 AI 助手關於程式碼庫架構的問題時,如果當前圖譜索引是不完整的(例如,有 50% 的檔案因為語法錯誤解析失敗,或者上一次背景掃描中斷了),AI 給出的答案就可能是不准確的。

index_status 用於 查詢圖譜完整性狀態。它回傳當前專案工作區中:

  • 哪些原始碼檔案已被成功索引。
  • 哪些檔案在解析時發生了語法錯誤 (Syntax Errors)。
  • 圖譜庫的總節點數與關係數。
  • 圖譜是否處於「最新同步 (Up-to-date)」狀態。

這是進行 Codebase Memory 系統自我診斷(System Diagnosis)不可或缺的工具。


運作流程

  1. 圖譜狀態檢索:讀取當前 projectId 對應的圖資料庫統計元數據。
  2. 語法錯誤統計:掃描並歸納出 ParsingError 節點的檔案路徑與錯誤原因(由 tree-sitter 產出)。
  3. 回傳與展示:輸出完整的圖譜完整度百分比與狀態指標。

實戰對話範例

範例:檢查圖譜是否完全同步

  • You:
    /opsx:explore "我剛剛在 PlcConnection.cs 裡加了新程式碼,但 AI 好像查不到。請幫我用 index_status 檢查圖譜狀態。"
  • AI:

    好的,為了排除「圖譜同步延遲」或「語法錯誤阻礙」的可能性,我將呼叫 index_status 工具檢查當前儲存庫的索引狀態。

    CM 呼叫: index_status()
    CM 回傳:

    {
      "projectId": "TechSpecs",
      "isUpToDate": false,
      "indexCoverage": "99.2%",
      "filesParsed": 247,
      "filesFailed": 1,
      "failedDetails": [
        {
          "filePath": "/src/Core/Communication/PlcConnection.cs",
          "error": "Syntax Error at line 142: 缺少封閉括號 '}'"
        }
      ],
      "totalNodes": 1824
    }

    分析
    診斷結果非常明確!

    1. 圖譜未同步isUpToDatefalse
    2. 語法語意阻塞:您的 PlcConnection.cs 在第 142 行有一個語法錯誤(缺少封閉大括弧 },這導致 Tree-sitter 無法為其建立正確的 AST 語法樹,因而跳過了該檔案的圖譜更新。

    請您先在編輯器中將第 142 行的括號補齊存檔。一旦您完成,我會重新執行偵測更新,使 AI 能夠正常檢索您的新代碼。