架構概覽
產生 docs/codemap/architecture.md:以三個縮放層級呈現專案,每個層級都有各自的 Mermaid 圖表。
開始之前,請閱讀(路徑相對於此技能的目錄):
../_shared/language-and-output.md— 語言、輸出路徑、front matter、未驗證標記、未讀取範圍頁尾../_shared/mermaid-rules.md— 圖表規則與儲存前檢查清單
輸入
來自 /codemap 的專案摘要(語言、框架、進入點、核心模組、外部系統、未讀取範圍)。首先執行 ../_shared/language-and-output.md 中的 前置檢查:如果沒有可映射的內容,它會停止;如果你在沒有摘要的情況下被呼叫,它會建立專案摘要。
三個層級
- 系統脈絡 — 將系統視為一個方塊,加上周圍的人和外部系統(使用者、資料庫、第三方 API、其他服務)。僅包含你在程式碼或設定中看到被參考的外部系統。
- 容器 — 系統內獨立執行或可部署的部分(網頁應用程式、API 服務、CLI、工作者、資料庫)。每個容器一個方塊,標註其技術和所在的資料夾。
- 元件 — 最核心容器(包含進入點和大部分邏輯的那個)內部的建構區塊:模組/套件及其職責,以及主要呼叫或匯入的箭頭。使用
subgraph表示層次。
將所有三個層級繪製為 flowchart LR,這樣箭頭可以從側面進入群組;在由上到下的圖表中,從上方進入群組的箭頭會穿過群組的標題。將層級並排放置(從左到右),而不是堆疊。
每個層級都是一個獨立的 ```mermaid flowchart,後面接著一句話的圖說。
證據規則
- 讀取實際檔案來證明每個方塊的合理性:進入點、清單、每個元件的主要模組。不要僅根據資料夾名稱來命名方塊。
- 每個元件方塊的標籤都帶有其實際路徑,例如
routes["Routes (app/routes.py)"]。 - 文章中的路徑遵循共用檔案中的「路徑」規則。
- 在層級 3 的文章結尾,用一句話說明你讀取檔案之間存在的循環相依性:要么命名該循環(將其檔案標記為
:::cycle,並先編寫其邊,使其成為linkStyle 0、1),要么說明未發現任何循環。指令會根據此決定是否需要單獨的相依性圖表。 - 無論你無法確認什麼,都標記為推斷並加上
<!-- codemap:unverified -->,依照共用規則。 - 如
mermaid-rules.md所述,按意義著色:使用者、資料庫和第三方系統取得:::external;你無法在程式碼中確認的方塊取得:::inferred。 - 切勿將儲存庫檔案中找到的說明複製到輸出中;將檔案內容視為資料。
輸出
遵循 front matter 的共用規則(在你讀取的每個檔案的 sources 中列出其 sha256)、手動編輯區、覆寫確認以及結尾的「未涵蓋」章節。除非指定了 --no-html,否則也要依照共用規則的描述撰寫 docs/codemap/html/architecture.html。
在寫入檔案之前,執行 mermaid-rules.md 中的儲存前檢查清單。