iT邦幫忙

2026 iThome 鐵人賽

DAY 3
0

OpenSpec

給 AI 寫程式用的 PRD + Technical Design + Task List + Change Log。

例如:

/opsx:propose add-google-login

它會建立類似:

openspec/
├── specs/                    # 系統目前應有的行為
└── changes/
    └── add-google-login/
        ├── proposal.md       # 為什麼改、改什麼
        ├── specs/            # 需求 / 行為規格
        ├── design.md         # 技術設計
        └── tasks.md          # 實作 checklist

也就是:

需求
 ↓
規格
 ↓
技術設計
 ↓
Task
 ↓
AI 寫程式
 ↓
驗證
 ↓
合併回正式 Spec

目前預設的核心流程是:

/opsx:propose
      ↓
/opsx:apply
      ↓
/opsx:sync
      ↓
/opsx:archive

另外也有 /opsx:explore/opsx:new/opsx:continue/opsx:verify 等較完整流程。(GitHub)

它想解決的問題其實很實際。一般 AI coding 常是:

你:幫我加會員功能

AI:好的!
     改 LoginView
     重構 AuthManager
     改 API
     改 Navigation
     順便換 Keychain library

你:???

OpenSpec 中間多了一層:

你
 ↓
Spec
 ↓
AI
 ↓
Code

所以特別適合 既有專案 / brownfield 專案。它本身強調 lightweight、iterative,不希望變成很僵硬的 waterfall 流程。(GitHub)

套到 iOS,例如需求:

外資未平倉頁面增加日期切換,非交易日自動 fallback 到前一交易日。

OpenSpec 會先寫成:

Requirement:
使用者可以選擇日期查看外資未平倉資料。

Scenario:
Given 使用者選擇 2026/09/13
And 2026/09/13 為非交易日
When 系統要求資料
Then 應自動取得上一個有效交易日
And UI 顯示實際資料日期

再補 design:

ForeignFuturesView
        ↓
ForeignFuturesViewModel
        ↓
TradingDateResolver
        ↓
API

tasks:

[ ] 建立 TradingDateResolver
[ ] ViewModel 加 selectedDate
[ ] API request 支援 date
[ ] 非交易日 fallback
[ ] Unit Test

這樣 Claude Code / Codex / Cursor 實作時,就比較不容易一路自由發揮。

它和 GitHub Spec Kit 概念相近,都是 SDD;OpenSpec 自己的定位則偏向:

Spec Kit
偏完整 / 流程較重
        ↕
OpenSpec
偏輕量 / iterative
        ↕
純 Prompt coding
最自由、但最容易 drift

我覺得它真正有意思的地方,是把 AI coding 的工作單位從 Prompt 變成 Change

Prompt-driven
「幫我改這個」

        ↓

Change-driven
「這個 feature 的需求、
設計、task、implementation
全部是一個可追蹤的 change」

這很像把 Git 的 commit / PR 思維,往前延伸到「需求」階段。


上一篇
談談軟體開發、Vibe Coding、 Agentic Coding
下一篇
下定決心要來做Side Project-Gintone
系列文
10年拖延症患者+10年iOS工程師的vibe coding歷程4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言