OpenSpec 是 Fission-AI 出品的輕量 spec 框架(npm)。OPSX 是目前的標準工作流,設計哲學是「Actions not phases」:artifact 之間有相依但沒有 phase gate,任何時候都可以回頭修改任何 artifact。支援 34 個 AI coding agent(2026-07-21 清點官方 docs/supported-tools.md 表格;官方摘要句寫 25+/30+ 不一致,以表格逐列為準)。

核心節點

命令命名:core 6 個都有本機 skills delivery 實際名稱(/openspec-*)。expanded 那批(custom profile)本機無對應 skill,保留官方文件的 /opsx:* 字面;啟用後實際名稱依該 host 的 delivery 而定。

代號指令Profile動作輸出 / 備註
EX/openspec-explorecore發散思考,釐清需求與選項無固定輸出;propose 前用
PR/openspec-proposecore ⭐一步建立完整 changeproposal + specs + design + tasks
AP/openspec-apply-changecore ⭐依 tasks.md 執行實作過程可隨時更新 artifact
UP/openspec-update-changecore就地修訂既有 change 的規劃 artifact 並保持一致只碰規劃層:不改程式碼、不補建缺漏 artifact(那是 CT);每筆編輯先確認
SY/openspec-sync-specscore同步 delta specs 進主規格可獨立跑;archive 執行時也會詢問是否 sync
AR/openspec-archive-changecore ⭐合併 delta specs 並封存 changechange 移至 changes/archive/;含 sync 確認步驟
NW/opsx:newexpanded ⭐建立 change scaffold(只搭架)本機無對應 skill
CT/opsx:continueexpanded ⭐依相依圖逐步建立下一個 artifactFF 擇一;每次一個
FF/opsx:ffexpanded ⭐一次產出所有 planning artifactsCT 擇一;目標清楚時用
VF/opsx:verifyexpanded ⭐對照 specs 驗收實作
BA/opsx:bulk-archiveexpanded批次封存多個 changes
ON/opsx:onboardexpanded引導走完整一次 OPSX 流程(end-to-end walkthrough)

Expanded profile 需 openspec config profile 啟用,再跑 openspec update

整體流向

flowchart TD
    Start([開始]) --> EX["/openspec-explore<br/>發散思考(選填)"]
    Start --> PR
    EX --> PR["/openspec-propose ⭐<br/>建立完整 change"]
    PR --> AP1["/openspec-apply-change ⭐<br/>執行實作"]
    AP1 --> AR1["/openspec-archive-change ⭐<br/>(含 sync 確認)"]
    AR1 --> Done([完成])
    PR -.計畫要改.-> UP["/openspec-update-change<br/>修訂規劃 artifact"]
    UP -.-> AP1

    Start2([開始 · Expanded]) --> NW["/opsx:new ⭐<br/>建立 scaffold"]
    NW --> FFCT["/opsx:ff ⭐ 或 /opsx:continue ⭐<br/>產出 planning artifacts"]
    FFCT --> AP2["/openspec-apply-change ⭐<br/>執行實作"]
    AP2 --> VF["/opsx:verify ⭐<br/>驗收"]
    VF --> AR2["/openspec-archive-change ⭐"]
    AR2 --> Done

Artifact 相依圖

specs 與 design 平行產出(都只依賴 proposal),tasks 需兩者完成才能建立:

flowchart LR
    P[proposal.md] --> S["specs/&lt;domain&gt;/spec.md"]
    P --> D[design.md]
    S --> T[tasks.md]
    D --> T
    T --> AP["/openspec-apply-change"]

關鍵規則

  • Actions not phases:沒有強制 phase gate,AP 中發現設計錯誤直接改 design.md 再繼續
  • EX before PR:idea 模糊先跑 EX;目標清楚直接跑 PR
  • FF vs CT:知道要做什麼用 FF 一次產出;還在探索用 CT 逐步推進
  • Delta not full rewrite:specs 只記「這次改了什麼」(ADDED / MODIFIED / REMOVED),archive 時合併進主規格;sync 可獨立跑,不跑也行——archive 內建的確認步驟會問你要不要先 sync
  • Update vs New change:同目標、微調執行 → 更新既有 change(用 UP);意圖根本改變或 scope 爆增 → 開新 change
  • ⚠️ 別真的跳過 design:官方文件說 design 可選,但出貨的 spec-driven schema 裡 tasksrequires[specs, design],graph 引擎無 optional 機制。實測缺 design.mdopenspec status 會回報 tasks (blocked by: design),卡住不動。PR 預設會一起生成所以平常撞不到;真要跳過得自訂 schema 改掉 tasks 的 requires(2026-07-21 實測 1.6.0)

相關

版本備註

  • 安裝:npm install -g @fission-ai/openspec(版本見官方 releases)
  • Core profile 為 6 個 workflow(原始碼 src/core/profiles.tsCORE_WORKFLOWS):propose / explore / apply / update / sync / archive。skills delivery 下的目錄名依序為 openspec-proposeopenspec-exploreopenspec-apply-changeopenspec-update-changeopenspec-sync-specsopenspec-archive-change
  • 舊記錄的兩處已失效(2026-07-21 對 1.6.0 修正):① 「sync 不在 core 交付」自 1.4.0 起不成立——changelog 明載新安裝在 core profile 直接生成 /opsx:sync;② 「core 實際 4 個 skill」漏了後來加入的 syncupdateupdate 為 1.6.0 新增)