敏捷重構方法論 - Agent 分工協作模式
開發 Book Overview App 時遇到一個核心問題:AI 的上下文有限,讓代理人自行決定工作流程的話,主線程 compact 後就會失憶,任務交接也無法保證正確。
需要一套方法讓主線程始終掌握全局,同時讓各代理人在清楚的規格下專注執行。這就是這套方法論的起點。
三大核心原則
主線程只分派、不寫程式碼。 主線程的價值在於全局視野和決策,一旦它開始親自動手,統籌能力就消失了。
任務符合 Atomic Ticket 原則:一個 Action 加一個 Target。「實作 BookEnrichmentProcessor」是好的任務;「實作資料處理」太模糊。任務夠原子,才能精確評估、精確驗收。
100% 測試通過率,沒有例外。 我們試過接受「暫時跳過」,結果累積的債務比預期高出很多倍。現在的規則是:任何檢查失敗就等於階段未完成。
Agent 角色定義
主線程(rosemary-project-manager)負責分派任務、監控進度,處理代理人回報的升級請求。禁止親自閱讀或修改程式碼,不繞過子代理人直接操作。
TDD 四個階段各有專責代理人:Phase 1 由 lavender-interface-designer 做功能設計,Phase 2 由 sage-test-architect 做測試設計,Phase 3a 由 pepper-test-implementer 制定語言無關的實作策略,Phase 3b 由 parsley-flutter-developer 執行 Flutter 程式碼,Phase 4 由 cinnamon-refactor-owl 做重構評估。
五重文件系統
文件混亂是任務失敗的隱性原因之一。代理人不知道去哪找資訊,或者基於過時文件做了錯誤假設。
每份文件只回答一個問題:CHANGELOG 回答「這個版本做了什麼?」、todolist.yaml 回答「還有哪些問題要處理?」、worklog 回答「這個版本要達成什麼目標?」、ticket 回答「這個任務怎麼執行的?」、error-patterns 回答「之前遇過類似問題嗎?」
細節下沉原則確保 worklog 只記錄大方向,具體細節都沉到 ticket 層級。
任務分派前的準備度檢查
這是從失敗中學到的最重要教訓:分派任務前,先確認代理人有足夠資訊執行。
四個面向:API 規格和設計文件是否具體到類別定義?測試規格是否存在?完成標準是否可測量?潛在風險和依賴關係是否梳理清楚?
任何一個回答為否,就先建立對應文件再分派。我們早期跳過這步驟,代理人執行到一半才發現關鍵資訊缺失,修復成本遠高於事前準備。
階段完成的強制驗證
每個開發階段完成後,必須通過五項強制檢查:
flutter analyze零 error- 無「Target of URI doesn’t exist」,100% package 格式導入
- 測試 100% 通過,覆蓋率不得下降
- 無功能重複的服務實作
- 檔案位置符合 Clean Architecture,依賴方向正確
任何一項失敗就等於階段未完成。不允許「暫時跳過」。
技術債務的責任分工
Phase 4 的 cinnamon-refactor-owl 必須在重構評估中識別所有技術債務,用標準格式記錄到工作日誌,執行 /tech-debt-capture 建立 Ticket,確認 Ticket 成功建立後才能完成 Phase 4。
這個設計解決一個常見問題:技術債務往往被口頭記錄,然後就消失了。現在強制要求轉化為可追蹤的 Ticket。
資訊流動,不是固定計畫
v0.11.0 實戰中最深刻的學習:敏捷開發是持續發現、快速調整的動態過程。
Phase 2 測試設計讓我們提前識別了 80% 的實作問題。sage-test-architect 在設計測試時發現 BookEnrichmentData 放在錯誤的架構層,同時發現 Domain 服務層完全缺失,需要 28 個 TDD 新建測試。
這個發現改變了整個計畫,原估 4-6 天調整為 6-7 天。我們面對兩個選擇:維持原時程但降低測試覆蓋率,或延長時程確保品質。
選了後者,理由是 Domain 層是核心基礎不能妥協。最終結果:71 個測試 100% 通過,時程只多了 1 天。
這個案例確立了一個原則:Phase 間的資訊必須雙向流動。Phase 2 發現的問題不只影響 Phase 3,也必須回饋給 Phase 1 更新設計文件。「Phase 1 完成就凍結」是錯誤模式,每個 Phase 的產出都是基礎版本,隨著後續發現持續更新。
架構衝突的零容忍
發現 BookEnrichmentData 位置錯誤後,主線程立即停止 Phase 3 啟動,指派緊急遷移任務:移動檔案、更新所有 import 引用、執行測試確認無錯誤、提交變更。實際花了 0.4 小時完成。
如果在 Phase 3 已基於錯誤架構實作多個任務後才修正,修復成本至少高出十倍。
動態文件更新的觸發點
三種情況必須立即觸發文件更新:
架構變更時——類別位置調整、介面簽名變更,必須同步更新所有引用該類別的任務和設計文件。
測試設計發現時——識別新測試用例、發現缺失的邊界條件,更新對應實作任務的驗收標準。
實作階段發現時——技術方案調整、新增輔助類別,更新後續相關任務的參考實作。
核心洞察
AI 協作開發的核心挑戰是:如何讓多個 AI 代理人在有限的上下文中,基於共享的知識庫,做出一致且高品質的決策。
五重文件系統、Atomic Ticket、準備度檢查、強制驗證閘門——這些都是為了解決「資訊在 AI 協作中如何可靠流動」這個根本問題。
這套方法論仍在持續演進。每個版本都帶來新的學習,新的 error-pattern,新的流程調整。