# 別再開盲盒式寫代碼:GitHub Spec Kit 如何讓 AI 編程變得靠譜 上週又跟 Claude 來回改了十幾次代碼。 你懂的,那種感覺——明明給了很清楚的需求,AI 卻生成了一堆看起來能跑但完全不是你要的東西。然後你再解釋一次,它又理解偏了。最後花了兩小時,還不如自己手寫來得快。 我開始懷疑,這些 AI 編程助手到底有沒有真的幫到忙,還是只是讓我變成了一個全職的「AI 保姆」? 直到我看到 GitHub 推出了一個叫 Spec Kit 的工具。  ## 問題出在哪? 說實話,問題不在 AI,而在我們自己。 我們習慣了跟人類溝通的方式——「欸,幫我做個登入頁面」、「加個購物車功能」。人類夥伴會理解你沒說出口的那些:你的技術棧是什麼、這個功能要怎麼跟現有系統整合、有哪些邊界條件要考慮。 但 AI 不會。 它就像一個非常聰明但完全不了解你專案背景的外包工程師。你給它什麼,它就做什麼。你沒說清楚的部分?它就自己想像填補。 這就是為什麼我們常常覺得 AI 生成的代碼「很聰明但不實用」。 ## Spec Kit 做了什麼? GitHub 的團隊顯然也遇到了同樣的問題。他們在九月推出的 Spec Kit,本質上是把軟體工程最基本的原則——「先想清楚要做什麼,再動手寫代碼」——用一種 AI 能理解的方式重新包裝。 它不是什麼黑科技,也不是新的 AI 模型。 它就是一套工作流程,一套讓你跟 AI 溝通時「說人話但說得夠清楚」的框架。 Spec Kit 把整個開發過程分成四個階段:  ### 1. Specify(規範階段) 你用自然語言描述你想做什麼,為什麼要做,要達到什麼效果。 重點是「為什麼」,不是「怎麼做」。 AI 會幫你把這些想法轉換成一份正式的規範文件(`spec.md`)。這份文件包含用戶故事、驗收標準、邊界情況——就像你跟產品經理開完會後寫的 PRD,但更技術化。 ### 2. Plan(計劃階段) 有了規範,AI 會根據這份規範生成一個完整的技術實作計劃(`plan.md`)。 這裡會包含技術選型、架構設計、資料模型、API 規劃。它會告訴你「我打算用 Vite + SQLite 來做」、「資料庫結構是這樣設計的」。 你可以在這個階段檢查,確認方向對了再往下走。不用等到代碼寫完才發現「欸不對,我不想用這個框架」。 ### 3. Tasks(任務階段) 計劃確認了,接著 AI 會把大計劃拆成一個個可執行的小任務。 不是那種「建立前端」這麼籠統的任務,而是「建立相簿列表元件」、「實作照片上傳 API」、「新增拖曳排序功能」這種具體到可以直接動手的層級。 ### 4. Implement(實作階段) 到這裡,AI 才真正開始寫代碼。 但它不是一次把所有代碼丟給你,而是按照任務清單,一項一項完成。每完成一項,你可以檢查、測試、調整。出問題?沒關係,只影響這一小塊,改起來也快。 ## 我實際用了一次 看起來很美好對吧?我也半信半疑。 上週末我試著用 Spec Kit 做一個照片管理應用——選這個案例是因為官方文件就是用這個當示範,我想看看能不能複製出同樣的效果。 ### 初始化專案 安裝過程出乎意料的順暢: ```bash uvx --from git+https://github.com/github/spec-kit.git specify init photo-manager ``` 跑完這行命令,它會問你要用哪個 AI 助手。我選了 Claude Code,因為我已經習慣它的對話風格。 幾秒鐘後,專案結構就建好了。打開 VS Code,你會看到一堆 `.claude` 資料夾裡的命令檔案——這些就是 Spec Kit 的「魔法」,預先寫好的提示詞模板。 ### 從 Specify 開始 我在 Claude Code 的對話框裡輸入 `/specify`,然後用大白話描述需求: > 「我想做一個照片管理應用,讓使用者可以建立不同的相簿,上傳照片,並且用拖曳的方式調整照片順序。」 Claude 接手後,生成了一份詳細的 `spec.md`。我打開來看,裡面把我隨口說的需求整理成: - 使用者故事(「身為使用者,我想要建立多個相簿來分類照片」) - 驗收條件(「相簿名稱不可重複」、「照片支援 JPG、PNG 格式」) - 邊界情況(「上傳檔案大小限制」、「拖曳時的順序更新邏輯」) 說真的,這份文件比我平常寫的設計文件還要完整。 ### 接著是 Plan 輸入 `/plan`,Claude 開始生成技術計劃。 它選了 Vite 做前端建置工具,用原生 JavaScript(不用框架),後端用 Node.js + Express,資料庫選 SQLite。 更讓我驚訝的是,它連資料表結構都設計好了: ```sql albums (id, name, created_at) photos (id, album_id, filename, order, uploaded_at) ``` 這個階段最大的好處是,如果你不喜歡這個技術選型,現在就可以調整,不用等到代碼都寫完才推倒重來。 ### 拆解任務 `/tasks` 命令把整個專案拆成了十幾個小任務: 1. 建立專案基礎結構 2. 設定資料庫和資料模型 3. 建立相簿列表 UI 4. 實作建立相簿功能 5. 實作照片上傳 6. 實作拖曳排序 7. ... (還有幾個) 每個任務都很小,大概 15-30 分鐘可以完成的量。 ### 開始實作 這是最神奇的部分。 Claude 會按照任務清單,一個一個完成。它不會一次生成幾千行代碼讓你不知道從哪裡看起,而是每次處理一個功能模組,生成幾十到一百多行代碼。 做完一個任務,你可以跑起來測試看看。有問題?馬上就知道是哪個環節出錯,調整起來很快。 大概兩個小時後,我有了一個可以跑的照片管理應用。 前端能建立相簿、上傳照片、拖曳排序。後端 API 處理檔案上傳和資料存取。資料庫正確記錄所有資料。 而且——這是重點——**代碼結構很清晰,註解很完整,跟我自己寫出來的不會差太多**。 ## 這到底有什麼不同? 用完 Spec Kit,我想通了一件事。 傳統的 AI 編程方式,就像你直接把一個完全不懂你專案的工程師丟到編輯器前面說「開始寫」。當然會亂寫。 Spec Kit 的方式,是讓 AI 先當你的產品經理、架構師、專案管理,把所有「該想清楚的事情」都想清楚了,最後才動手寫代碼。 這才是軟體工程該有的樣子。 而且這樣做有幾個意外的好處: **Token 效率更高**:因為 AI 知道它在做什麼,不會生成一堆「試試看」的代碼。我這次用下來,感覺 Token 用量大概只有以前的一半。 **代碼品質更好**:有了規範和計劃做基礎,生成的代碼都是有目的性的。不會出現「看起來有用但實際上不知道幹嘛」的代碼片段。 **可維護性強**:三個月後你再回來看這個專案,`spec.md` 和 `plan.md` 會告訴你當初為什麼這樣設計。比翻代碼註解清楚多了。 **團隊協作友善**:把規範文件丟給新成員,他們馬上就能理解專案在做什麼。不用花半天看代碼猜意圖。 ## 不是萬能藥 當然,Spec Kit 也不是完美的。 它目前只支援 Claude Code、GitHub Copilot 和 Gemini CLI。如果你用 Cursor 或其他工具,可能需要自己調整一下。 而且規範階段需要你真的想清楚要做什麼。如果你自己都不確定需求,AI 也沒辦法幫你釐清——它只是把你的想法結構化,不會幫你做產品決策。 還有就是學習成本。習慣了「直接叫 AI 寫代碼」的人,可能會覺得這套流程太囉嗦。但說真的,這些步驟本來就該做,只是以前我們偷懶省略了。 ## 值得一試嗎? 如果你符合以下條件,我強烈建議試試看: - 你已經在用 AI 編程助手,但覺得效果不夠穩定 - 你的專案不是那種「寫完就丟」的一次性腳本,而是需要長期維護 - 你在團隊裡工作,需要跟別人協作 - 你想提升 AI 生成代碼的品質和可控性 Spec Kit 是開源的(MIT 授權),完全免費,代碼都在 [GitHub](https://github.com/github/spec-kit) 上。 設定很簡單,大概十分鐘就能跑起來。 ## 未來會怎樣? 我覺得 Spec Kit 指出了一個方向:**AI 編程的未來不是讓 AI 更聰明,而是讓我們跟 AI 的溝通更結構化**。 就像我們從「用機器語言寫代碼」進化到「用高階語言寫代碼」,現在我們正在經歷「從隨意對話」進化到「結構化協作」的階段。 Spec Kit 只是開始。 也許未來會有更多工具幫我們把「人類的模糊想法」翻譯成「AI 能精確執行的指令」。也許 AI 會學會主動問問題,確認需求,而不是憑猜測行動。 但現在,如果你厭倦了跟 AI 來回修改代碼,厭倦了那種「開盲盒」式的不確定感,Spec Kit 可能是個不錯的解法。 --- **推薦資源:** - [Spec Kit GitHub Repository](https://github.com/github/spec-kit) - [官方部落格文章](https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/) - [詳細教學影片](https://www.youtube.com/watch?v=-9obEHJkQc8) 試試看吧。 或許你會發現,原來 AI 編程可以這麼靠譜。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up