跳到主內容

Theme / v1.16.0

OpenSpec

規格驅動開發

基礎觀念

v1.16.0:openspec.dev 一鍵安裝、validate 情境檢查與 Node.js 22 下限

🟡 中階|OpenSpec v1.16.0(2026-10-30 發布):Breaking——npm 安裝需 Node.js 22.12.0 以上;新增從 openspec.dev 一鍵安裝(release 檔改 .tar.gz/.zip)、openspec validate 的 Scenario 步驟檢查與 store 建議,並修復 config.yaml 驗證、zsh completion 等問題。含互動測驗與升級檢查清單。

概述

OpenSpec v1.16.0(2026-10-30 23:38 UTC 發布,台灣時間 2026-10-31 07:38)的官方摘要聚焦三件事:從 openspec.dev 安裝、validate 抓出更多規格(Spec)錯誤,並為 npm 安裝訂出新的 Node.js 下限。這版也帶來一個 Breaking Change:npm 安裝需要 Node.js 22.12.0 以上。

Breaking:npm 安裝需 Node.js 22.12.0 以上

Node 20 已於 2026 年 4 月 30 日終止支援(end-of-life)。因此 v1.16.0 起,npm 安裝需要 Node.js 22.12.0 或更新版本。

兩個不受影響的安裝方式:

  • 獨立執行檔(standalone binary)——v1.15.0 起的預設安裝方式,不使用 Node。
  • Homebrew——安裝並管理它自己的 Node。

無法升級 Node 時,官方建議改用獨立執行檔:

curl -fsSL https://openspec.dev/cli/install.sh | sh

Windows 使用 PowerShell:

irm https://openspec.dev/cli/install.ps1 | iex

從 openspec.dev 安裝

安裝入口移到 openspec.dev 網域,指令同上(macOS/Linux 用 curl、Windows 用 irm)。另一個變化:release 檔案改為 .tar.gz 壓縮檔(Windows 為 .zip)。

Scenario 步驟檢查

openspec validate 現在會在 Scenario: 缺少 WHEN/GIVEN 步驟或缺少 THEN 步驟時提出警告(warning),檢查範圍涵蓋 change deltas(變更差異)與主 specs。一般 validate 與 archive 行為不變;--strict 對這種情況失敗。

Store 建議

當某個指令找不到 OpenSpec root,而你已註冊 stores(儲存庫)時,錯誤訊息會指出 id 與你 repo 的 origin 名稱相符的 store,並附上選用它所需的 --store 旗標與 store: 行。

它只提建議——絕不替你選擇 store。

修復

  • 無效的 config.yaml:openspec/config.yaml 無法讀取或不是有效 YAML 時,openspec validate 改以 exit 1 結束——過去會照樣通過,而其中每一條規則都被忽略。其他指令仍然只警告並繼續。
  • ZDOTDIR 下的 zsh completion:openspec completion install zsh 在 ZDOTDIR 是絕對路徑時,改寫入 $ZDOTDIR/.zshrc——zsh 實際讀取的檔案。如果你的 completion 一直沒有生效,重新執行一次安裝即可。completion uninstall zsh 也會清理早期安裝留在 ~/.zshrc 的區塊。
  • 行內 code fence:以三個反引號行內程式碼開頭的行(如 npm test)不再開啟幽靈 code fence(phantom code fence)而遮住其後的每個需求。
  • 無空格標題:主 spec 需求寫成 ###Requirement:(冒號前無空格)時,validate 現在會回報重複或錯置的需求,與 archive 的讀法一致。

既有使用者影響

  • npm 安裝的使用者:確認 Node.js 在 22.12.0 以上,或改用獨立執行檔(Homebrew 用戶不受影響)。
  • CI 中跑 validate --strict 的專案:缺少 WHEN/GIVEN 或 THEN 步驟的 Scenario: 現在會讓 strict 失敗——補齊步驟即可。
  • config.yaml 曾經損壞的專案:validate 從此誠實失敗,不再默默忽略其中的規則。

互動測驗

隨堂測驗

v1.16.0 起,用 npm 安裝 OpenSpec 的 Node.js 下限是?

💡 想先看個提示?

注意題目問的是「npm 安裝」——其他安裝方式另有安排。

隨堂測驗

`openspec validate`(不帶 `--strict`)遇到缺少 WHEN/GIVEN 或 THEN 步驟的 `Scenario:` 時,預設行為是?

💡 想先看個提示?

記住 OpenSpec 的警告模型:警告不改變一般模式的判定,但 strict 會把它升級為失敗。

升級檢查清單

升級 v1.16.0:動手檢查清單

逐項勾選,確認你已完成升級必要的步驟(進度會保存在此瀏覽器)

0 / 6

延伸閱讀