Files
ai-guide/translations/zh-TW/Vibe Coding 零基础教程/10 编程工具/工具实战/Spec-kit:规范驱动开发框架.md
T

237 lines
9.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Spec-kit:規範驅動開發框架
> 讓 AI 按照專業流程開發專案
你好,我是程式設計師魚皮。
在前面的文章中,我們學習了如何用 AI 快速生成程式碼。但你可能會發現,AI 有時候會 「想到哪寫到哪」,生成的程式碼可能不符合預期,或者專案做到一半就亂套了。
有沒有辦法讓 AI 按照專業的流程來開發專案呢?
這篇文章,我會介紹 **Spec-kit**,一個由 GitHub 推出的規範驅動開發框架,讓 AI 像專業程式設計師一樣工作。
讓我們開始吧!
## 一、什麼是 Spec-kit
[Spec-kit](https://github.com/github/spec-kit) 是 GitHub 推出的規範驅動開發(SDD)框架。
什麼是規範驅動開發呢?
傳統開發流程是:想到什麼寫什麼,邊寫邊改,最後再補文件。這樣容易導致需求不明確、程式碼和文件對不上。
而規範驅動開發的思路正好相反:**先把需求寫成規範文件,並且把規範文件當作程式碼的唯一真相來源**。你可以把規範文件理解為 "法律條文",它包含了詳細的需求描述、系統設計和介面定義。AI 必須嚴格遵守這些條文來生成程式碼,確保產出完全符合預期。
![](https://pic.yupi.icu/1/%E6%BC%AB%E7%94%BB%E5%9B%BE4%E5%A4%A7.jpeg)
## 二、快速上手 Spec-kit
讓我通過一個實際例子,帶你快速上手 Spec-kit。
### 1、安裝 Spec-kit
首先打開終端,利用 uvx 命令直接安裝運行 Specify 工具,並初始化一個專案:
```bash
uvx --from git+https://github.com/github/spec-kit.git specify init my-project
```
![](https://pic.yupi.icu/1/image-20260116141308958.png)
選擇你使用的 AI 編程工具,Spec-kit 支援 Claude Code、GitHub Copilot 等幾乎所有主流編程工具。這裡我選 Claude Code
![](https://pic.yupi.icu/1/image-20260116141507190.png)
根據作業系統選擇腳本類型,Windows 選下面的,其他選上面的:
![](https://pic.yupi.icu/1/image-20260116141537030.png)
執行完這個命令後,會在當前目錄下創建一個 `my-project` 資料夾:
![](https://pic.yupi.icu/1/image-20260116141613246.png)
資料夾裡面包含了這些核心文件:
- `.specify/memory/constitution.md`:專案的基本準則和約定
- `.specify/scripts/`:一些可執行腳本
- `.specify/templates/`:模板文件
- `.claude/commands/`:定義了一套內建的斜槓命令,讓你在 AI 編程工具中可以直接調用
![](https://pic.yupi.icu/1/image-20260116142528820.png)
初始化程式還給了我們一些指引,告訴我們接下來如何運用這些命令來開發專案。
![](https://pic.yupi.icu/1/image-20260116141715310.png)
用 Claude Code 打開這個專案資料夾,就可以在對話中使用定義好的命令了。
![](https://pic.yupi.icu/1/image-20260116142740271.png)
### 2、標準化開發流程
接下來就是標準化的開發流程,參考 [官方文件](https://github.com/github/spec-kit),主要分為 7 個步驟:
#### 1Constitution 制定專案準則
運行 `/speckit.constitution` 命令,定義專案的基本原則、程式碼規範、效能標準等。這是專案的 "憲法",後續所有開發都要遵守。
比如:
```markdown
/speckit.constitution 禁止使用藍紫漸變色風格的 UI
```
💡 如果你要做中文專案,最好在制定專案準則時就明確告訴 AI 「整個網站使用中文」。
![](https://pic.yupi.icu/1/image-20260116160508054.png)
AI 更新了專案準則文件:
![](https://pic.yupi.icu/1/image-20260116160610169.png)
建議每一步我們都用 Git 提交一個版本,這樣出了問題後能及時回滾,也便於我們看到每一步改動的文件。
![](https://pic.yupi.icu/1/image-20260116160745548.png)
#### 2Specify 編寫功能規範
運行 `/speckit.specify` 命令,描述要做什麼功能、為什麼做、用戶需求是什麼。比如:
```markdown
/speckit.specify 我想做個【自動提醒我喝水的網站】
```
![](https://pic.yupi.icu/1/image-20260116161231223.png)
AI 為這次的需求創建了一個新的 Git 分支,防止污染現有專案。在這個分支下創建了一個需求規格文件(spec.md) + 一個需求檢查文件(requirements.md)。
![](https://pic.yupi.icu/1/image-20260116161307642.png)
需求規格文件非常詳細,還包含了邊緣測試用例,針對用戶各種可能的操作進行處理。
![](https://pic.yupi.icu/1/image-20260116161926017.png)
需求檢查文件中記錄了 AI 對於需求的理解,打勾表示 AI 理解並確認了:
![](https://pic.yupi.icu/1/image-20260116161500358.png)
#### 3)Clarify 釐清不明確的地方(可選)
如果你發現需求檢查文件中有的條目沒有打勾,那你需要通過 Clarify 命令來讓 AI 引導你進一步明確需求,直到所有的條目都打上勾。
運行 `/speckit.clarify` 命令,AI 會提出結構化的問題,讓你來回答。從而幫你填補需求中的空白,比如邊界情況、錯誤處理等。
![](https://pic.yupi.icu/1/image-20260116162702812.png)
#### 4Plan 制定技術方案
運行 `/speckit.plan` 命令,讓 AI 決定用什麼技術棧、系統架構、資料模型、API 介面等。
![](https://pic.yupi.icu/1/image-20260116163506902.png)
制定技術方案完成,這次生成了一大堆文件,簡單了解一下:
- CLAUDE.md 專案開發指南,記錄技術棧和專案結構,用於指導 Claude Code 接下來如何開發
- quickstart.md 快速入門指南,包含 6 個實施階段和部署方案
- plan.md 實施方案,定義了純客戶端架構、儲存策略、憲法合規性檢查等
- data-model.md 資料模型設計,定義了 4 個核心實體(提醒設定、水量日誌、每日進度、歷史記錄)和儲存結構
- research.md 技術研究文件,記錄了 8 項關鍵技術決策
- contracts/api-contract.md API 介面文件
![](https://pic.yupi.icu/1/image-20260116164021646.png)
接下來,我們就可以準備開發實現了。
![](https://pic.yupi.icu/1/image-20260116163553725.png)
#### 5Tasks 拆解任務
運行 `/speckit.tasks` 命令,把計劃拆解成可執行的任務列表,並標註依賴關係和優先級。
![](https://pic.yupi.icu/1/image-20260116164537006.png)
生成了一個任務列表文件,每一步要做什麼都非常清晰:
![](https://pic.yupi.icu/1/image-20260116164612533.png)
#### 6Analyze 分析檢查(可選)
運行 `/speckit.analyze` 命令,檢查規範、計劃、任務是否完整一致,提前發現設計缺陷。
![](https://pic.yupi.icu/1/image-20260116164936733.png)
可以看到,AI 沒有檢查出問題,還讓我自信地進行下一步,真爽死了!
#### 7Implement 執行實現
最後,運行 `/speckit.implement` 命令,讓 AI 按照任務列表生成程式碼。
![](https://pic.yupi.icu/1/image-20260116170006815.png)
大功告成,看一下效果~
![](https://pic.yupi.icu/1/image-20260116170146827.png)
因為我這裡始終沒有提到使用中文輸出,所以網站內容都是英文的,不過我覺得效果還可以。
## 三、Spec-kit 的優缺點
到這裡,我們已經學會了如何用 Spec-kit 開發完整專案,再複習一下完整流程:
![](https://pic.yupi.icu/1/%25E6%25BC%25AB%25E7%2594%25BB%25E5%259B%25BE5%25E5%25A4%25A7.jpeg)
即使不用 Spec-kit,我們開發完整專案時也可以人工遵循這些步驟。
這種模式最大的好處是 **對齊**。所有人都基於同一份清晰的規範文件工作,大家對需求的理解高度一致,既減少了溝通中的誤解,又能確保程式碼品質。
不過缺點也很明顯,對於小專案,本來直接寫程式碼幾分鐘就能搞定了,上面這套流程走下來差不多要半個小時!
所以這套流程比較適合團隊從 0 開始做完整的新專案,雖然流程比直接寫程式碼慢一些,但能大大降低返工的風險,長遠來看反而更高效。
## 寫在最後
看到這裡,相信你已經對 Spec-kit 有了基本的了解。
**Spec-kit 不是萬能的,但在合適的場景下,它能幫你大幅提升專案品質。**
如果你正在做大型專案、需要團隊協作、對程式碼品質要求高,那麼可以試試 Spec-kit。但如果你只是想寫個簡單的腳本或者快速驗證一個想法,直接讓 AI 生成程式碼會更快。
選擇合適的工具,才能事半功倍。
在接下來的文章中,我會繼續介紹其他規範化開發工具,幫你找到最適合自己的開發方式。
## 推薦資源
1)魚皮 AI 導航網站:[AI 資源大全、最新 AI 資訊、免費 AI 教程](https://ai.codefather.cn)
2)編程導航學習圈:[學習路線、編程教程、實戰專案、求職寶典、交流答疑](https://www.codefather.cn)
3)程式設計師面試八股文:[實習/校招/社招高頻考點、企業真題解析](https://www.mianshiya.com)
4)程式設計師寫履歷神器:[專業模板、豐富例句、直通面試](https://www.laoyujianli.com)
51 對 1 模擬面試:[實習/校招/社招面試拿 Offer 必備](https://ai.mianshiya.com)