GitHub 開源的規範驅動開發工具包,通過結構化的規範和計畫引導 AI 編碼助手生成高品質代碼

MITShellspec-kitgithub 42.4k Last Updated: October 23, 2025

GitHub Spec Kit 專案詳細介紹

專案概述

GitHub Spec Kit 是由 GitHub 開源的一款規範驅動開發(Spec-Driven Development, SDD)工具包。它為 AI 編碼助手提供了一套結構化的工作流程,透過先編寫詳細規範再生成程式碼的方式,改變了傳統的「先編碼後寫文件」的開發模式。

專案地址: https://github.com/github/spec-kit

核心理念

什麼是規範驅動開發?

規範驅動開發是一種以規範(Specification)為核心的軟體開發方法論,其核心思想是:

  • 規範優先: 在編碼之前先建立詳細的產品需求文件(PRD)和技術實作計畫
  • 規範即真相: 規範成為專案的單一真相來源(Single Source of Truth)
  • 動態演進: 規範不是靜態文件,而是隨專案演進的「活文件」

為什麼需要 Spec Kit?

在使用 AI 編碼助手(如 Claude Code, GitHub Copilot, Gemini CLI)時,常見問題包括:

  1. 模糊的輸入導致錯誤的輸出: AI 助手只能根據提示詞生成程式碼,缺乏專案整體理解
  2. 假設性編碼: AI 可能做出不符合實際需求的假設
  3. 缺乏架構約束: 生成的程式碼可能與現有系統架構不匹配
  4. 品質不一致: 沒有統一標準,程式碼品質參差不齊

Spec Kit 透過提供結構化框架解決這些問題,確保 AI 助手能夠準確理解專案意圖並生成高品質程式碼。

核心元件

1. Specify CLI

Specify CLI 是一個基於 Python 的命令列工具,用於快速初始化專案的 SDD 鷹架。

安裝方式:

# 使用 uvx 安裝(推薦)
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>

# 或者持久化安裝
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

主要功能:

  • 檢查已安裝的工具(git, claude, gemini, code, cursor-agent 等)
  • 自動下載適配的模板文件
  • 初始化專案的 SDD 結構
  • 支援多種 AI 編碼助手

使用範例:

# 初始化新專案並指定 AI 助手
specify init my-project --ai claude
specify init my-project --ai copilot
specify init my-project --ai gemini

# 在目前目錄初始化
specify init . --ai claude
specify init --here --ai copilot

# 強制合併到非空目錄
specify init . --force --ai claude

# 跳過 Git 初始化
specify init my-project --ai gemini --no-git

2. 模板和輔助腳本

Spec Kit 提供了一套完整的模板系統,包括:

Constitution.md (專案憲章)

專案的基本原則和不可協商的準則,例如:

  • 測試方法要求
  • 架構約定
  • 程式碼風格規範
  • 技術棧選擇

這是一個強大的工具,幫助組織建立「有主見的技術棧」。

規範模板

定義了規範文件應該包含的內容結構。

技術計畫模板

規定了技術實作計畫的格式和必需要素。

任務分解模板

將大型功能拆解為可執行的小任務。

輔助腳本

位於 powershellbash 資料夾中,用於確保 SDD 鷹架的一致性應用。

工作流程

Spec Kit 遵循四步開發流程:

步驟 1: 定義規範 (/specify)

使用 /specify 命令提供高層次的專案描述,重點關注「做什麼」和「為什麼做」,而不是技術細節。

範例:

/specify 
建構一個任務管理應用程式 Taskify,支援:
- 使用者認證
- 即時協作
- 行動端支援
- 專案建立和任務分配
- Kanban 看板追蹤進度

AI 編碼助手會生成完整的產品規範文件(PRD),包括:

  • 專案動機和目標
  • 核心功能描述
  • 使用者故事
  • 非功能性需求
  • 驗收標準

步驟 2: 制定技術計畫 (/plan)

使用 /plan 命令提供高層次的技術方向,AI 會生成詳細的技術實作計畫。

範例:

/plan
使用 React + TypeScript 前端
Node.js 後端
PostgreSQL 資料庫

生成的技術計畫包括:

  • 系統架構設計
  • 技術棧選擇理由
  • 資料模型設計
  • API 設計
  • 安全考量
  • 效能最佳化策略

步驟 3: 任務分解 (/tasks)

/tasks

將技術計畫分解為可執行的小任務,每個任務包括:

  • 任務描述
  • 依賴關係
  • 預期產出
  • 驗收條件

步驟 4: 實作 (/implement)

/implement

AI 編碼助手根據規範、計畫和任務列表生成程式碼,並遵循測試驅動開發(TDD)原則。

核心特性

1. 跨 AI 助手相容

Spec Kit 支援多種主流 AI 編碼助手:

  • Claude Code (Anthropic)
  • GitHub Copilot
  • Cursor
  • Gemini CLI (Google)
  • Windsurf
  • Qwen Code
  • OpenCode
  • Codex
  • 以及更多...

2. 測試驅動開發整合

內建 TDD 支援,確保:

  • 每個功能都有對應的測試
  • 優先使用真實環境測試而非模擬
  • 合約測試(Contract Tests)在實作前必須完成

3. 審查與驗收清單

每個階段都有明確的驗收標準,包括:

  • 規範是否完整?
  • 技術計畫是否可行?
  • 任務是否可獨立執行?
  • 程式碼是否通過所有測試?

4. 迭代最佳化機制

支援在任何階段返回修改:

  • 規範不清晰?更新規範
  • 架構需要調整?修改技術計畫
  • 任務太大?重新分解

適用場景

1. 綠地專案 (Zero-to-One)

從零開始的新專案,透過提前規劃避免 AI 生成通用化解決方案。

2. 功能擴展 (N-to-N+1)

為現有複雜系統添加新功能,這是 Spec Kit 最強大的應用場景:

  • 明確新功能與現有系統的互動方式
  • 編碼架構約束確保程式碼風格一致
  • 讓新程式碼感覺像原生功能而非「修補程式」

3. 遺留系統現代化

重構遺留系統時:

  • 在現代規範中捕捉核心業務邏輯
  • 設計全新架構
  • 讓 AI 從頭重建系統,不帶技術債

專案結構範例

使用 Specify CLI 初始化後的專案結構:

my-project/
├── .specify/              # Spec Kit 設定和模板
│   ├── templates/         # 規範、計畫、任務模板
│   ├── scripts/           # 輔助腳本
│   └── config.json        # 設定檔
├── constitution.md        # 專案憲章
├── spec.md                # 產品規範文件
├── plan.md                # 技術實作計畫
├── tasks/                 # 任務列表
│   ├── task-001.md
│   ├── task-002.md
│   └── ...
└── src/                   # 原始碼目錄

實際案例: Taskify 專案

Spec Kit 官方提供了一個完整的範例專案 Taskify,展示了如何使用規範驅動開發建構一個 Kanban 風格的專案管理工具。

功能特性:

  • 5個預設使用者,無需密碼登入
  • 多專案管理
  • Kanban 看板視圖
  • 拖曳式任務管理
  • 任務分配與狀態追蹤
  • 評論功能(只能編輯/刪除自己的評論)
  • 目前使用者任務高亮顯示

開發流程:

  1. 使用 /specify 命令描述 Taskify 的需求
  2. AI 生成詳細的產品規範
  3. 使用 /speckit.clarify 進行細節澄清
  4. 使用 /plan 生成技術實作計畫
  5. 驗證審查與驗收清單
  6. 生成並執行任務

優勢與價值

對開發者的價值

  1. 減少猜測: 明確的規範消除歧義
  2. 提高品質: 結構化流程確保程式碼品質
  3. 便於協作: 規範成為團隊溝通的共同語言
  4. 易於維護: 文件和程式碼同步演進

對團隊的價值

  1. 統一標準: 透過 Constitution 建立團隊規範
  2. 知識沉澱: 規範和計畫成為可複用的資產
  3. 減少返工: 提前規劃減少實作階段的問題
  4. 可追溯性: 清晰的決策記錄

對 AI 助手的價值

  1. 上下文理解: 完整的規範提供充足的上下文
  2. 約束引導: 技術計畫提供架構約束
  3. 任務聚焦: 小粒度任務讓 AI 更專注
  4. 品質保證: 內建的驗收標準指導程式碼生成

局限性與注意事項

1. 學習曲線

對小型簡單專案可能顯得過於繁瑣,需要權衡投入產出比。

2. 實驗性質

Spec Kit 仍處於實驗階段,GitHub 團隊明確表示還有很多問題需要回答。

3. 模板靈活性

內建模板基於 GitHub 團隊的最佳實踐,但可能需要根據組織需求調整。

4. 現有專案整合

目前主要面向新專案,對現有專案的支援還在探索中。

社群與生態

相關專案

  • SpecLang: GitHub 2023年的研究專案,探索自然語言規範作為程式碼生成的主要來源
  • AWS Kiro: AWS 的「代理式」IDE,讓 AI 直接從規範建構軟體
  • Codeplain: 使用專用規範語言 Plain 的新創專案
  • Tessl: 提供規範驅動框架和註冊表的平台

社群回饋

社群對 Spec Kit 的主要討論點:

  1. 標準化需求: 使用者希望建立共享框架,避免 AI 輔助開發的碎片化
  2. 跨團隊協作: 建議支援跨儲存庫共享規範和產物
  3. 自動生成: 希望能從現有程式碼庫自動生成 Constitution
  4. 現有專案支援: 呼籲更好地支援已開發專案的整合

取得支援

總結

GitHub Spec Kit 代表了 AI 輔助軟體開發的一個重要方向:從「即興編碼」(Vibe Coding)轉向「有計畫的建構」。透過提供結構化的規範驅動開發框架,它幫助開發者和 AI 助手建立了更有效的協作模式。

雖然還處於實驗階段,但 Spec Kit 已經展示了其在複雜專案開發中的價值。隨著工具的不斷完善和社群的持續貢獻,規範驅動開發有望成為 AI 時代軟體工程的重要實踐方法。


授權條款: MIT License

最新版本: 請造訪 https://github.com/github/spec-kit/releases 取得最新發布版本

Star History Chart