SDD 深度探討

為什麼「每個任務派全新的子代理」是這套系統最快也最可靠的執行模式

核心主張

子代理驅動開發(Subagent-Driven Development,SDD)是 Superpowers 推薦的執行模式:每個任務派一個全新的子代理實作,一次只做一件事,做完立刻兩階段審查。

對比:多數 coding agent 是「單一代理在對話裡一步一步做」。SDD 徹底不同——主代理只負責派任務、收結果、審查,真正寫程式的是那些「用完即丟」的子代理。

為什麼「全新子代理」反而是優點

乍看之下,沒有你的對話上下文的子代理,好像比較笨。但這正是重點:

1. 強迫照計畫行事

子代理不知道你「剛才想過什麼」。它只能讀任務簡報(task brief)——裡面寫死檔案路徑、要做什麼、怎麼驗證。沒有上下文可以「參考」,就沒有機會偏離計畫。

2. 上下文乾淨,不會累積污染

單一代理的對話越長,上下文越亂:舊的錯誤假設、過時的決定、一次次的試誤都留在裡面,最後代理被自己以前的錯誤帶偏。新子代理每次都是乾淨的起點。

3. 可並行

互不依賴的任務可以派多個子代理同時做(見 dispatching-parallel-agents),不受單一對話的線性限制。

任務迴圈

  1. 派實作子代理:依任務簡報(implementer-prompt.md)執行,只做這一個任務。
  2. 任務審查:審查子代理(task-reviewer-prompt.md)對實作做兩階段審查——先查規格符合度(有沒有照 spec 做?),再查程式碼品質(好不好維護?)。
  3. 修復迴圈:審查不過就派同一個實作子代理帶審查意見回去修(re-review-prompt.md),修到過為止。
  4. 通過 → 下一個任務:審查通過後才進下一個任務。

兩階段審查,不是一次

為什麼要分「規格符合度」再「程式碼品質」兩次?因為混在一起審,代理容易只看一邊。先確認「有沒有做出該做的東西」(不然後面全白費),再檢查「做得乾不乾淨」(不然以後改不動)。

最終審查(whole-branch review)

所有任務都過關後,還有一層「整支分支的全面審查」,把整支 diff 當作整體檢視:任務之間的接縫對不對、整體架構有沒有跑掉。這補上「逐任務審查」看不到的整體視角。

跟 executing-plans 的差別

subagent-driven-developmentexecuting-plans
在哪跑目前 session另開的 session
節奏逐任務,自動審查分批,批次間人類檢查點
適合任務彼此獨立、想放手讓它跑需要人類逐步把關的場景

兩者共用同一套計畫檔與 TDD 紀律。詳見 subagent-driven-development 技能頁

什麼時候不該用 SDD