OpenSpec 是什麼?
一、OpenSpec 是什麼?
**OpenSpec(Open Specification)**是一種「開放式規格定義方式」,它的核心理念是:
用標準化、可解析的方式描述系統規格,讓人與機器都能理解。
簡單說:
-
傳統規格:Word、Excel、Confluence 文件
-
OpenSpec:結構化格式(通常是 JSON / YAML / Markdown 結構化標記)
OpenSpec 的精神其實與 API 規格文件類似,例如:
-
OpenAPI
-
Swagger
但 OpenSpec 的應用範圍更廣,可能包含:
-
系統需求規格
-
流程定義
-
UI 行為描述
-
商業邏輯規則
-
AI Agent 可執行規格
二、OpenSpec 想解決什麼問題?
在實務專案中,你(尤其身為工程師)可能很有感:
1️⃣ 規格模糊
PM 寫的規格:
-
「使用者可以新增資料」
-
「需要支援多筆操作」
-
「錯誤時顯示提示」
但:
-
什麼錯誤?
-
允許空值嗎?
-
交易要不要 rollback?
-
有沒有版本控管?
常常變成工程師要自己補邏輯(你應該超有感 😅)。
2️⃣ 規格無法機器理解
傳統文件:
-
無法自動產生測試
-
無法驗證是否缺欄位
-
無法直接生成程式碼
OpenSpec 的目標是:
規格 = 可以被 AI / 工具解析與執行的資料
三、OpenSpec 怎麼用?(實務教學)
Step 1️⃣ 用結構化格式定義規格
範例(YAML):
feature: CreateOrder
description: 使用者建立訂單
inputs:
- name: userId
type: string
required: true
- name: items
type: array
required: true
business_rules:
- inventory must be greater than 0
- payment must be authorized before confirm
outputs:
- orderId
- status
這種寫法的優勢是:
-
AI 可以解析
-
可以自動產生測試案例
-
可以自動生成 API 文件
-
可以驗證欄位完整性
Step 2️⃣ 搭配工具鏈
你可以整合:
-
規格 → 產生 API
-
規格 → 產生測試
-
規格 → 驗證商業邏輯
如果你是 .NET 工程師(你目前主要使用 .NET):
你可以做到:
-
規格 → 產生 Controller
-
規格 → 產生 DTO
-
規格 → 產生 Validation Attribute
-
規格 → 產生 Unit Test Skeleton
這會大幅降低「規格理解成本」。
Step 3️⃣ 結合 AI / Agent
現在 AI Agent 與 Spec 結合的趨勢很強。
例如:
-
Spec → AI 生成程式碼
-
Spec → AI 驗證邏輯衝突
-
Spec → 自動生成測試資料
未來甚至可能:
Spec = 系統的 Single Source of Truth
四、OpenSpec 的優點
✅ 1. 規格標準化
-
降低溝通成本
-
避免口語模糊
✅ 2. 可機器解析
-
自動化生成
-
自動測試
-
自動驗證
✅ 3. 可版本控制
-
Git 追蹤規格變更
-
版本差異可比較
-
可回滾規格
✅ 4. 有利於 AI 整合
未來的開發流程會變成:
Spec → AI → Code → Test → Deploy
五、OpenSpec 的缺點
❌ 1. 初期學習成本
-
PM 可能不熟結構化格式
-
需要建立規格標準
❌ 2. 可能過度工程化
小專案不一定需要。
❌ 3. 不適合高度創意需求
例如:
-
UI 視覺設計
-
體驗導向產品
六、OpenSpec 與傳統規格比較
| 比較項目 | 傳統文件規格 | OpenSpec |
|---|---|---|
| 可讀性 | 高(人類容易閱讀) | 中(需理解結構化格式) |
| 可機器解析性 | 低(無法自動解析) | 高(JSON / YAML 可直接解析) |
| 自動化生成能力 | 幾乎沒有 | 高(可產生 API / 測試 / 文件) |
| 版本控制 | 困難(文件 diff 不易閱讀) | 容易(Git 可追蹤差異) |
| AI 整合能力 | 困難 | 非常適合(可作為 AI 輸入規格) |
| 適用場景 | 小型專案、簡單需求 | 中大型專案、微服務、AI 驅動開發 |
七、未來趨勢
🔮 1️⃣ Spec-Driven Development
未來開發可能會像 API 世界一樣:
-
先寫 Spec
-
再產生系統
類似:
-
OpenAPI 之於 API
-
OpenSpec 之於整個系統
🔮 2️⃣ AI Agent + Spec
AI 不再只生成 code,而是:
-
讀 Spec
-
驗證 Spec
-
改進 Spec
-
生成架構
🔮 3️⃣ 規格即合約(Spec as Contract)
尤其在:
-
金融系統
-
區塊鏈
-
跨鏈交易
-
ACID 一致性系統
Spec 可以直接當作:
-
邏輯合約
-
驗證依據
-
共識基準
這其實跟你現在研究的「跨鏈一致性控制」概念非常契合。
你未來甚至可以:
用 OpenSpec 描述跨鏈 MVCC 規則
再讓 Relay Chain 驗證 Spec 合規性
這會變成很有研究價值的方向。
八、適合哪些人?
-
工程師
-
技術 PM
-
系統架構師
-
DevOps
-
AI Agent 開發者
結論
OpenSpec 不是一個單純工具。
它是一種思想:
規格應該是可執行的。
未來的軟體工程,可能會從:
Code-Driven → 轉變成 → Spec-Driven
而 AI 的出現,會加速這個轉變。
留言
張貼留言