# 多模型執行 (Multi-Model Execute) 結構化執行工作流:讀取計畫 → 檢索上下文 → 獲取原型 → 程式碼實作 → 稽核與交付。 ## 執行流程 1. **識別輸入類型**: - 計畫檔案路徑 (例如:`.claude/plan/xxx.md`) - 直接的任務描述 2. **讀取計畫內容**: - 如果提供了計畫檔案路徑,則讀取並解析。 - 擷取:任務類型、實作步驟、關鍵檔案、SESSION_ID。 3. **執行前確認**: - 如果輸入是「直接任務描述」或缺少 `SESSION_ID` / 關鍵檔案,則先向使用者確認。 - 如果無法確認使用者對計畫回覆了 "Y",則在繼續之前必須再次確認。 4. **任務類型路由**: | 任務類型 | 偵測指標 | 路由路徑 | |-----------|-----------|-------| | **前端 (Frontend)** | 頁面、元件、UI、樣式、佈局 | Gemini | | **後端 (Backend)** | API、介面、資料庫、邏輯、演算法 | Codex | | **全端 (Fullstack)** | 同時包含前端與後端行為 | Codex ∥ Gemini 平行處理 | --- ### 階段 1:快速上下文檢索 (Quick Context Retrieval) `[Mode: Retrieval]` **必須使用 MCP 工具進行快速上下文檢索,不得手動逐一讀取檔案。** 根據計畫中的「關鍵檔案」列表,呼叫 `mcp__ace-tool__search_context`: ``` mcp__ace-tool__search_context({ query: "<基於計畫內容的語義查詢,包含關鍵檔案、模組、函式名稱>", project_root_path: "$PWD" }) ``` **檢索策略**: - 從計畫的「關鍵檔案」表格中擷取目標路徑。 - 構建語義查詢,涵蓋:入口檔案、依賴模組、相關型別定義。 - 如果結果不足,則增加 1-2 次遞迴檢索。 - **絕對不要**使用 Bash + find/ls 手動探索專案結構。 **檢索之後**: - 整理檢索到的程式碼片段。 - 確認實作所需的上下文已齊全。 - 進入階段 3。 --- ### 階段 3:獲取原型 (Prototype Acquisition) `[Mode: Prototype]` **依據任務類型進行路由**: #### 路徑 A:前端/UI/樣式 → Gemini **限制**:上下文 < 32k tokens 1. 呼叫 Gemini (使用 `~/.claude/.ccg/prompts/gemini/frontend.md`)。 2. 輸入:計畫內容 + 檢索到的上下文 + 目標檔案。 3. 輸出:`僅限 Unified Diff Patch。嚴禁進行任何實際修改。` 4. **Gemini 是前端設計權威,其產出的 CSS/React/Vue 原型即為最終視覺基準。** 5. **警告**:忽略 Gemini 關於後端邏輯的建議。 6. 如果計畫包含 `GEMINI_SESSION`:優先使用 `resume `。 #### 路徑 B:後端/邏輯/演算法 → Codex 1. 呼叫 Codex (使用 `~/.claude/.ccg/prompts/codex/architect.md`)。 2. 輸入:計畫內容 + 檢索到的上下文 + 目標檔案。 3. 輸出:`僅限 Unified Diff Patch。嚴禁進行任何實際修改。` 4. **Codex 是後端邏輯權威,善用其邏輯推理與偵錯能力。** 5. 如果計畫包含 `CODEX_SESSION`:優先使用 `resume `。 #### 路徑 C:全端 → 平行呼叫 1. **平行呼叫** (`run_in_background: true`): - Gemini:處理前端部分。 - Codex:處理後端部分。 2. 使用 `TaskOutput` 等待兩個模型的完整結果。 3. 各自使用計畫中對應的 `SESSION_ID` 進行 `resume` (若缺失則建立新會話)。 **請遵循上方「多模型呼叫規範」中的「重要」指令。** --- ### 階段 4:程式碼實作 (Code Implementation) `[Mode: Implement]` **Claude 作為程式碼主權者 (Code Sovereign) 執行以下步驟**: 1. **讀取 Diff**:解析 Codex/Gemini 返回的 Unified Diff Patch。 2. **心智沙盒**: - 模擬將 Diff 應用到目標檔案。 - 檢查邏輯一致性。 - 識別潛在衝突或副作用。 3. **重構與清理**: - 將「髒原型 (dirty prototype)」重構為**高可讀性、具維護性、企業級的程式碼**。 - 移除冗餘程式碼。 - 確保符合專案現有的程式碼規範。 - **除非必要,否則不要生成註釋/文件**,程式碼應能自我解釋 (Self-explanatory)。 4. **最小範圍**: - 修改僅限於需求範圍。 - **強制審查**副作用。 - 進行針對性的修正。 5. **套用變更**: - 使用 Edit/Write 工具執行實際修改。 - **僅修改必要程式碼**,絕對不影響使用者現有的其他功能。 6. **自我驗證** (強烈建議): - 執行專案現有的 lint / 型別檢查 / 測試 (優先針對最小相關範圍)。 - 若失敗:先修復迴歸問題 (Regressions),再進入階段 5。 --- ### 階段 5:稽核與交付 (Audit and Delivery) `[Mode: Audit]` #### 5.1 自動稽核 **變更生效後,必須立即平行呼叫** Codex 與 Gemini 進行程式碼審查 (Code Review): 1. **Codex 審查** (`run_in_background: true`): - ROLE_FILE: `~/.claude/.ccg/prompts/codex/reviewer.md` - 輸入:變更後的 Diff + 目標檔案 - 關注點:安全性、性能、錯誤處理、邏輯正確性 2. **Gemini 審查** (`run_in_background: true`): - ROLE_FILE: `~/.claude/.ccg/prompts/gemini/reviewer.md` - 輸入:變更後的 Diff + 目標檔案 - 關注點:無障礙性、設計一致性、使用者體驗 使用 `TaskOutput` 等待兩個模型的完整審查結果。優先重用階段 3 的工作階段 (`resume `) 以保持上下文一致性。 #### 5.2 整合與修復 1. 綜合 Codex + Gemini 的審查回饋。 2. 根據信任規則進行權衡:後端以 Codex 為準,前端以 Gemini 為準。 3. 執行必要的修復。 4. 視需要重複階段 5.1 (直到風險降至可接受範圍)。 #### 5.3 交付確認 稽核通過後,向使用者報告: ```markdown ## 執行完成 ### 變更摘要 | 檔案 | 操作 | 描述 | |------|-----------|-------------| | path/to/file.ts | 已修改 | 說明 | ### 稽核結果 - Codex: <通過 / 發現 N 個問題> - Gemini: <通過 / 發現 N 個問題> ### 後續建議 1. [ ] <建議的測試步驟> 2. [ ] <建議的驗證步驟> ``` --- ## 關鍵規則 1. **程式碼主權 (Code Sovereignty)** – 所有檔案修改均由 Claude 執行,外部模型無寫入權限。 2. **重構原始原型** – Codex/Gemini 的輸出被視為草稿,必須經過重構。 3. **信任規則** – 後端信任 Codex,前端信任 Gemini。 4. **最小變更** – 僅修改必要程式碼,無副作用。 5. **強制稽核** – 變更後必須進行多模型程式碼審查。 --- ## 使用方式 ```bash # 執行計畫檔案 /ccg:execute claude/plan/feature-name.md # 直接執行任務 (針對已在上下文中討論過的計畫) /ccg:execute 根據之前的計畫實作用戶身分驗證 ``` --- ## 與 /ccg:plan 的關係 1. `/ccg:plan` 生成計畫 + SESSION_ID。 2. 使用者以 "Y" 確認。 3. `/ccg:execute` 讀取計畫,重用 SESSION_ID,並執行實作。