過往我們在開發軟體的時候,很容易發生文件跟不是程式碼的狀況,文件只是過往的傳說,往往只能參考而已。當有了 AI 以後,我們透過 AI 協作來產生規格,讓文件與程式碼更靠近了。而近期 Github 推出的 Spec-Kit,讓你也可以透過 Spec-Driven Development 的方式進行軟體開發,剛好最近連假有空,就來嘗試一下這種開發方式。
環境設定
首先就是要先安裝 SDD
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
安裝好後,建立新專案
specify init project_name #建立新專案
建立新專案的同時,順便選擇使用的 AI Assistant ,像我自己就是選用免費的 gemini 來做測試
切換到剛才建立的資料夾,啟動 gemini
我們可以透過輸入關鍵字,看看有沒有出現指令,如果沒有的話就表示當下資料夾的位置不對,或是 gemini 版本過舊需要更新。
像我自己前一次測試 gemini 是好幾個月前的事情了,舊版本根本吃不到操作 SDD 命令,當然也就無法執行。
npm install -g @google/gemini -cli to update #更新 Gemini 版本
SDD 命令
前置作業完畢後,我們再來了解一下各個命令的用途
Command | 說明 |
---|---|
/constitution | 建立或更新專案的治理原則與開發規範 |
/specify | 定義你要建置的內容 (需求與使用者故事) |
/clarify | 在規劃前釐清未明確的部分 (必須在 /plan 前執行,除非明確跳過;以前稱為 /quizme) |
/plan | 依照選定的技術堆疊建立技術實作計畫 |
/tasks | 產出可執行的實作任務清單 |
/analyze | 進行跨文件一致性與覆蓋率分析 (在 /tasks 後、/implement 前執行) |
/implement | 依照計畫執行所有任務並建置功能 |
使用心得
在這些命令中,我自己的使用順序為:specify -> plan -> tasks -> implement
如果規格有需要釐清的部分,AI 可能會詢問你相關的問題,等你回答完畢後才會繼續進行下一個步驟,而你也可以透過 /clarify 來檢視需求是否明確。
由於我並沒有訂閱 Google AI 的服務,一開始使用的模型為 gemini-2.5-pro 但是用到一半,就會強迫切換到 gemini-2.5-flash 了。
雖然每個模型都可以完成任務,但是因為模型特性的關係,效果就會有很大的差異。
我使用同一份規格,模型使用 gemini-2.5-flash 多次測試的狀況下,沒有辦法每次都達到同樣的結果,有時候會東錯一點、西錯一點,錯到讓我都懷疑是我規格寫的有這麼差嗎?雖然是一個很好鍛練寫規格的方法,但是有聰明的模型幹嘛要用愚蠢的模型,實際要使用的話,課金用聰明的模型,才是最正確的選擇。
0 意見:
張貼留言