- Published on
Github spec-kit 初體驗
GitHub 推出了相關的 SDD (Spec-Driven Development) 套件 ?,相關的 Repo spec-kit ,內容看起來跟 AWS 的 Kiro 主打的 SDD 有點像,之前我也寫了相關的文章「Kiro 初體驗」,有興趣的也可以看一下
相關的 spec-kit 說明,也可以參考官方的部落格「Spec-driven development with AI: Get started with a new open source toolkit」
spec-kit 比較特別的是,可以用在目前主流的 CLI agent 上面:Claude Code
、GitHub Copilot
和 Gemini CLI
,個人感覺就是跟 Kiro 對打的 (聯手其它人把它幹掉 ((誤),不過對我來說的好處是,Claude Code 也可以使用,算是有點賺到了,哈
安裝
使用方式也蠻簡單的,主要的指令是
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>
這樣子的話,它就會建立一個 <PROJECT_NAME>
的資料夾,把相關的所有檔案都幫你先建立好
如果要在現在的資料夾,或是原有的專案的話,可以改成
uvx --from git+https://github.com/github/spec-kit.git specify init --here
相關指令 (command)
它主要有三個自訂的 command 可以用
/specify 指令
使用 /specify
提供高層次的提示,專注於「是什麼」和「為什麼」,描述您想要建立的專案內容,不要描述相關的技術棧
/plan 指令
使用 /plan
根據前面產生的 PRD 文件
提供高層次技術方向,可以說明您的技術棧與架構的選擇,讓 AI 產生詳細的技術實作規劃,和預設的架構和限制
/tasks 指令
使用 /tasks
讓 AI 根據前面的規格和規劃,拆解出可執行的任務清單,提供給後續 AI 實作的內容,然後請您的 AI Agent 來實作該功能
其實一開始在測試的時候,沒有按照這個規則,不過建立出來的內容也是蠻完整的
實測
spec-kit
套件
安裝 一開始的安裝指令
uvx --from git+https://github.com/github/spec-kit.git specify init flutter-todo
如果不指定使用的 AI Agent 的話,一開始就會有選項讓你選擇
選完 AI Agent 後,就會把相關的指令放在專案的資料夾裡面,下面也會有相關的提示跟你說,下一步要怎麼作,相關的指令指引
進到 Claude Code 的畫面,打 /
的話,可以看到有相關的指令可以使用
/specify 指令
下面就請它產一個 flutter 的 todo app
如果要 AI 的回答和文件都要是中文的話,可以一開始就跟它說
過程中它會用它內容的 sh
腳本幫你建立相關的文件,也會先幫你建立相關的 branch
,並且切換過去
/plan 指令
基本上這裡就沒有給什麼特別的說明,就讓它自己產生所有的文件。如果你的技術有相關的需求,可以視情況說明
最後面提到的 憲法
? 好像就是一開始安裝完套件說的 CONSTITUTION.md
吧 ? 不是很確定,不過它沒有幫我產生這個檔案
在這個階段也會把 Claud Code 的
CLAUDE.md
產生出來
/tasks 指令
跟 plan
一樣,沒有給什麼特別的說明,就讓它自己產生所有的文件
比較特別的是,它是 TDD
導向的方式來產生 task
,所以在前面的 Phase
裡面就會先產生測試
而且它會把可以 平行執行
的相關任務,使用特別的方式標記,讓你可以方便的進行
因為重點不在於實作,所以我就沒有把實作的內容寫出來,不過 Repo 我有實作了一個部份
Repo
這是我的測試 Repo spec-kit-sdd-todo-app, 有興趣的可以看一下產生出來的相關文件,和套件的相關 command
所有的文件產生完,差不多是花了 Claude Code 約 1鎂多,應該不到 2鎂
結論
產出來的文件都還蠻完整的,個人覺得跟 Kiro
產生的文件相比,感覺上比較完整一點 ?
比較可惜的是,在實作上,就沒有相關的指令可以使用,我倒是覺得有點可惜
如果再完整一點,有可能跟之前日本的那個套件 Classmethod Tsumiki
一樣,從頭打到尾,可以參考我之前寫的文章「Classmethod Tsumiki:AI 測試驅動開發框架」
整體而言,GitHub 的 spec-kit
在規格文件產生方面表現不錯,特別是支援多種 AI CLI 的整合,讓開發者有更多選擇,作為 SDD
開發流程的起始工具,已經相當實用,不知道官方會不會把 BDD
的相關概念也加進去 XDD
支持創作
如果這篇文章對您有幫助,歡迎透過 贊助連結 支持我持續創作優質內容。您的支持是我前進的動力!
圖片來源:AI 產生