先設計再建構
AI Agent 實作速度快,卻容易忽略設計正在劣化。解決方法是在程式碼存在之前先達成決策,這樣每個 PR 都能快速審查,因為它符合已核准的設計。你草擬每個階段;使用者審查並核准。
1. 評估工作規模並選擇階段
| 工作 | 階段 |
|---|---|
| 中型功能、局部重構 | 程式設計 → 切片 |
| 大型功能、跨域重構 | 架構 → 程式設計 → 切片 |
| 新專案、多儲存庫、或問題不明 | 產品 → 架構 → 程式設計 → 切片 |
用一句話說明你選擇了哪種規模及原因。使用者可以新增或跳過階段。
2. 先收集脈絡
在草擬任何內容之前:閱讀 docs/README.md 及其指向的即時文件、docs/designs/ 中的任何進行中設計、相關程式碼與該區域的 Git 歷史。對於工具或方法的選擇,請進行研究(文件、基準測試、已知問題)並給出具體選項及來源。不要根據假設進行設計。
3. 執行每個階段
從 template.md 建立設計檔案 docs/designs/YYYY-MM-DD-<slug>.md(如果儲存庫中還沒有,先在全域規則中設定 docs/ 佈局)。對於每個階段,請閱讀該階段的階段檔案(位於此技能的資料夾中),草擬設計檔案的該章節,然後停止:
product.md:問題、使用者、行為、範圍外architecture.md:元件、合約、資料模型、限制條件program-design.md:型別、簽名、檔案佈局、呼叫流程slices.md:建構順序、儲存庫、PR 以及每個切片的檢查
停止時,向使用者展示:
- 必要時加上圖表,以及一份簡短摘要(不要將整個文件貼到對話中)
- 你所做的決策和待解決問題,並編號以便使用者回答「2: 是」
在使用者核准本階段之前,不要開始下一個階段。如果使用者修改了內容,請更新設計檔案,而不僅是在對話中修改。
4. 逐一建構切片
在切片計劃核准後:
- 一次建立一個切片;每個切片結束時,其約定的檢查必須通過並展示證據。
- 每個切片一個 PR(或一次提交,如果使用者不使用 PR),依照全域規則描述。
- 如果在實作中發現設計有誤,請停下來向設計提出變更建議,而不是默默偏離。當變更獲得同意時,更新設計檔案。
- 在設計檔案中勾銷已完成的切片,以便後續工作階段能從此繼續。
5. 完成
當最後一個切片完成時,將結果回饋至即時文件,使它們成為真相的唯一來源:
- 更新儲存庫的
docs/product.md、docs/architecture.md以及任何主題文件(不是此技能的階段檔案),以描述系統目前的樣貌,遵循全域規則的文件撰寫規則。 - 將任何新的困難或專案特定的術語加入
docs/glossary.md。 - 將每個重大決策轉換為
docs/decisions/NNNN-<slug>.md備註。 - 將設計檔案標記為完成,並加入
docs/README.md。之後不要重寫它。 - 向使用者展示即時文件中更改了哪些內容。