spec

spec

熱門

在 repo 根目錄建立、修訂或反向傳播 bug 至 SPEC.md。專案規格唯一的修改者。當使用者要求撰寫規格、開始新規格、從現有程式碼提煉規格、新增不變量、修訂章節(§G、§C、§I、§V、§T、§B),或透過反向傳播記錄 bug 時觸發。常見說法:「為...撰寫規格」、「新規格」、「bug: ...」、「修訂 §V.3」、「從程式碼提煉規格」、「將此想法寫成規格」。閱讀並遵循 FORMAT.md 以了解 caveman 編碼規則以及 §T 和 §B 的 pipe-table 格式。

1129星標
86分支
更新於 2026/6/18
SKILL.md
唯讀
名稱
spec
描述

在 repo 根目錄建立、修訂或反向傳播 bug 至 SPEC.md。專案規格唯一的修改者。當使用者要求撰寫規格、開始新規格、從現有程式碼提煉規格、新增不變量、修訂章節(§G、§C、§I、§V、§T、§B),或透過反向傳播記錄 bug 時觸發。常見說法:「為...撰寫規格」、「新規格」、「bug: ...」、「修訂 §V.3」、「從程式碼提煉規格」、「將此想法寫成規格」。閱讀並遵循 FORMAT.md 以了解 caveman 編碼規則以及 §T 和 §B 的 pipe-table 格式。

spec — 規格修改器

若尚未載入,請閱讀 repo 根目錄的 FORMAT.md。此處所有寫入皆適用 caveman 技能。

分派

檢查使用者請求與專案狀態:

  1. repo 根目錄沒有 SPEC.md 且參數描述想法 → 新增
  2. 沒有 SPEC.md 且參數包含 from-code提煉
  3. SPEC.md 存在且參數以 bug: 開頭 → 反向傳播
  4. SPEC.md 存在且參數以 amend 開頭 → 修訂
  5. SPEC.md 存在且無參數 → 詢問使用者要哪種模式

輸入 — spec 是唯一的修改器

其他動詞產生素材;spec 負責寫入。將它們的交接區塊整合到正確的章節,顯示差異,確認後寫入:

  • grill → 精煉的 §G + §C
  • research → §R 行(若無 §R 章節則新增)
  • review → 草擬的 §V 行 + 風險判定
  • deepen → §I/§V/§T 修訂

⊥ 重寫交接未指名的章節。章節所有權(見 FORMAT.md)。

新增 — 想法 → 規格

輸入:使用者想法。若想法模糊,建議先執行 grill

步驟:

  1. 提取目標(1 行,caveman)。→ §G。
  2. 列出使用者陳述或暗示的限制。→ §C。
  3. 列出使用者指名的外部介面。→ §I。
  4. 僅當 research 已執行時才加入 §R — 否則省略該章節(適度調整)。
  5. 提出初始不變量。→ §V(編號 V1…)。
  6. 將目標分解為有序任務。→ §T pipe table,所有狀態為 .,id 為 T1…
  7. §B 章節僅含標題列(id|date|cause|fix)。

寫入 SPEC.md。向使用者顯示完整檔案。詢問:「規格 OK?高風險請 /review,否則 /build。」

提煉 — 程式碼 → 規格

走訪 repo。產生 §G(從 README/package.json/main entry 推斷)、§C(從技術棧推斷)、§I(列舉公開 API/CLI/設定)、§V(從測試與斷言推導)、§T(每個已知 TODO 或缺少的測試一個任務)、§B(空)。

全程使用 caveman。不確定的項目在文字中以 ? 標記,供使用者確認。

反向傳播 — bug → §B + §V

輸入:bug: <description>

步驟:

  1. 解析 bug 描述。
  2. 找出根本原因(閱讀相關程式碼)。
  3. 決定:新不變量是否能防止重複發生?若是 → 草擬 V<next>
  4. 附加 §B 行:B<next>|<date>|<cause>|V<N>
  5. 將新不變量附加到 §V。
  6. 若修正也改變行為 → 新增/更新 §T 行。
  7. 顯示差異。僅在使用者確認後套用。

規則:每個 bug 都必須有 §B 條目。不變量可選但建議。

修訂 — 針對性編輯

輸入:amend §V.3amend §T 等。

閱讀該章節。顯示目前內容。詢問使用者要什麼變更。寫入。顯示差異。

絕不靜默重寫使用者未指名的章節。

輸出規則

  • FORMAT.md 的 caveman 格式。
  • 保留識別碼、路徑、程式碼原樣。
  • 編號單調遞增 — 絕不重用 §V.N 或 §B.N。
  • §T 行的 cites 欄位!列出 §V/§I 依賴:T5|.|impl auth mw|V2,I.api

非目標

  • 無子代理。主執行緒負責寫入。
  • 無儀表板、無日誌、除 SPEC.md 本身外無狀態檔案。
  • 規格後不自動建置。使用者明確呼叫 build。