SKILL.md
唯讀
名稱
check
描述
唯讀漂移偵測器。將 SPEC.md 與目前程式碼比對,並依嚴重度分組回報違規。不寫入任何內容——會建議透過 spec 或 build 技能來修正,但絕不呼叫它們。當使用者要求檢查漂移、稽核 spec、驗證不變量,或詢問程式碼是否仍符合 spec 時觸發。常見說法:「檢查漂移」、「稽核 spec」、「程式碼是否仍符合 §V」、「檢查不變量」、「spec vs code」。
check — 漂移報告
純診斷。回報違規。不寫入任何內容。由使用者決定修正方式。
Spec 默默偏離程式碼是 SDD 失敗的首要模式。check 就是偵測器。每次 /build 之後、每次發布之前執行——在這裡抓到的漂移只是 diff;在正式環境抓到的漂移就是 §B。
載入
- 讀取
SPEC.md。若不存在 → 「沒有 spec,無從檢查。」停止。 - 解析呼叫參數:
§V→ 僅檢查不變量(預設)§I→ 檢查介面§T→ 稽核任務狀態 vs 程式碼--all→ 全部三項
檢查 §V — 不變量
針對每個 V<n>:
- 將不變量轉換成可驗證的程式碼宣稱。
- 用 grep / 讀取相關檔案。
- 分類:HOLD / VIOLATE / UNVERIFIABLE。
- 記錄位址 + 檔案:行號的證據。
檢查 §I — 介面
針對每個 I 項目:
- 找出實作。
- 分類:
- MATCH — 程式碼中的形狀 = spec 中的形狀。
- DRIFT — 實作存在,但形狀不同。
- MISSING — 實作不存在。
- EXTRA — 程式碼暴露了 §I 中沒有的表面。
檢查 §T — 任務
針對每個 T<n>:
- 若為
x:驗證宣稱的工作是否存在。 - 若為
~:標記為進行中。 - 若為
.:標記為待辦。 - 將沒有證據的
x列標記為 STALE。
報告
簡潔。依嚴重度分組。
## §V 漂移
V2 VIOLATE: auth/mw.go:47 使用 `<` 而非 `≤`。見 §B.1。
V5 UNVERIFIABLE: 沒有測試涵蓋所有 req 路徑。
## §I 漂移
I.api DRIFT: POST /x 回傳 `{result}` 而非 `{id}`。route.go:112。
I.cmd MISSING: `foo bar` 在 cli/*.go 中不存在。
## §T 漂移
T3 STALE: 狀態為 `x`,但沒有 middleware 檔案存在。
## 摘要
2 違規。1 缺失。1 過時。1 無法驗證。
下一步:使用 `bug:` 呼叫 spec 技能,或修正所引用行號的程式碼。
修正提示(非動作)
在報告結尾,每個類別給一行提示:
- VIOLATE / DRIFT → 呼叫 spec 技能
bug: <V.n>或修正程式碼。 - MISSING → 若任務存在,則對
§T.n呼叫 build 技能;否則呼叫 spec 技能amend §T。 - STALE → 呼叫 spec 技能
amend §T以取消勾選。 - EXTRA → 呼叫 spec 技能
amend §I以記錄,或刪除程式碼。
絕不呼叫修正。僅回報。
非目標
- 零寫入。不編輯 SPEC.md。不編輯程式碼。
- 無子代理。主執行緒讀取。
- 無評分、無等級。每個項目二元:成立或漂移。




