AI 知識

為什麼 spec-driven 會變成 AI coding 的關鍵能力?

AI coding 這兩年最吸引人的想像,是一句話丟出去,AI 就能把功能寫出來。

這個想像很迷人,也確實已經能做很多事。

但真正開始把 AI 代理放進稍微複雜一點的開發工作後,很多人會遇到同一個問題:

AI 不是不會寫。

它是太會在你沒說清楚的地方自己補。

你說「幫我做登入」,它可能會猜一套驗證流程。

你說「幫我加報表」,它可能會猜資料欄位、權限、排序、匯出格式。

你說「幫我重構」,它可能會猜哪些行為可以保留、哪些可以改掉。

這些猜測有時候很合理,有時候卻剛好踩中你最不想動的地方。

所以最近 spec-driven AI coding 變得很值得注意。OpenSpec、GitHub Spec Kit 這類工具與方法,背後都指向同一件事:不要讓 AI 先把模糊需求變成程式碼,而是先把需求、限制、計畫和驗收條件說清楚。

問題不是 AI 不會寫,是人把規格藏在腦袋裡

過去我們常把 AI coding 當成一種更快的打字工具。

給它一句話,它回一段 code。

不滿意,再補一句。

還是不對,再修一句。

這種方式在小工具、一次性腳本、快速原型上很好用。但當任務牽涉既有系統、使用者流程、權限、資料一致性、效能或安全限制時,單靠聊天式來回就很容易失控。

原因很簡單:很多真正重要的規格,其實沒有寫在 prompt 裡。

它們藏在人的腦袋裡,藏在既有產品習慣裡,藏在團隊默契裡,藏在「這個地方不能動」的經驗裡。

AI 看不到這些,它只能從你給的文字、目前上下文和常見模式去推。

當上下文不完整,AI 不會停下來把所有缺口都列出來。它常常會做一件看似貼心、其實危險的事:猜。

spec-driven 在改變哪件事?

spec-driven 的核心不是叫大家回去寫厚厚文件。

它比較像是把「要做什麼」從一句模糊指令,拆成 AI 和人都能對齊的工作契約。

一個清楚的規格至少要回答幾件事:

  • 這次到底要改什麼?
  • 使用者會怎麼使用?
  • 哪些行為必須保留?
  • 哪些限制不能踩?
  • 做完要怎麼驗收?
  • 如果 AI 產出的方案和原本想像不同,要用什麼標準判斷?

OpenSpec 的做法,是讓每個 change 有自己的 proposal、specs、design 和 tasks。GitHub Spec Kit 則把流程拆成 specify、plan、tasks、implement,讓規格、計畫與任務拆分先被整理出來,再交給 coding agent 動手。

不同工具細節不一樣,但共同精神很接近:

先對齊,再生成。

先把成功標準講清楚,再讓 AI 寫。

先讓人有檢查點,再看程式碼。

為什麼這對一般使用者也重要?

這件事不只跟工程師有關。

因為 AI 代理的能力越強,一般人也會越常把「做一件事」交給 AI。

寫程式只是最明顯的場景。

同樣的問題也會出現在寫企劃、整理資料、設計流程、產出報告、生成簡報、建立自動化步驟。

只要任務不是單純問答,而是要 AI 幫你「完成一個結果」,規格就會變重要。

你沒有說清楚的地方,AI 會幫你補。

你沒有定義的成功,AI 會用它以為合理的方式完成。

你沒有列出的限制,AI 可能根本不知道那是限制。

所以未來真正會用 AI 的人,不一定是 prompt 寫得最華麗的人。

更可能是能把模糊想法拆成清楚規格的人。

一個簡單的使用方式

下次你想叫 AI 做一件比較複雜的事,可以先不要直接叫它開始做。

先請它幫你整理這幾項:

  • 目標:這次要完成什麼結果?
  • 邊界:哪些事不做?哪些地方不能改?
  • 成功標準:做到什麼才算完成?
  • 風險:有哪些地方最容易誤解?
  • 步驟:應該先確認什麼,再開始產出?

接著你先看這份規格。

不對的地方先改。

不清楚的地方先補。

等你覺得規格像你真正想要的東西,再叫 AI 開始做。

這樣看起來多了一步,實際上常常是在減少後面十幾步返工。

規格不是信任 AI,而是讓 AI 可以被檢查

spec-driven AI coding 最有價值的地方,不是讓人可以完全放手。

剛好相反。

它是把 AI 的工作變得更容易被檢查。

如果沒有規格,AI 交出一大段程式碼時,你只能問:「看起來對不對?」

如果有規格,你可以問:

  • 這段改動是否符合目標?
  • 是否踩到邊界?
  • 是否有對應驗收條件?
  • 是否偏離原本任務?
  • 是否把未說出口的猜測寫進實作?

這些問題比「AI 寫得好不好」更精準。

AI 代理越強,越不該只靠一句模糊指令開工。

因為它真的會動手。

也正因為它真的會動手,人更需要先說清楚:到底要它做什麼、不要它做什麼、做完要怎麼檢查。

未來會用 AI 的關鍵能力,可能不是把話講得更像咒語。

而是把想法整理到 AI 不能亂猜。

查證摘要

  • OpenSpec GitHub README:Fission-AI/OpenSpec。定位為 AI coding assistants 的 spec-driven development framework,強調在寫 code 前先讓 human 與 AI 對齊 specs。
  • GitHub Spec Kit README:github/spec-kit。將規格、計畫、任務拆解成可直接驅動 implementation 的工作流。
  • GitHub Blog:Spec-driven development with AI。說明為什麼模糊提示在既有 codebase 上容易失控,以及 specify、plan、tasks、implement 的流程價值。
回文章列表