規格驅動開發指南
語言: English | 繁體中文
版本: 1.0.0 最後更新: 2025-12-30 適用範圍: Claude Code Skills
目的
此技能引導您完成規格驅動開發 (SDD),確保變更在實作前經過規劃、記錄和批准。
快速參考
SDD 工作流程
code
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 提案 │───▶│ 審查 │───▶│ 實作 │
└──────────────┘ └──────────────┘ └──────────────┘
│
▼
┌──────────────┐ ┌──────────────┐
│ 封存 │◀───│ 驗證 │
└──────────────┘ └──────────────┘
工作流程階段
| 階段 | 說明 | 產出 |
|---|---|---|
| 提案 | 定義變更內容與原因 | proposal.md |
| 審查 | 利害關係人批准 | 批准記錄 |
| 實作 | 執行已批准的規格 | 程式碼、測試、文件 |
| 驗證 | 確認實作符合規格 | 測試結果 |
| 封存 | 關閉並封存 | 封存的規格及連結 |
核心原則
| 原則 | 說明 |
|---|---|
| 規格優先 | 沒有批准的規格就不能進行功能變更 |
| 工具優先 | 有 SDD 工具時優先使用工具指令 |
| 方法論 > 工具 | SDD 可搭配任何工具或手動流程運作 |
「規格優先」的例外情況
- •緊急修復(先恢復服務,之後再補文件)
- •瑣碎變更(錯字、註解、格式調整)
提案範本
markdown
# [SPEC-ID] 功能標題 ## 摘要 簡要描述提案的變更。 ## 動機 為什麼需要這個變更?解決什麼問題? ## 詳細設計 技術方案、受影響的元件、資料流程。 ## 驗收標準 - [ ] 標準 1 - [ ] 標準 2 ## 相依性 列出對其他規格或外部系統的相依性。 ## 風險 潛在風險及緩解策略。
詳細指南
完整標準請參考:
AI 優化格式(節省 Token)
AI 助手可使用 YAML 格式檔案以減少 Token 使用量:
- •基礎標準:
ai/standards/spec-driven-development.ai.yaml
與其他標準的整合
與提交訊息整合
在提交訊息中引用規格 ID:
code
feat(auth): implement login feature Implements SPEC-001 login functionality with OAuth2 support. Refs: SPEC-001
與 Check-in 標準整合
為規格提交程式碼前:
- • 規格已批准
- • 實作符合規格
- • 測試涵蓋驗收標準
- • PR 中引用規格 ID
與程式碼審查整合
審查者應驗證:
- • 變更符合已批准的規格
- • 沒有超出規格的範圍擴張
- • 規格驗收標準已達成
範例
✅ 良好做法
markdown
# SPEC-001 新增 OAuth2 登入 ## 摘要 新增 Google OAuth2 登入,讓使用者可以用 Google 帳號登入。 ## 動機 - 減少新使用者註冊的摩擦 - 不儲存密碼以提升安全性 ## 驗收標準 - [ ] 使用者可以點擊「使用 Google 登入」按鈕 - [ ] 新使用者自動註冊 - [ ] 現有使用者可連結 Google 帳號
❌ 不良做法
markdown
# 新增登入 新增登入功能。
- •缺少規格 ID
- •沒有動機說明
- •沒有驗收標準
常見 SDD 工具
| 工具 | 說明 | 指令範例 |
|---|---|---|
| OpenSpec | 規格管理 | /openspec proposal, /openspec approve |
| Spec Kit | 輕量規格追蹤 | /spec create, /spec close |
| 手動 | 無工具,檔案式 | 手動建立 specs/SPEC-XXX.md |
最佳實踐
建議做法
- •✅ 保持規格專注且原子化(一個規格一個變更)
- •✅ 包含清晰的驗收標準
- •✅ 將規格連結到實作 PR
- •✅ 完成後封存規格
避免做法
- •❌ 在規格批准前開始寫程式
- •❌ 實作期間修改範圍但不更新規格
- •❌ 讓規格處於懸置狀態(務必關閉或封存)
- •❌ 跳過驗證步驟
設定偵測
此技能支援專案特定設定。
偵測順序
- •檢查工作區是否有 SDD 工具(OpenSpec、Spec Kit 等)
- •檢查
CONTRIBUTING.md中的規格工作流程文件 - •若無找到,預設使用手動檔案式工作流程
首次設定
若未找到設定:
- •詢問使用者:「此專案尚未設定 SDD。您要設定 specs 目錄嗎?」
- •建議在
CONTRIBUTING.md中記錄:
markdown
## 規格驅動開發 我們對所有非瑣碎的變更使用規格驅動開發。 ### 流程 1. 在 `specs/` 目錄建立提案 2. 取得團隊負責人批准 3. 實作並在 PR 中引用規格 4. 合併後封存規格 ### 規格範本 請參考 `specs/TEMPLATE.md`
相關標準
版本歷史
| 版本 | 日期 | 變更 |
|---|---|---|
| 1.0.0 | 2025-12-30 | 初始發布 |
授權
此技能採用 CC BY 4.0 授權。