## 任務分析
你必須依序完成以下子步驟,並在最後呼叫 `analyze_task` 工具,將初步設計方案傳遞給下一階段。
1. **分析目的**
- 讀取並理解:
```
任務說明:{description}
任務要求與限制:{requirements}
{tasksTemplate}
```
- 確認:
- 任務目標與預期成果
- 技術挑戰與關鍵決策點
- 與現有系統/架構的整合需求
2. **識別專案架構**
- 查看關鍵配置文件與結構:
- 檢視根目錄結構和重要配置文件(package.json, tsconfig.json 等)
- 如果 shrimp-rules.md 存在請詳細閱讀並參考
- 分析主要的目錄組織和模組劃分
- 辨識架構模式:
- 識別核心設計模式和架構風格(MVC, MVVM, 微服務等)
- 確定專案的分層結構和模組邊界
- 分析核心組件:
- 研究主要類別/接口設計與依賴關係
- 標記關鍵服務/工具類及其職責和用途
- 記錄既有模式:
- 記錄發現的代碼組織方式和架構規律
- 建立對專案技術棧和架構特性的深入理解
3. **收集資訊**
如有任何不確定或信心不足,**必做其一**:
- 向用戶提問以釐清
- 使用 `query_task`、`read_file`、`codebase_search`或其他類似的工具查詢現有程式/架構
- 使用 `web_search` 或其他網路搜尋工具查詢不熟悉的概念或技術
禁止憑空臆測,所有資訊必可追溯來源。
4. **檢查現有程式與結構**
- 使用精確的搜索策略:
- 利用 `read_file`、`codebase_search`或其他類似的工具查詢與任務相關的現有實現方式
- 尋找與當前任務功能類似的現有代碼
- 分析目錄結構尋找相似功能模組
- 分析代碼風格與約定:
- 檢查現有組件的命名規則(駝峰式、蛇形等)
- 確認註釋風格和格式約定
- 分析錯誤處理模式和日誌記錄方式
- 記錄並遵循發現的模式:
- 詳細記錄代碼模式和組織結構
- 計劃如何沿用這些模式進行設計
- 判斷是否與現有功能重疊,並決定「重用」或「抽象重構」
- **不得**先生成設計再查現有碼;必須「先查再設」
5. **任務類型特定指南**
根據任務特性,額外考慮以下特定指南:
- **前端/UI 任務**:
- 優先查看現有 UI 組件庫和設計系統
- 分析頁面佈局結構和元件組合模式
- 確認樣式管理方式(CSS 模組、Styled Components 等)
- 理解狀態管理和數據流模式
- **後端 API 任務**:
- 檢查 API 路由結構和命名約定
- 分析請求處理和中間件模式
- 確認錯誤處理和響應格式標準
- 理解授權/身份驗證實現方式
- **數據庫操作**:
- 分析現有的數據訪問模式和抽象層
- 確認查詢構建和事務處理方式
- 理解關聯關係處理和數據驗證方法
- 檢查緩存策略和效能優化手段
6. **初步方案產出**
- 根據上述,撰寫「初步設計方案」:
- 清楚標示 **事實**(來源) vs **推論**(選擇依據)
- 禁止模糊語句,須為最終可交付成果
- 確保方案與專案既有架構模式一致
- 說明如何重用現有組件或遵循現有模式
- 過程必須一步一步思考並梳理思緒,如果問題過於複雜可以利用`process_thought`來思考
- **嚴重警告**:禁止一切`假設`與`猜測`與`幻想`,你必須透過一切你`可以使用的工具`來`收集資訊`
- 呼叫工具:
```
analyze_task({ summary: <任務摘要>, initialConcept: <初步構想> })
```
**現在開始呼叫 `analyze_task`,嚴禁不呼叫工具**