Claude Code 通過 Spec-Kit 實現規格驅動開發

GitHub 推出的 Spec-Kit 嘗試用 SDD(Spec-Driven Development) 的方式,把「規格 → 技術規劃 → 任務拆解」這條鏈路自動化,並且支援多種 AI CLI Agent,包括 Claude Code。

這篇文章會示範如何用 Claude Code + Spec-Kit,從零開始建立一個規格驅動的開發流程。

開發環境


安裝 Cluade

npm install -g @anthropic-ai/claude-code

安裝 Spec-Kit

Spec-Kit 的安裝方式很簡單,直接用 uvx 從 GitHub Repo 拉取:

uvx --from git+https://github.com/github/spec-kit.git specify init "Lab.EventBus.SpecKit"
  • my-sdd-project:會建立一個資料夾,裡面放好 Spec-Kit 的初始檔案
  • 如果要在現有專案中初始化,加上 --here 即可

挑選 cli,或是直接指定 AI Cli

uvx --from git+https://github.com/github/spec-kit.git specify init "Lab.EventBus.SpecKit" --ai claude

 

我在 WSL 下,所以使用 sh

 

 

安裝後的目錄結構如下圖


Spec-Kit 三大指令

Spec-Kit 的核心是三個指令,對應 SDD 的三個階段:

指令作用Claude Code 的角色
/specify撰寫 產品需求文件(PRD),專注「是什麼、為什麼」幫你釐清需求背景與目標
/plan根據 PRD 產生 技術規劃(Tech Plan)幫你決定技術棧、架構、限制
/tasks根據規格與規劃拆解成 可執行任務幫你生成 TDD/BDD 任務清單

實際演練:Task Management Service

這裡我們用 Claude Code + Spec-Kit,做一個簡單的 App。

1. 初始化專案

uvx --from git+https://github.com/github/spec-kit.git specify init "Lab.EventBus.SpecKit"
cd "Lab.EventBus.SpecKit"

Spec-Kit 會建立好資料夾結構,並提示你下一步該做什麼。


2. 撰寫規格(/specify)

語法:

在 Claude Code 中輸入

/specify <需求>

需求,盡量描述清楚:

/specify 建立第一版的 Task Management Platform 集中管的理平台,需要以下 WebAPI 功能
1. 調用端呼叫建立任務 API,API 在 Queue 建立任務資訊
2. 調用端呼叫取出任務 API,API 從 Queue 取出任務資訊,並在資料庫新增任務資訊
3. 調用端呼叫執行任務 API,API 從資料庫取出任務資訊,欄位資訊包含了 Callback API 的位置
4. 調用端使用 HttpClient 呼叫 Callback API
注意:
- 編碼原則要參考 https://github.com/yaochangyu/api.template CLAUDE.md
- 實作的時要從 https://github.com/yaochangyu/api.template 複製出來改,改成符合需求的命名空間
- 文件需要流程圖、有限狀態機、循序圖,使用 mermaid 編寫。

產生 

  1. ./specs/001-task-management-platform/spec.md
  2. 001-task-management-platform 分支

內容包含:

  • 產品目標
  • 使用者故事
  • 功能清單
  • 驗收條件

NOTE:這裡不會跟你互動採集需求,所以必須得靠自己盡可能的描述清楚,這點 Claude Code PM 做得比較好

結果如下圖:

 


3. 技術規劃(/plan)

語法:

/plan <需求>

 

計畫,這裡我把需要注意的事情也填上,確保 AI 按照規則:

/plan 001-task-management-platform
- 編碼原則要參考 https://github.com/yaochangyu/api.template CLAUDE.md
- 實作的時要從 https://github.com/yaochangyu/api.template 複製出來改,改成符合需求的命名空間
- 文件需要流程圖、有限狀態機、循序圖,使用 mermaid 編寫。

 

或者是輸入

/plan 001-task-management-platform

內容可能包含:

  • 技術棧(例如 ASP.NET Core+PostgreSQL)
  • 架構圖
  • API 設計
  • 資料庫 Schema

 

執行畫面如下:

 

NOTE:檢視文件,若有問題直接用對話的方式,修正文件,例如:TDD → BDD


4. 任務拆解(/tasks)

語法:

/tasks <需求>
/tasks 001-task-management-platform

列出可執行的任務,例如:

  • [ ] 建立 Flutter 專案骨架
  • [ ] 實作 Todo Model 與 SQLite 儲存
  • [ ] 寫新增/刪除/完成的 UI 與邏輯
  • [ ] 撰寫單元測試與整合測試

 

執行畫面如下:

 

NOTE:檢視文件,若有問題直接用對話的方式,修正文件


5. 實作(/implement)

語法:

/implement <需求>
/implement 001-task-management-platform

 

或是單一編號

/implement T001

 

執行畫面如下:


心得

這次用 Claude Code + Spec-Kit 的感覺是:

  • 優點
    • 規格、規劃、任務全自動生成,減少遺漏
    • 支援多種 AI CLI Agent,不綁死在單一平台
    • 對 TDD/BDD 友好,任務清單可直接對應測試案例
  • 限制
    • 目前偏向「文件生成」,實作階段還是要自己接手
    • 規格品質取決於你輸入的描述精準度

範例位置

sample.dotblog/AI.SDD/Lab.EventBus.SpecKit at master · yaochangyu/sample.dotblog

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo