前言

在現代軟體開發中,「需求與實作脫節」是最常見的痛點之一。
規格文件寫得再詳細,開發人員與測試團隊仍常出現理解落差。
Specification-Driven Development(SDD) 的理念,
正是希望「讓規格本身成為系統的一級公民」,
透過可執行的規格(Executable Specifications)驅動整個開發流程。

GitHub 於 2025 年推出的 Spec-Kit
提供了落實 SDD 的實際工具與標準,使開發團隊能以明確的規格為核心,
自動化地生成測試、文件與開發任務。


什麼是 Specification-Driven Development(SDD)

Specification-Driven Development(規格驅動開發) 是一種以「可執行規格」為中心的開發方法。
不同於 TDD(測試驅動開發)從測試出發、BDD(行為驅動開發)從使用者故事出發,
SDD 強調 「以規格定義系統行為,並由此推導出程式碼與測試」

🔹 簡單來說:SDD = 把規格變成能直接驅動程式的文件。

與其他方法的差異

方法論 驅動來源 關注焦點 文件角色 自動化能力
TDD 測試案例 程式正確性 輔助 ✅ 測試自動化
BDD 使用者行為 使用體驗 溝通橋樑 ⚙️ 部分可自動化
SDD 系統規格 一致性與完整性 核心文件 🚀 文件、測試與任務皆可生成

SDD 的核心思想是:規格 → 驅動 → 測試、程式、任務、文件。
規格不再只是附屬文件,而是成為專案中最具權威性的來源(Single Source of Truth)。


GitHub Spec-Kit 工具介紹

Spec-Kit 是 GitHub 推出的開源套件,
提供一個完整的 Specification Schema 與工具鏈
讓開發者能夠將專案中的 spec/ 資料夾轉化為自動化開發的中心。

🔧 Spec-Kit 的結構

每一份 *.spec.yaml 都可以定義:

  • 介面(API Inputs / Outputs)
  • 商業規則與條件(Rules, Preconditions, Postconditions)
  • 使用情境(Scenarios)
  • 測試期望(Expectations)

Spec-Kit 的運作流程

  1. 撰寫規格 (.spec.yaml)

    • 定義 Use Case、Entity、Contract。
  2. 自動生成文件與測試

    • 透過 Spec-Kit CLI,自動轉換成 Markdown 說明與測試腳本。
  3. 開發與驗證

    • 開發者依規格實作功能,測試由規格自動對應。
  4. 版本控制與審核

    • 所有規格皆可透過 GitHub Pull Request 審查與追蹤。

為何 SDD 適合與 AI 結合 🤖

SDD 的核心資產是「結構化規格」,而這正是 AI 模型最能理解、生成與推理的資料型態。 因此,AI 與 SDD 的結合能產生非常強大的協同效益:

1️⃣ AI 能「閱讀規格」

AI 可以解析 .spec.yaml 內容,自動生成對應的:

  • API 範例呼叫
  • 測試樣本(例如 Playwright / Jest)
  • 文件摘要與技術解釋
  • 甚至代碼骨架(Code Stub)

2️⃣ AI 能「生成規格」

反向應用上,AI 可以根據:

  • 使用者故事(User Story)
  • Figma / Flow 設計稿
  • API 請求紀錄 自動生成初版的 SDD 規格,成為開發起點。

3️⃣ 結合 CI/CD,形成智慧開發循環

當專案使用 SDD + Spec-Kit 時,AI 可:

  • 自動審查規格變更是否違反既有邏輯
  • 在 Pull Request 中生成變更摘要
  • 分析 Spec 與實作的落差(Spec Drift)

這樣的工作流讓「AI 不是輔助,而是 SDD 流程的一部分」。


實作範例(概念)

# spec/use-cases/create-user.spec.yaml
name: Create User
description: 建立新使用者帳號
preconditions:
  - email 不得重複
  - 密碼需符合安全性規範
postconditions:
  - 新使用者被儲存至資料庫
  - 系統回傳 201 狀態
scenarios:
  - name: Create user successfully
    input: { email: "test@example.com", password: "StrongPass123!" }
    expect: { status: 201, userId: not_null }

透過 Spec-Kit:

  • 自動生成測試與 API 文件
  • AI 模型可根據此 YAML 自動撰寫端到端測試程式
  • 甚至反饋出「邏輯缺漏」或「需求矛盾」

SDD 在團隊中的實踐建議

階段 實踐方式 工具
需求規格撰寫 使用 .spec.yaml 定義功能 Spec-Kit
文件產生 自動生成 Markdown、HTML 文件 Spec-Kit CLI
測試驗證 由 Spec-Kit 生成對應測試 Jest / Playwright
智慧輔助 AI 解析規格並生成代碼 / 審查變更 ChatGPT / Copilot
持續整合 在 CI 中自動驗證規格一致性 GitHub Actions

結語

SDD 並非要取代 TDD 或 BDD,而是 將規格推升為開發的起點與知識中心。 藉由 Spec-Kit 所提供的標準化工具鏈, 再結合 AI 的自然語言理解與程式生成能力, 開發團隊能打造出真正「規格驅動、AI 協作」的新一代開發流程。

「規格不再只是設計書,而是智慧開發的起點。」


參考資料