用Claude Code搭配 spec-kit 開發程序體驗
前言
在 AI 輔助開發的浪潮中,如何讓 AI 更好地理解我們的意圖並生成高質量的代碼,一直是開發者關注的焦點。GitHub 推出的 spec-kit 工具為我們提供了一種全新的「規格驅動開發」(Spec-Driven Development, SDD)方法論,讓開發過程更加結構化和可控。
Spec Kit 到底解決了什麼「老大難」?
1. 減少「意圖走樣」
傳統流程裡,「需求→設計→實現」每一環都可能「走樣」。SDD 的思路是:讓規格可執行,由規格派生實現計劃和測試,代碼只是「最後一公里」。遇到偏差,先改規格和計劃,再讓實現「再生一次」去對齊。
2. 把「文檔變廢」為「文檔生碼」
他們把「規格生實現」的節拍拆得很細:
/specify把一句話想法生成結構化規格/plan把規格翻譯成技術架構與設計文檔/tasks自動把設計切成可並行執行的任務清單(會標記 [P] 並行)- 最後
/implement按任務和 TDD 節奏去落地
官方甚至用「即時通訊功能」為例,類比傳統要花 ~12 小時的文書工作,通過三條命令在 ~15 分鐘內把規格、計劃、數據模型、合約、測試場景和任務都生成齊全(當然後續還要補充/驗證,但開局就很穩)。
3. 降低「過度設計」的慣性
Spec Kit 不是「放飛自我」的生成,而是用鐵律**(Constitution)+ 模板 Gate** 給 LLM「上護欄」。比如簡單性 Gate、反抽象 Gate、集成優先 Gate,明確限制項目數、反對無謂封裝、強調先做真實環境的契約測試等,從模板層面就把「工程潔癖」遏住。這些「原則」是不可協商的底線,帶來跨時間、跨模型的一致性。
Spec Kit 的核心特性
✅ 一套固定命令,拉齊整個鏈路
從確立團隊原則(/constitution),到「說清楚要做什麼」(/specify),到「把不清楚的先問清」(/clarify),再到「定技術方案」(/plan)、「自動拆任務」(/tasks)、「一致性分析」(/analyze)、「落地實現」(/implement)——這條流水線在 README 的「Get started」與 Quick Start 裡都有演示,CLI 安裝方式也給到了 uv tool 或 uvx 兩種選擇。
✅ 跨 Agent 工作:Claude/Cursor/Copilot/Qwen…
Spec Kit 支持多種 AI Coding Agent(並且針對不同 Agent 生成對應的命令文件/目錄結構),這意味著你可以在熟悉的工具裡跑同一流程,且保持結構一致(AGENTS.md 列了支持矩陣與目錄約定)。README 裡也列了「Supported AI Agents」表格,順帶標註了個別工具的限制(例如部分 CLI 對自定義參數支持有限)。
✅ 模板即「軟規範」:讓 LLM 寫得更像工程師
規格模板會強制標記不確定項 [NEEDS CLARIFICATION],不允許它「合理想象」;同時明確「規格寫 WHAT/WHY,禁止 HOW(技術細節)」,逼著模型維持正確抽象層級。計劃模板再用一堆 Gate 把工程複雜度「防抖」一次,這些做法在文檔中被總結為「模板驅動質量」。
✅ 把 TDD 寫進流程
任務模板把順序寫死:先寫契約/集成測試並確認失敗,再寫實現(「紅-綠-重構」節奏內化到命令/模板)——這是 Spec Kit 的「工程底線」,而且與「集成優先」的原則一致,鼓勵使用真實依賴而非一味打樁。
✅ 「Clarify/Analyze」把風險暴露在編碼前
Changelog 裡能看到近期新增了 /clarify(自動追問關鍵不確定性並入檔)與 /analyze(跨規格/計劃/任務/鐵律的差異報告)這兩步,把「返工」前置為「提問與體檢」,而不是寫完再返修。
跟「普通的讓 AI 直接生成代碼」相比的優勢
一句話:少拍腦袋,多有證據。
- 鏈路可追踪:每個技術選擇都能追溯到規格裡的具體需求,規格/計劃/研究/合約是活文檔,與代碼同分支、同演進
- 團隊協作友好:規格是團隊共識對象,而不是提示詞的「黑箱藝術」;「Clarifications」有跡可循,方便評審與補齊
- 抗噪聲:模板把 LLM 容易「過擬合到實現細節」的毛病卡住了(例如明確「禁止 HOW」),降低誤差傳播
- 可落地:不是 PPT 流程。官方示例從命令到目錄結構再到腳本都給全了,實踐門檻很低
真實開發會是什麼體驗?
想象一下這樣的節奏:
訂「鐵律」:先用
/constitution寫定團隊的工程原則(例如「簡單優先、反抽象、集成優先、測試先行」),這會成為之後每個計劃文檔的檢查 Gate(不通過就打回)說清楚做什麼:用
/specify把用戶價值、場景、邊界寫清——不寫技術,只寫 WHAT/WHY(模板會校驗)把不清楚的問清楚:
/clarify會生成結構化問題清單並把回答入檔,減少後期「猜」定技術方案:用
/plan把棧、結構、合約、數據模型、Quickstart 測試場景都生成出來,並通過 Gate 校驗一次複雜度與原則一致性自動拆任務:
/tasks讀取 plan 與 contracts/data-model,生成帶並行標記的任務清單(先測後碼)一致性檢查:
/analyze在實現前再跑一遍「對賬單」,發現衝突先改文檔不是先改碼開始實現:
/implement嚴格按任務、按 TDD 順序推進,過程中也會持續回寫狀態文檔,便於復盤與協作
Speckit 全流程使用步驟(完整版)
以下是完整的 8 步 Speckit 工作流程,以「家庭多人 ToDoList 專案」為例:
0. 安裝 Speckit 並初始化
首先,確保你已經安裝了 Speckit。你可以使用以下命令安裝:
| |
進入項目目錄執行以下命令初始化 Speckit:
| |
1. /speckit.constitution - 建立項目鐵律
目的:確立團隊工程原則和不可協商的底線 輸出:constitution.md 文件
| |
2. /speckit.specify - 創建規格文檔
目的:將想法轉化為結構化規格,只描述 WHAT 和 WHY 輸出:spec.md 文件
| |
3. /speckit.clarify - 澄清不確定性
目的:識別並解決規格中的模糊點 輸出:clarifications.md 文件
| |
4. /speckit.plan - 生成技術計劃
目的:將規格轉化為技術架構和實現計劃 輸出:plan.md 文件
| |
5. /speckit.tasks - 自動拆分任務
目的:將計劃分解為可執行的任務清單 輸出:tasks.md 文件
| |
6. /speckit.checklist - 生成檢查清單
目的:創建質量保證和驗收標準 輸出:checklist.md 文件
| |
7. /speckit.analyze - 一致性分析
目的:檢查規格、計劃、任務之間的一致性 輸出:analysis.md 文件
| |
8. /speckit.implement - 開始實現
目的:按照 TDD 原則執行具體實現 輸出:實際代碼和測試
| |
完整使用順序總結
| 步驟 | 命令 | 主要輸出 | 核心目的 |
|---|---|---|---|
| 1 | /speckit.constitution | constitution.md | 建立工程原則 |
| 2 | /speckit.specify | spec.md | 定義需求規格 |
| 3 | /speckit.clarify | clarifications.md | 澄清模糊點 |
| 4 | /speckit.plan | plan.md | 技術架構設計 |
| 5 | /speckit.tasks | tasks.md | 任務分解 |
| 6 | /speckit.checklist | checklist.md | 質量標準 |
| 7 | /speckit.analyze | analysis.md | 一致性檢查 |
| 8 | /speckit.implement | 代碼實現 | TDD 實現 |
上手成本與環境要求
好消息是:上手很輕。你只需要:
- 一台 macOS / Linux /(或 Windows + PowerShell)環境
- Python 3.11+、Git、以及用於協作的一個 AI Coding Agent(Claude Code / Copilot / Gemini CLI 等皆可)
- 使用 uv tool 或 uvx 一行命令初始化即可(可強制選擇腳本類型 sh/ps;也支持「當前目錄初始化」與忽略工具檢查)
如果你已經有偏愛的 Agent,不用換工作方式——Spec Kit 也考慮了跨 Agent 的目錄/命令適配(AGENTS.md 詳細寫了各自約定與工具檢測)。
適合誰?
- 中小團隊/個人開發者:需要快速起盤、又不想犧牲工程質量
- 大中型組織/平台團隊:希望在多項目、多技術棧下保持統一工程治理與「可再生」的實現方式
- 內容/效率愛好者:你要做 Demo、做對比評測或想嘗試「並行解法」,這套「生成多個實現以做決策」的思路也被官方當成實驗目標之一
個人使用建議
把「鐵律」當第一生產力:先定好工程底線,再談技術棧,真的能少走彎路(Gate 會幫你擋很多「未來可期式」的複雜度)
習慣先 Clarify,再 Plan:這一步是把「返工」變「補題面」的關鍵,尤其多人協作時更必要
把「研究(research.md)」當可執行備忘錄:遇到版本/依賴不確定,就讓 Agent 生成研究任務逐條攻克,別放任「模糊棧」進實現
嚴格按 TDD 順序:契約和集成測試先紅再綠,這是 Spec Kit 最硬的護欄之一
實現前跑一遍 /analyze:讓系統幫你找「規格/計劃/任務/鐵律」的矛盾,寧可前置 10 分鐘,也別後置 3 天
一分鐘開始你的第一個項目
方式一:一次安裝,處處可用(推薦)
方式二:臨時使用
| |
初始化後,進到你的 Agent 裡,先跑一發 /constitution,再 /specify、/clarify、/plan、/tasks、/analyze、/implement,就能完整體驗從「意圖→實現」的全鏈路。
安裝 uv 的方法
你可以選擇下面最適合你的一種方法進行安裝。
方法一:官方推薦腳本 (macOS, Linux, Windows)
這是最直接和推薦的安裝方式。
對於 macOS 和 Linux:
| |
對於 Windows:
| |
方法二:使用 pip
如果你已經安裝了 Python 和 pip,可以直接使用 pip 來安裝 uv。
| |
為了獲得最佳性能,建議使用 Python 3.8 或更高版本。
方法三:使用包管理器
如果你習慣使用系統或語言的包管理器,也可以用它們來安裝。
Homebrew (macOS/Linux):
| |
Scoop (Windows):
| |
Cargo (如果你安裝了 Rust 工具鏈):
| |
驗證安裝
安裝完成後,你可以通過運行以下命令來驗證 uv 是否成功安裝並查看其版本:
| |
如果能看到版本號輸出,就說明安裝成功了!✅
執行你的命令
在你成功安裝 uv 之後,你就可以直接運行你提到的命令了:
| |
這個命令的作用是:
uv tool install: 類似於 pipx install,它會將 specify-cli 這個工具安裝到一個獨立的虛擬環境中,避免污染你的全局 Python 環境,同時將其可執行文件路徑添加到系統的 PATH 中,讓你可以在任何地方直接調用它--from git+...: 指定從一個 Git 倉庫來安裝這個包
總的來說,你先用上述任意一種方法把 uv 本身安裝好,然後就可以使用 uv 來安裝其他 Python 工具了。
結語
Spec Kit 的價值不在於「它能不能一鍵出代碼」,而在於它把團隊的「意圖」變成有約束、有證據鏈、可再生的資產。當規格成為「唯一真相」,當測試把「真相」守住,代碼就不再是「手工翻譯」,而是可再生成的「表達」。
如果你也在找一種高質高效、又不放棄工程紀律的 AI 開發方式,Spec Kit 非常值得一試。正如 Linus 所說的「好品味」——有時你可以從不同角度看問題,重寫它讓特殊情況消失,變成正常情況。Spec Kit 正是這樣一個工具,它讓複雜的開發流程變得簡潔而優雅。