在 Vibe Coding 開發的時代,我們經常遇到一個問題是給 AI 一個模糊的描述,它卻產生了完全不符合期望的程式碼,然而 GitHub 推出的 Spec Kit 透過規格驅動開發(Spec-Driven Development, SDD),徹底解決了這個問題。
今天我要跟大家分享 Spec Kit 的其中常用到的指令:/constitution、/specify、/plan、/tasks、/implement,以及如何運用它們建立一套完整的開發流程。
Spec Kit 將傳統「丟一句話給 AI 然後祈禱」的模式,轉變為結構化的幾個階段流程:
傳統 Vibe Coding 開發流程的問題:
Spec Kit 的開發流程:
/constitution 建立開發約束的憲法
/constitution 制定以程式碼品質、使用者體驗一致性和效能要求為重點的原則,並納入如何指導這些原則的技術決策和實施選擇的治理機制,以及參照該技術的最佳實踐進行開發,使用 JavScript ES6+ 的版本,所有專案文件、註解、README 檔案必須使用正體中文撰寫;程式碼變數和函數命名使用英文,但註解必須使用正體中文;錯誤訊息和使用者介面文字使用正體中文;API 文件和技術規格使用正體中文說明。
# [專案名稱] 專案憲章
## 核心原則
### I. 程式碼品質優先
所有程式碼必須遵循最佳實踐和編碼標準;使用 ESLint 和 Prettier 進行程式碼規範檢查;所有功能必須有對應的單元測試;程式碼審查是必要的,不得跳過;重構優於新增技術債務。
**理由**: 高品質的程式碼確保專案的長期維護性和擴展性,減少錯誤和開發成本。
### II. 使用者體驗一致性
所有使用者介面元件必須遵循統一的設計系統;互動模式在整個應用程式中保持一致;響應式設計確保在所有裝置上的最佳體驗;無障礙設計遵循 WCAG 2.1 AA 標準;使用者回饋和載入狀態必須清晰可見。
**理由**: 一致的使用者體驗提升使用者滿意度,降低學習成本,增強品牌認知。
### III. 效能要求 (不可協商)
頁面首次載入時間必須在 3 秒內完成;互動響應時間不得超過 100 毫秒;Lighthouse 效能評分必須達到 90 分以上;實施程式碼分割和懶載入優化;圖片和靜態資源必須經過最佳化處理。
**理由**: 優秀的效能直接影響使用者體驗和 SEO 排名,是商業成功的關鍵因素。
### IV. 技術標準
使用 JavaScript ES6+ 語法;模組化架構,每個功能獨立可測試;API 設計遵循 RESTful 原則;使用現代化的建構工具 (Vite)。
**理由**: 統一的技術標準確保團隊協作效率和程式碼一致性。
### V. 文件與註解規範
所有專案文件、README 檔案必須使用正體中文撰寫;程式碼變數和函數命名使用英文;程式碼註解必須使用正體中文;錯誤訊息和使用者介面文字使用正體中文;API 文件和技術規格使用正體中文說明。
**理由**: 統一的語言規範確保團隊溝通效率和文件可讀性。
## 技術決策治理
### 架構決策記錄
重大技術決策必須記錄在 `docs/architecture/` 目錄中;每個決策記錄包含背景、選項評估、決定和後果;決策變更需要新的記錄文件,不得直接修改舊記錄。
### 依賴管理
新增外部依賴必須經過安全性和效能評估;優先選擇活躍維護且社群支援良好的套件;定期更新依賴版本並進行安全性掃描;避免引入不必要的大型依賴庫。
### 效能監控
實施效能監控和指標追蹤;建立效能回歸測試;定期進行效能分析和最佳化;設定效能預算和警報機制。
## 開發流程與品質保證
### 程式碼審查流程
所有程式碼變更必須經過 Pull Request 審查;審查重點包含功能正確性、程式碼品質、效能影響和安全性;至少需要一位團隊成員的批准;自動化測試必須通過才能合併。
## 治理
憲章優先於所有其他開發實踐;憲章修改需要團隊討論、批准和遷移計畫;所有 Pull Request 和程式碼審查必須驗證憲章合規性;複雜性增加必須有充分理由;使用 `AGENTS.md` 檔案提供執行期間的開發指導。
/specify 的目標是完全避免技術細節,專注於使用者需求和商業價值。
舉例來說,如果你想建立一個「 個人記帳 APP 」 為例:
/specify 建立個人記帳 APP
## 目標使用者:個人用戶,想要簡單追蹤日常支出
## 核心問題:現有記帳工具太複雜,使用者需要一個更簡單的解決方案
## 主要功能:
1. 快速記錄收入和支出
2. 按類別分類(食物、交通、娛樂等)
3. 查看每月支出統計
4. 設定預算提醒
## 使用者操作:
1. 開啟應用 → 看到主畫面
2. 點擊「新增」→ 選擇收入/支出
3. 輸入金額和類別 → 快速儲存
4. 查看統計圖表 → 了解消費習慣
## 成功標準:
- 記錄一筆支出在 30 秒內完成
- 支援離線使用
## 範圍外:
- 不做投資理財功能
- 不支援多人協作
- 不包含銀行帳戶連結
/plan 指令:制定「如何」實作
/plan 指令根據 /specify 階段的需求,制定具體的技術方案和架構設計。
/plan 個人記帳應用技術實作方案
## 技術架構:
- 前端:Vue.js 3 + Vite 單頁應用
- 資料儲存:本地 IndexedDB
- 圖表:Chart.js 視覺化統計
- PWA:支援離線使用和安裝
## 介面設計原則:
- 極簡風格:主畫面只顯示「新增」按鈕和當月總計
- 一鍵操作:常用分類放在首頁快速按鈕
- 視覺化優先:用圓餅圖和柱狀圖顯示統計
## 安全考量:
- 本地資料加密儲存
- 雲端同步使用 JWT 認證
- 敏感資料不記錄在日誌
**部署策略**:
- 靜態網站部署 Zeabur
- PWA 自動更新機制
- 錯誤監控和分析
/tasks :分解為可執行步驟
/tasks 指令將規格和計劃分解為獨立的、可測試的小任務,每個任務在 2-4 小時內完成。
/tasks 將上述規格和計劃分解為具體開發任務
## 每個任務應該:
- 有明確的驗收標準
- 可以獨立測試
- 標記並行任務 [P]
每個指令使用流程
specify init my-project --ai claude
/constitution → /specify → /plan → /tasks
/implement specs/001-expense-tracker/plan.md
Specify 階段常見錯誤
// bad
過於技術化:「使用 Vue.js 建立 SPA 應用」
// good
專注需求:「讓使用者快速記錄日常支出」
// bad
模糊描述:「要有好的使用者體驗」
// good
具體標準:「記錄一筆支出在 30 秒內完成」
Plan 階段常見錯誤
// bad
忽略非功能需求:只考慮功能實作
// good
全面考慮:效能、安全、可維護性、擴展性
Tasks 階段常見錯誤
// bad
任務太大:「實作完整的前端功能」(需要20小時)
// good
適當切割任務:「實作交易記錄新增功能」(3小時)
// bad
指向不清楚:請按照任務執行
// good
明確指示:「請按照 specs/001-expense-tracker/plan.md 執行任務 」
這三個指令不僅限於特定的 AI 工具,可以在多種 AI 輔助開發工具中使用:
重點是指令的結構化思維,而不是特定的工具。即使在不直接支援這些指令的 AI 工具中,你也可以用相同的格式來組織你的需求描述。
Spec Kit 的三階段指令不只是工具,更是一種思維模式的轉變。透過 /constitution、/specify、/plan、/tasks、/implement 的結構化流程,我們可以:
下次當你要開始一個新專案或新功能時,試試用這三個指令來規劃吧!你會發現開發過程變得更有條理,結果也更符合期望。
記住:好的規格是成功專案的一半,而 Spec Kit 就是幫助我們寫出好規格的最佳工具。