Theme / v0.10.8

Codebase Memory

程式碼記憶與知識圖譜 MCP

指令詳解

get_architecture 工具詳解

如何使用 get_architecture 工具快速掌握代碼庫的高階架構、專案拓撲與目錄結構

指令用途

在開發者面對一個全新的或擁有數十萬行代碼的龐大專案時,首要的挑戰就是理解專案的骨架目錄拓撲。直接閱讀檔案樹(File Tree)往往會被海量的原始碼檔案和編譯產物(如 bin/obj/node_modules/)淹沒,造成極大的認知負載。

get_architecture 是 Codebase Memory MCP 伺服器中最核心的高階架構探索工具。它能在幾毫秒內掃描整個工作區,排除所有被忽略的系統目錄(如 .git/, .gemini/),並自動提煉出一份反映專案「模組架構」與「核心子系統」的高階目錄關係結構樹,幫助 AI 助手與開發者一瞬間掌握專案全貌。


運作流程

  1. 工作區掃描:工具會自專案根目錄出發,向深層遞歸掃描目錄。
  2. 過濾排除:根據 codebase-memory.yaml 配置文件中設定的 exclude 規則,自動跳過無關檔案。
  3. 架構提煉
    • 識別關鍵專案檔案(例如 .sln, .csproj, package.json, go.mod)。
    • 提取各模組之間的物理相依路徑。
  4. 輸出生成:回傳一份高階的架構說明(包括目錄樹、模組說明與專案根目錄核心依賴)。

實戰對話範例

範例:在新加入的 WinForms 專案中了解架構

  • You:
    /opsx:explore "我剛接手這個 WinForms 控制專案,完全不熟。請幫我探索它的高階架構。"
  • AI:

    好的,為了幫助您快速掌握專案結構,我將呼叫 codebase-memory 的 get_architecture 工具,拉取本機專案的高階骨架。

    CM 呼叫: get_architecture()
    CM 回傳:

    {
      "projectRoot": "D:/Repo/TechSpecs",
      "projectType": "C# WinForms Solution (.NET Framework 4.8)",
      "modules": [
        { "name": "ControlSystem.sln", "path": "/" },
        { "name": "ControlSystem.Core", "path": "/src/Core", "desc": "包含運動控制核心演算法與 PLC 通訊通訊協定實作" },
        { "name": "ControlSystem.UI", "path": "/src/UI", "desc": "WinForms 主畫面、手動調試面板與設定表單" },
        { "name": "ControlSystem.Tests", "path": "/tests", "desc": "核心邏輯與通訊協定的單元測試" }
      ],
      "keyDependencies": [
        { "source": "ControlSystem.UI", "target": "ControlSystem.Core" }
      ]
    }

    分析
    這是一個典型的前後端分離架構 WinForms 專案:

    1. UI 展現層ControlSystem.UI 是主程式入口,引用了核心邏輯層。
    2. 核心控制層ControlSystem.Core 負責運動控制與 PLC 底層通訊。
    3. 測試層ControlSystem.Tests 用於驗證。

    接下來,您希望我們優先探索核心控制層 /src/Core 下的具體類別,還是 UI 介面?