核心概念
本指南說明 OpenSpec 的核心概念,以及這些概念如何相互配合。若需實際使用說明,請參閱 Getting Started 與 Workflows。
設計理念
OpenSpec 建立於四項原則之上:
fluid not rigid — no phase gates, work on what makes sense
iterative not waterfall — learn as you build, refine as you go
easy not complex — lightweight setup, minimal ceremony
brownfield-first — works with existing codebases, not just greenfield
為何這些原則至關重要
流動而非僵化(Fluid not rigid)。 傳統規格系統會將你鎖定在特定階段:先規劃、再實作、最後完成。OpenSpec 更具彈性——你可以依照工作需求,以任意順序建立產出物(Artifacts)。
迭代而非瀑布(Iterative not waterfall)。 需求會改變,理解會加深。一開始看似合理的方案,在你看到程式碼之後可能不再成立。OpenSpec 擁抱這個現實。
簡單而非複雜(Easy not complex)。 有些規格框架需要大量設定、嚴格格式或繁重流程。OpenSpec 不會妨礙你的工作——幾秒鐘即可初始化、立即開始,有需要時再自訂。
既有專案優先(Brownfield-first)。 大多數軟體開發工作不是從零開始,而是修改既有系統。OpenSpec 以 delta 為基礎的方式,讓你輕鬆描述對既有行為的變更,而不只是描述全新專案。
全局觀
OpenSpec 將你的工作組織為兩個主要區域:
┌────────────────────────────────────────────────────────────────────┐
│ openspec/ │
│ │
│ ┌───────────────────── ┐ ┌───────────────────────────────┐ │
│ │ specs/ │ │ changes/ │ │
│ │ │ │ │ │
│ │ Source of truth │◄─────│ Proposed modifications │ │
│ │ How your system │ merge│ Each change = one folder │ │
│ │ currently works │ │ Contains artifacts + deltas │ │
│ │ │ │ │ │
│ └─────────────────────┘ └───────────────────────────────┘ │
│ │
└────────────────────────────────────────────────────────────────────┘
Specs 是唯一真實來源(source of truth)——描述你的 系統目前的行為。
Changes 是提議的修改——它們存放在獨立資料夾中,直到你準備好合併為止。
這種分離至關重要。你可以同時進行多個 Changes 而不產生衝突。你可以在 Changes 影響主要 Specs 之前進行審查。當你歸檔(Archive)一個 Change 時,其 Delta Specs 會乾淨地合併到唯一真實來源中。
Specs
Specs 使用結構化的需求(Requirements)與情境(Scenarios)來描述系統的行為。
結構
openspec/specs/
├── auth/
│ └── spec.md # Authentication behavior
├── payments/
│ └── spec.md # Payment processing
├── notifications/