全部場數

022 · 先把規格寫好,再讓 AI 動手

AWS 的 Erik Hanchett 說明 spec-driven development 怎麼用需求、設計與測試文件,讓 AI 寫出的程式碼更可靠、更好維護。

2026-06-2817:47Erik Hanchett(AWS)Agent開發工具產業觀察看原片

原標題:Using Spec-Driven Development for Production Workflows - Erik Hanchett, AWS

重點摘要

  • 規格先行的核心動作在寫任何程式碼之前,先把需求與設計文件寫成 markdown,這套流程跟大型語言模型搭配得特別好。
  • AI 是需要帶的實習生coding assistant 就像 AI 實習生,沒給清楚方向就會自己亂跑,講者拿自己剛出社會當實習生的經驗來比喻。
  • 脈絡要抓剛剛好寫 agents.md 或 CLAUDE.md 這類檔案時,資訊量不能太多也不能太少,只要給足夠的規則與方向就好。
  • 人要留在迴圈裡使用者才是這套流程裡的 code reviewer,設計文件與需求文件都要自己看過,出包責任算在人身上。
  • Kiro 的由來AWS 看到客戶自己土法煉鋼做這整套流程但成效不佳,因此做出 Kiro 這套 IDE 加 CLI,去年底正式 GA,同時有 vibe 與 spec 兩種模式。
  • 產出要能被驗證需求文件用 EARS 格式,設計文件有 mermaid 圖,任務清單還會搭配 property-based tests,確認實作真的符合需求與設計。

時間軸

時碼點下去會跳到影片的那一段。

時碼段落重點
00:00開場Erik Hanchett 說明這場要談 spec-driven development 是什麼,以及怎麼用它寫出更快、品質更好的程式碼。
00:35核心定義spec-driven development 的定義是在寫任何程式碼之前,先把需求與設計文件寫成 markdown,這套流程跟大型語言模型搭配得很好。
01:09AI 實習生比喻coding assistant 像 AI 實習生,沒有清楚指引就會自己亂跑,講者拿自己剛出社會當實習生的經驗當例子。
04:06拿捏脈絡份量agents.md 或 CLAUDE.md 這類檔案的資訊量要抓在剛剛好,太多太少都不好,只要給足夠的規則與方向。
04:41搭配 skills 使用skills 是可依關鍵字或指令啟動的說明文件,建立設計文件或執行任務時都能派上用場。
05:13人是最終審查者使用者才是流程裡的 human in the loop,設計文件與需求文件都要自己看過,出包責任算在人身上而不是 agent。
06:21Kiro 的由來AWS 看到客戶自己土法煉鋼做這整套流程但成效不佳,因此做出 Kiro 這套 IDE 加 CLI,去年底正式 GA。
08:19不靠 Kiro 也能做也可以手動叫大型語言模型依序產出需求、設計、任務清單三份文件,講者也提到 GitHub 開源的 SpecKit。
09:43舊專案一樣適用破解「spec 只適合全新專案」的說法,講者看過用了幾十份 spec 檔案的既有舊專案,深度功能與需要前期規劃的專案最適合,連 bug 修正都支援。
10:49需求與設計文件長相需求文件用 EARS 格式並先問澄清問題,設計文件含 mermaid 圖與 ASCII art,講者建議自己進去修改後再往下走。
12:09任務清單與驗證進入實作階段後,任務清單會搭配 property-based tests 驗證是否符合需求與設計,講者也習慣先挑前幾項任務做出 MVP。
12:42談 MCP提到 model context protocol 能把模型跟外部資料源串起來,也能藉此把 Jira、Asana 這類票券資訊拉進 spec 流程。
14:45Kiro 實機示範講者用 Kiro 示範一個電影網站專案,從設計文件的 mermaid 圖開始,接著產出需求文件與 property-based tests,最後依任務清單做出 MVP。
17:16結尾講者請大家去看 kiro.dev、加入 Discord,也歡迎在 LinkedIn 上找他聊聊。

值得記的話

名詞與人物

Erik HanchettAWS 資深 developer advocate,這場的講者,有 15 年以上軟體開發經驗。
KiroAWS 推出的 AI IDE 與 CLI 工具,去年底正式 GA,主打 vibe 與 spec 兩種模式。
SpecKitGitHub 推出的開源 spec-driven development 工具,可以裝進不同的 coding assistant 使用。
EARS formatKiro 產生需求文件時用的格式,文件會有 introduction、使用者故事等段落。
steering docsKiro 裡對應 agents.md 或 CLAUDE.md 的說法,用來放專案規則與方向給 coding assistant 參考。
model context protocol(MCP)讓模型串接外部資料來源的協定,講者提到可以拿它把 Jira、Asana 這類票券資訊接進 spec 流程。
property-based tests針對需求文件與設計文件產生的測試,用 fast-check 在 TypeScript、node 專案裡跑上百次不同數值驗證邏輯。
skills可依關鍵字或指令啟動的說明文件,建立設計文件或執行任務時都能派上用場。

延伸

  • MCP 的安全性議題,講者只說「還有一段長路要走」,沒有進一步展開細節。
  • Kiro 的 CLI 版本只提到跟 IDE 一樣受歡迎,沒有進一步介紹功能。
  • 把 Jira、Asana 這類票券資訊拉進 spec 流程的具體做法,這場只點到為止,沒有實際示範步驟。