八個方法論支柱(方法論支柱:可操作的工程紀律)串在一起,形成一條完整的 AI 輔助工程閉環。這條流程的設計目標不是「讓 AI 更快生成程式碼」,而是「讓 AI 生成的程式碼能可靠地進入 production 並且可以長期維護」。
完整閉環
┌─────────────────────────────────────────────────────────────────────┐
│ AI 編碼工程閉環 │
│ │
│ ① 意圖/Spec ② 生成 ③ 驗證 ④ 審查 │
│ ───────────── ───────────── ───────────── ───────────── │
│ Problem Framing → AI generates → TDD red/green → Code Review │
│ + Spec-Driven (per task, + run tests + Doubt-Driven │
│ + Planning small scope) + check spec (non-obvious │
│ + Task Breakdown acceptance decisions) │
│ criteria │
│ ↓ ↓ ↓ ↓ │
│ ⑤ 整合 ⑥ 沉澱 │
│ ───────────── ───────────── │
│ Merge to main → ADR + docs ←──── 更新認知、回饋下一輪 ──────┘ │
│ + Observability update │
│ + Evals + Spec update │
└─────────────────────────────────────────────────────────────────────┘
第一節點:意圖/Spec
工作:把模糊的需求轉化成可執行的規格。
這個節點的輸出決定後面所有節點的品質。一個模糊的 spec 讓 AI 在生成時填補假設(見 AI 生成程式碼的失敗模式——隱性假設失敗模式),而你不會知道它填補了什麼。
- Problem Framing:確認「我們在解決什麼問題」,用 5 Whys / HMW 萃取問題陳述句
- Spec:六大核心(目標、指令、結構、風格、測試策略、邊界)
- Planning:把 spec 拆成垂直切片的任務清單,每個任務有明確驗收標準
- 閘門:Spec 必須有人工審核確認,才能進入下一節點
输入:模糊需求。輸出:任務清單(每個任務:驗收標準、範疇限制、依賴順序)。
第二節點:生成
工作:AI 根據一個 task(非整個 spec)生成程式碼。
關鍵原則:每次讓 AI 處理的範疇必須可審查。「一個任務,一個 AI 生成,一個 review」是節奏,不是「一個功能,一次全生成,最後 review」。
為什麼要小範疇?
- 小範疇的 review 成本低,大範疇的 review 成本高(而且人往往因為太大而省略真正的審查)
- 小範疇的 AI 生成物,脈絡清楚,錯誤率相對低
- 發現問題時,回頭成本低
輸入:一個 task(含驗收標準)。輸出:一個可驗證的 diff。
第三節點:驗證
工作:確認 AI 生成物符合 spec 的驗收標準。
- TDD 紅燈→綠燈:先寫失敗測試(確認 spec 驗收標準化成了機器可執行形式),讓 AI 生成讓測試通過的程式碼
- 執行 test suite:確認沒有讓既有測試失敗(regression)
- 對照 spec:手動確認 AI 生成物是否符合 spec 的 Boundaries(特別是「Never do」清單)
驗證的目標是把「看起來對」轉換成「機器確認對」。自動化越多,越能在高速生成時保持品質。
輸入:AI 生成物 + spec 驗收標準。輸出:測試結果報告(通過或不通過,不通過則回到生成節點)。
第四節點:審查
工作:有領域知識的人審查 diff。
這個節點做自動化無法做的事:識別似是而非的正確性、隱性假設、架構不一致、安全隱患。
- Code Review:五個維度(正確性、可讀性、架構、安全性、效能)
- Doubt-Driven:對任何非顯然的決策,主動生成對抗性審查
- 閘門:不通過 review,不進入整合節點
最容易被省略的節點,也是最重要的節點。「AI 很快生成、我也快速過一下」——這是在系統性跳過最值錢的那部分工程判斷。
輸入:驗證通過的 diff。輸出:核准合併(或退回修改)。
第五節點:整合
工作:把通過審查的改動整合進主線,並設立可觀測性。
- Merge:通過 CI/CD pipeline
- Observability:確認這個改動在 production 中的行為可以被觀測(logs、metrics、traces)
- Evals(AI 功能):如果這個改動影響 AI 功能的 prompt 或行為,更新 eval 測試集
沒有可觀測性的整合是盲目的整合——你不知道上線之後是否正確工作。
第六節點:沉澱
工作:把這個閉環獲得的知識固化,讓下一個閉環更好。
- ADR:任何重要的架構決策,寫成 Architecture Decision Record(情境、決策、替代方案、後果)
- Spec 更新:如果實作過程中發現 spec 有需要修正的地方,回去更新
- CLAUDE.md / 工程慣例:如果發現了一個值得固化的模式,寫進 project 的工程慣例文件
沉澱節點的作用是讓每個閉環結束時,下一個閉環的起點比這個高一點。沒有沉澱,每次都從同樣的基準點開始;有了沉澱,知識積累,閉環品質逐漸提升。
閉環的節奏
一個健康的 AI 輔助開發節奏,不是「把所有工作一次全交給 AI 然後等結果」,而是:
Task → [生成] → [驗證] → [審查] → Merge
↓
Task → [生成] → [驗證] → [審查] → Merge
↓
...(每個 task 完成前,人工確認通過 review)
↓
Sprint 結束 → [沉澱](ADR、文件、慣例更新)
這個節奏比「一次全交給 AI 再收成」更慢,但產出的程式碼是可審查的、可維護的、有測試覆蓋的——也就是說,它是真正的工程交付,不只是「能跑的程式碼」。
與其他專欄的關係
- 閉環第一節點的詳細操作 → Framing → Spec → 實作 → 驗證:閉環全景
- 領域設計在閉環中的位置 → Event Storming + Event Sourcing + Pattern Language(把領域知識固化進 spec 和 ADR,不依賴 AI 的記憶)
- Evals 的具體工程實作 → 幻覺、Evals 與品質保證
延伸
- 這條流程的理論基礎 → 方法論支柱:可操作的工程紀律
- 人在這條流程裡扮演什麼角色 → 人的角色:審查、品味與擁有權
- 回到全景 → Engineering AI Coding Methodology 專欄首頁