DragonsHoard Lint

檢查對象為目前尚未 commit 的異動(git status + git diff HEAD),不使用歷史 checkpoint。

步驟

  1. 決定本次要跑哪些檢查

    執行:

    git -c core.quotepath=false status --porcelain=v1 -uall

    依本次異動涉及的頂層目錄決定後續步驟:

    • 有 raw/ 異動 → 執行步驟 2。
    • 有 wiki/ 異動 → 執行步驟 3、4、5、6。
    • 兩者都沒有異動(例如只動 chaos/、materials/ 或 .claude/)→ 回報「本次無 raw/、wiki/ 異動,無需結構健檢」後結束。

    被略過的檢查一律明講略過原因,不靜默跳過。

  2. raw/ 不變性

    讀取 .claude/specs/raw-lifecycle.md,依其中目前規則檢查本次異動;不符合即為異常。

  3. Wiki 連結結構

    執行:

    python xcripts/wiki_link_check.py

    依 exit code 處理:

    • 0:通過。
    • 1:讀取 stdout 的 JSON,回報其中的 orphan、deadlink_forward、deadlink_reverse、ambiguous、minlink 異常。
    • 2:script 執行失敗,停止並回報 stderr。
  4. Frontmatter schema

    讀取 .claude/specs/wiki-page.md,依其中目前定義的 schema 檢查這次有異動的 wiki/**/*.md;該規格自行排除的特殊角色檔案除外。不符合即為異常。

    步驟 2 至 4 各自回報實際執行狀態:通過、發現異常,或未執行(並說明原因)。不得只回報「通過」而不交代哪些檢查實際跑過。任一出現異常即停止並回報,不自行修改異常內容,不繼續 commit。

  5. 確認 index.md 跟上

    讀取 .claude/specs/wiki-index.md,依其規格檢查這次異動是否已反映在 wiki/index.md,沒有就補。

  6. 檢查 log.md 是否需要歸檔

    wc -c wiki/log.md 取得目前大小,未超過 .claude/specs/wiki-log.md 定義的門檻就跳過本步驟;超過則依該規格的切割程序執行歸檔。