build

build

熱門

針對 SPEC.md 進行「先規劃再執行」的實作。原生單執行緒迴圈,無子代理。測試或建置失敗時,會自動呼叫 backprop 技能後再重試——驗證失敗時一律會考慮新增 §V 不變式是否能防止再次發生。當使用者要求建置、實作、執行規格,或處理特定 §T 任務時觸發(`build §T.3`、`build --next`、`implement next task`、`run the build`)。預期 SPEC.md 存在;若不存在,則交由 spec 技能處理。

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

針對 SPEC.md 進行「先規劃再執行」的實作。原生單執行緒迴圈,無子代理。測試或建置失敗時,會自動呼叫 backprop 技能後再重試——驗證失敗時一律會考慮新增 §V 不變式是否能防止再次發生。當使用者要求建置、實作、執行規格,或處理特定 §T 任務時觸發(`build §T.3`、`build --next`、`implement next task`、`run the build`)。預期 SPEC.md 存在;若不存在,則交由 spec 技能處理。

build — 實作規格

單執行緒原生規劃→執行。你就是主要的 Claude。沒有 swarm。

載入

  1. 讀取 SPEC.md。若缺少 → 告知使用者先呼叫 spec 技能。停止。
  2. 若尚未載入,讀取 FORMAT.md 一次。
  3. 若存在,讀取 §R — 建置必須遵守的外部事實,⊥ 重新推導或矛盾。
  4. 解析呼叫參數:
    • §T.n → 僅處理該任務
    • --next → 狀態為 .~ 的最低編號列
    • --all 或空白 → 依 §T 順序處理每個 .

高影響範圍(共用模組、驗證、資料、金錢、公開 §I)?先執行 /review。瑣碎且可逆?跳過規劃儀式,直接執行 EXECUTE 步驟。

規劃

原生規劃模式 — 你委派給它,不要重新發明任務分解。對於選定的任務:

  1. 引用每個適用的 §V 不變式。規劃必須遵守所有不變式。
  2. 引用每個觸及的 §I 介面。規劃必須保持形狀。
  3. 列出要建立/編輯的檔案。
  4. 驗證合約 — 指出能證明每個觸及的 §V 的 EXACT 測試/驗收標準。哪個測試,而非「新增測試」。「做 TDD」單獨會適得其反;規格說明 要檢查什麼。每個觸及的 §V → 一個先失敗的具名測試。
  5. 指出驗證指令(測試、建置、lint)— 這是外部 oracle。綠燈 = 完成;⊥「看起來完成」。

顯示規劃。等待使用者確認,除非是自動模式。

執行

依序處理每個任務:

  1. 將 §T.n 狀態儲存格從 . 翻轉為 ~。直接寫入 SPEC.md
  2. 依規劃編輯程式碼。
  3. 執行驗證指令。
  4. 通過 → 將 ~ 翻轉為 x。下一個任務。
  5. 失敗 → 呼叫 backprop 技能。不要盲目重試。

失敗 → BACKPROP

測試/建置失敗時:

  1. 讀取失敗輸出。
  2. 詢問:失敗是 (a) 我的程式碼錯誤、(b) 規格錯誤、還是 (c) 未指定的邊緣情況?
  3. 若是 (a) → 修正程式碼,重新執行。不變更規格。
  4. 若是 (b) 或 (c) → 先以 bug: <cause> 呼叫 spec 技能,讓它更新 §V 和 §B,然後針對更新後的規格繼續建置。

規則:絕不未考慮 backprop 就默默修正根本原因。§B 是防止再次發生的記憶。

寫入政策

  • 僅翻轉 §T 狀態。build 不進行其他 SPEC.md 編輯。
  • 其他規格編輯 → 呼叫 spec 技能。
  • 每個 §T 完成後提交。訊息:T<n>: <goal line> + §V 引用。

驗證

僅在以下情況將任務標記為 x

  • 驗證指令(oracle)退出碼為 0。
  • 每個觸及的 §V 都有驗證合約中的具名測試,且測試通過。
  • 沒有 §V 不變式回歸(最後執行完整測試套件)。

非目標

  • 無子代理。無平行工作者。僅主執行緒。
  • 無進度儀表板。cat SPEC.md | grep §T 就是儀表板。
  • 不進行超出所選任務範圍的投機性工作。