Theme / v1.12.0

OpenSpec

規格驅動開發

基礎觀念

v1.11:差異檢視與工作區狀態

用 show --diff 只看真正改動的行、用 status --all 一眼掌握所有進行中變更,並認識 Explore 先問再寫的新規矩與 v1.10.0 的實用改善。

show --diff 只看真正變更的行

v1.11.0 起,MODIFIED requirement(修改需求)必須重述所有保留的 scenario,delta 大多與主規格相同,肉眼比對越來越累。openspec show <change> --diff 解決了這件事:它只隔離真正變更的行,每個 requirement 顯示彩色的 unified diff(統一差異格式)。ADDED requirement 顯示全文;REMOVED 顯示作者撰寫的 Reason 與 Migration notes;RENAMED 顯示清楚的 FROM/TO。要把結果餵給管線(Pipeline)時,改用 openspec show <change> --json --diff;也可以用 --store <id> 對指定的 store 做 diff。

status --all 一眼掃完所有變更

以前想檢查每個進行中的 change,得一個一個開 process 跑 openspec status。現在 openspec status --all 一個指令就檢查所有進行中的變更,不用每個開一個 process。JSON envelope 的排序維持穩定;更關鍵的是,載入失敗的 change 會就地貢獻一筆 diagnostic(診斷訊息),而不是中斷整個掃描,dashboard 與 CI 因此拿得到全貌。

Explore 更守規矩

Explore mode 改為「先問再寫」:在建立或編輯任何檔案之前,它會明確列出目標並等待你的明確同意(以另一則訊息回答);自己回答自己的釐清問題,不再被視為同意。唯讀的探索則維持零摩擦,不受影響。同時,Explore 產生的圖表改用純 ASCII(美國資訊交換標準碼)字元,跨終端機、字型與 locale 的對齊一致,不再跑版。

其他健檢修正一併入列:openspec validate 會抓出仍是 archive 佔位文字的 Purpose(capability 沒寫真正的目的),預設為 warning、--strict 模式下才判失敗;archive 時 renamed requirement 保持在原位置,不再跳到 spec 結尾,diff 更小;schema init --default 現在真的會寫入 default。Antigravity 也改用共用的 .agents/ root,既有 .agent/ 安裝會自動遷移,自訂內容會保留並標示。

v1.10.0 的實用改善

  • Zed Agent 支援openspec init --tools zed 會把 workflow skills 裝進 .agents/skills/,屬 skills-only 整合,以 /openspec-propose 呼叫,需 Zed v1.4.2 以上。
  • 非英文 artifactsopenspec init --language <language> 直接設定產出語言,不必再手改 config.yaml;標題與 SHALL/MUST 關鍵字維持英文以通過驗證。
  • 安裝不再有警告:套件不再宣告任何 install scripts,npm install -g @fission-ai/openspec 不會再出現 allow-scripts 警告。
  • Task plans 要寫驗收方式:產生任務計畫(Task Plan)時必須說明「如何知道完成」,例如測試、指令、可觀察結果或交付物;光說「實作那個東西」不再及格。
  • 修正openspec feedback 不再把整份報告當 issue 標題;OpenCode 的 /opsx-propose add-auth 不再丟失參數;首次執行的 telemetry 通知改為輸出到 stderr,不再汙染 openspec spec show 的重導向輸出。

來源:OpenSpec v1.11.0 releaseOpenSpec v1.10.0 release