Theme / v1.12.0

OpenSpec

規格驅動開發

基礎觀念

v1.12.0:Findings-only 驗證與 Code-grounded Planning

學會用 findings-only 報告降低 CI 噪音,並理解 v1.12.0 的 Propose、FF、Explore 為何改成先讀 code、tests 與 docs 再規劃。

版本重點

OpenSpec v1.12.0 沒有重寫既有的 Change lifecycle,而是把兩個日常痛點補完整:驗證結果太吵,以及 agent 在 repo 已經有答案時仍反問使用者

這兩個改動對教學很重要,因為它們分別代表兩個可泛用到其他 AI coding agent 的原則:

  1. 輸出格式(reporting)與成功/失敗語意(semantics)應分離。
  2. 規劃應先以 repository evidence 為基礎,再向人詢問真正需要決策的事項。

Findings-only validation report

v1.12.0 新增:

openspec validate --all --report findings

--report findings 只顯示 error、warning 與 informational findings,但仍保留完整 run totals 與原本 exit code。因此它很適合 CI:人看到的 log 更短,automation 的判定契約卻不變。

何時使用

  • Pull Request CI 只想列出要處理的問題。
  • 大量 changes / specs 做 bulk validation。
  • 想把 validation report 貼到 review comment,但不想貼整份成功明細。

不要誤解

--report findings 不是「忽略成功項目」的驗證模式;它只是改變報告長相。真正是否通過仍由原本 validation semantics 與 exit code 決定。

Code-grounded planning

v1.12.0 的 Propose 與 fast-forward workflow 會在起草 artifacts 前先看相關:

  • source code
  • tests
  • documentation
  • 既有 OpenSpec artifacts

例如你說「新增 retry 次數設定」,repo 內已經有 RetryOptions 與對應測試時,agent 應先讀它們,再決定 proposal / design / tasks 要怎麼寫,而不是先問你「目前 retry 設定放哪裡?」。

Explore 也先查 repo 再問

Explore mode 會優先找 repository 中已存在的事實,再提出 dependency-aware questions。問題應集中在:

  • 產品取捨
  • 不在 repo 裡的外部限制
  • 多個可行方案之間需要人決定的方向

而不是把「檔案在哪、現有 class 叫什麼、測試框架是哪個」這些可自行查證的問題丟回使用者。

初始化與可靠性

v1.12.0 也修補:

  • 空 OpenSpec 目錄仍可被 Git 追蹤。
  • 重跑 init 可安全恢復缺失 marker。
  • init / update 使用一致的 IDE restart guidance。
  • npm Git install 不再要求使用者本機必須先有 pnpm。
  • merge conflict 以 informational finding 呈現,不改變原 exit code。
  • filesystem read error 與 missing spec 不再混為同一種錯誤。

實務建議

把 v1.12.0 的工作方式套到自己的 agent prompt 時,可以濃縮成一句:

先讀 code、tests、docs 與現有規格;只詢問 repository 無法回答、且確實需要人做決策的問題。

這比「少問問題」更精確:不是少問,而是只問高價值問題。

來源:OpenSpec v1.12.0 release