Ian Chou's Blog

AI 時代的新 SDD:從 Windsurf 的 25 個 Spec Files 談起

我今天使用 Windsurf 配合 25 個詳細 Spec Files 一次性生成高品質應用的案例,標誌著一個重要的開發典範轉移。這不僅僅是運氣,而是驗證了一種更成熟的 「個人版 SDD(Spec-Driven Development)」 模式。

這篇文章將解釋為什麼我這次會成功、Windsurf 與競品(Kiro/Trae)的本質差異,以及如何將這套流程標準化。


1. 成功復盤:為什麼「25 個 Spec Files」是關鍵?

通常開發者使用 AI 編碼失敗,多半是因為「意圖模糊」導致 AI 在實作時必須「猜測」。而我這次的成功,建立在兩個核心基礎上:

A. 規格即契約 (Spec as Contract)

25 個檔案看似繁瑣,但對 LLM 而言,這是最完美的輸入。我將 Domain Logic(領域邏輯)Use Cases(使用案例)Edge Cases(邊界條件) 以及 Non-functional Requirements(非功能需求) 全部具象化。

B. Windsurf 的 Repo-Level 能力

Windsurf 的強項在於其強大的 RAG(檢索增強生成)與 Context Window 管理:


2. 工具戰略定位:Windsurf vs. Kiro vs. Trae SOLO

我的作法(高品質 Spec + Windsurf)與市場上另外兩款熱門工具 Kiro 和 Trae SOLO 有著本質上的路線差異。

特性 Windsurf (我的用法) Kiro (AWS) Trae SOLO
核心理念 User-Guided Execution



我給契約,它執行。
Strict Process SDD



強制性的軟體工程紀律。
Autonomous Agent



全自動工頭,一條龍服務。
主導權 我 (Architect) + AI (Coder) 工具 (Manager) + 我 (Worker) AI (Project Lead)
規格形式 我的 Spec Files (Markdown/Code) 強制性的 Req / Design / Task 結構 自產 PRD (通常較簡略)
自動化層級 高 (但在我的框架內) 中 (需按部就班審核) 極高 (從需求直達部署)
適合場景 個人版 SDD、架構控、複雜邏輯 團隊協作、合規性要求高、企業級專案 MVP、PoC、快速原型、舊專案翻新

深度解析差異


3. Trae SOLO 的「一條龍」深度剖析

雖然我偏好 Windsurf 的精準控制,但了解 Trae SOLO 的能力邊界對我的工具箱也是一種補充。

它實際在做什麼?

Trae SOLO 運用了多層次的 Context Engineering:需求解析 → 任務拆解 → 工具編排(寫碼、跑 Terminal、開瀏覽器) → 執行 → 自我修復(看 Log 修 Bug)。

什麼時候該用它?

  1. 驗證想法 (PoC): 當我不在乎程式碼是否符合我的 Spec 標準,只想看「這點子行不行」時。

  2. 大規模重構 (Refactor): 例如「把這個 Repo 從 JS 轉 TS」,Trae 的 SOLO Coder 在這種機械性但繁瑣的任務上表現優異。

  3. 髒活累活: 寫測試、寫文檔、補註解。

對我的潛在風險

如果我習慣了 Spec-Driven,會發現 Trae 的「黑箱感」很重。我必須花費大量時間 Review 它的 PRD 和 Code,這有時比自己寫 Spec 給 Windsurf 還要累。


4. 下一步升級:打造我的「個人 SDD 標準化流程」

既然「25 個 Spec Files + Windsurf」這條路已經跑通,接下來的目標是降低邊際成本提高穩定性。建議可以從以下兩點著手升級:

升級一:引入「Plan 中間層」 (The Plan Artefact)

不要直接讓 Windsurf 生成 Code,而是先生成一份 plan.md

升級二:萃取「Spec 模板」 (The Spec Kit)

我這次的 25 個檔案其實隱含了一套 Pattern。可以將其抽象化,建立一套屬於我的 Spec-Kit

  1. Core Domain Specs: 定義實體、值物件、核心規則。

  2. Interface Specs: 定義 API Schema、UI Component Props。

  3. Behavior Specs: 使用類似 Gherkin 或 User Story 的格式描述行為。

  4. System Specs: 定義 Tech Stack、Folder Structure、Naming Convention。

未來流程:

新專案啟動 → 填寫 Spec-Kit (約 8-10 個關鍵檔) → Windsurf 讀取 → 產出 Plan → 確認 → 一鍵生成 App。


結論

我今天的成果印證了一個觀點:在 AI 輔助編碼的時代,工程師的核心競爭力從「寫 Code 的速度」轉變為「寫 Spec 的品質」。

下一步建議:

不用急著換工具。試著把這 25 個檔案結構整理成一個 GitHub Template,下次做新專案時,先試試看「Spec -> Plan -> Code」這個三步走策略,會發現這套個人版 SDD 會變得更穩固、更可複製。