# Execute - マルチモデル協調実装 マルチモデル協調実装 - 計画からプロトタイプを取得 → Claudeがリファクタリングして実装 → マルチモデル監査と配信。 $ARGUMENTS --- ## コアプロトコル - **言語プロトコル**: ツール/モデルとやり取りする際は**英語**を使用し、ユーザーとはユーザーの言語でコミュニケーション - **コード主権**: 外部モデルは**ファイルシステムへの書き込みアクセスがゼロ**、すべての変更はClaudeが実行 - **ダーティプロトタイプのリファクタリング**: Codex/Geminiの統一差分を「ダーティプロトタイプ」として扱い、本番グレードのコードにリファクタリングする必要がある - **損失制限メカニズム**: 現在のフェーズの出力が検証されるまで次のフェーズに進まない - **前提条件**: `/ccg:plan`の出力に対してユーザーが明示的に「Y」と返信した後のみ実行(欠落している場合は最初に確認が必要) --- ## マルチモデル呼び出し仕様 **呼び出し構文**(並列: `run_in_background: true`を使用): ``` # セッション再開呼び出し(推奨) - 実装プロトタイプ Bash({ command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--backend {{GEMINI_MODEL_FLAG}}resume - \"$PWD\" <<'EOF' ROLE_FILE: <ロールプロンプトパス> Requirement: <タスクの説明> Context: <計画内容 + 対象ファイル> OUTPUT: 統一差分パッチのみ。実際の変更を厳格に禁止。 EOF", run_in_background: true, timeout: 3600000, description: "簡潔な説明" }) # 新規セッション呼び出し - 実装プロトタイプ Bash({ command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--backend {{GEMINI_MODEL_FLAG}}- \"$PWD\" <<'EOF' ROLE_FILE: <ロールプロンプトパス> Requirement: <タスクの説明> Context: <計画内容 + 対象ファイル> OUTPUT: 統一差分パッチのみ。実際の変更を厳格に禁止。 EOF", run_in_background: true, timeout: 3600000, description: "簡潔な説明" }) ``` **監査呼び出し構文**(コードレビュー/監査): ``` Bash({ command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--backend {{GEMINI_MODEL_FLAG}}resume - \"$PWD\" <<'EOF' ROLE_FILE: <ロールプロンプトパス> Scope: 最終的なコード変更を監査。 Inputs: - 適用されたパッチ(git diff / 最終的な統一差分) - 変更されたファイル(必要に応じて関連する抜粋) Constraints: - ファイルを変更しない。 - ファイルシステムアクセスを前提とするツールコマンドを出力しない。 OUTPUT: 1) 優先順位付けされた問題リスト(重大度、ファイル、根拠) 2) 具体的な修正; コード変更が必要な場合は、フェンスされたコードブロックに統一差分パッチを含める。 EOF", run_in_background: true, timeout: 3600000, description: "簡潔な説明" }) ``` **モデルパラメータの注意事項**: - `{{GEMINI_MODEL_FLAG}}`: `--backend gemini`を使用する場合、`--gemini-model gemini-3-pro-preview`で置き換える(末尾のスペースに注意); codexの場合は空文字列を使用 **ロールプロンプト**: | フェーズ | Codex | Gemini | |-------|-------|--------| | 実装 | `~/.claude/.ccg/prompts/codex/architect.md` | `~/.claude/.ccg/prompts/gemini/frontend.md` | | レビュー | `~/.claude/.ccg/prompts/codex/reviewer.md` | `~/.claude/.ccg/prompts/gemini/reviewer.md` | **セッション再利用**: `/ccg:plan`がSESSION_IDを提供した場合、`resume `を使用してコンテキストを再利用します。 **バックグラウンドタスクの待機**(最大タイムアウト600000ms = 10分): ``` TaskOutput({ task_id: "", block: true, timeout: 600000 }) ``` **重要**: - `timeout: 600000`を指定する必要があります。指定しないとデフォルトの30秒で早期タイムアウトが発生します - 10分後もまだ完了していない場合、`TaskOutput`でポーリングを継続し、**プロセスを強制終了しない** - タイムアウトにより待機がスキップされた場合、**`AskUserQuestion`を呼び出してユーザーに待機を継続するか、タスクを強制終了するかを尋ねる必要があります** --- ## 実行ワークフロー **実行タスク**: $ARGUMENTS ### フェーズ 0: 計画の読み取り `[Mode: Prepare]` 1. **入力タイプの識別**: - 計画ファイルパス(例: `.claude/plan/xxx.md`) - 直接的なタスク説明 2. **計画内容の読み取り**: - 計画ファイルパスが提供された場合、読み取りと解析 - 抽出: タスクタイプ、実装ステップ、キーファイル、SESSION_ID 3. **実行前の確認**: - 入力が「直接的なタスク説明」または計画に`SESSION_ID` / キーファイルが欠落している場合: 最初にユーザーに確認 - ユーザーが計画に「Y」と返信したことを確認できない場合: 進む前に再度確認する必要がある 4. **タスクタイプのルーティング**: | タスクタイプ | 検出 | ルート | |-----------|-----------|-------| | **フロントエンド** | ページ、コンポーネント、UI、スタイル、レイアウト | Gemini | | **バックエンド** | API、インターフェース、データベース、ロジック、アルゴリズム | Codex | | **フルスタック** | フロントエンドとバックエンドの両方を含む | Codex ∥ Gemini 並列 | --- ### フェーズ 1: クイックコンテキスト取得 `[Mode: Retrieval]` **MCPツールを使用したクイックコンテキスト取得が必須です。ファイルを1つずつ手動で読まないでください** 計画の「キーファイル」リストに基づいて、`mcp__ace-tool__search_context`を呼び出します: ``` mcp__ace-tool__search_context({ query: "<計画内容に基づくセマンティッククエリ、キーファイル、モジュール、関数名を含む>", project_root_path: "$PWD" }) ``` **取得戦略**: - 計画の「キーファイル」テーブルから対象パスを抽出 - カバー範囲のセマンティッククエリを構築: エントリファイル、依存モジュール、関連する型定義 - 結果が不十分な場合、1-2回の再帰的取得を追加 - **決して**Bash + find/lsを使用してプロジェクト構造を手動で探索しない **取得後**: - 取得したコードスニペットを整理 - 実装のための完全なコンテキストを確認 - フェーズ3に進む --- ### フェーズ 3: プロトタイプの取得 `[Mode: Prototype]` **タスクタイプに基づいてルーティング**: #### ルート A: フロントエンド/UI/スタイル → Gemini **制限**: コンテキスト < 32kトークン 1. Geminiを呼び出す(`~/.claude/.ccg/prompts/gemini/frontend.md`を使用) 2. 入力: 計画内容 + 取得したコンテキスト + 対象ファイル 3. OUTPUT: `統一差分パッチのみ。実際の変更を厳格に禁止。` 4. **Geminiはフロントエンドデザインの権威であり、そのCSS/React/Vueプロトタイプは最終的なビジュアルベースライン** 5. **警告**: Geminiのバックエンドロジック提案を無視 6. 計画に`GEMINI_SESSION`が含まれている場合: `resume `を優先 #### ルート B: バックエンド/ロジック/アルゴリズム → Codex 1. Codexを呼び出す(`~/.claude/.ccg/prompts/codex/architect.md`を使用) 2. 入力: 計画内容 + 取得したコンテキスト + 対象ファイル 3. OUTPUT: `統一差分パッチのみ。実際の変更を厳格に禁止。` 4. **Codexはバックエンドロジックの権威であり、その論理的推論とデバッグ機能を活用** 5. 計画に`CODEX_SESSION`が含まれている場合: `resume `を優先 #### ルート C: フルスタック → 並列呼び出し 1. **並列呼び出し**(`run_in_background: true`): - Gemini: フロントエンド部分を処理 - Codex: バックエンド部分を処理 2. `TaskOutput`で両方のモデルの完全な結果を待つ 3. それぞれ計画から対応する`SESSION_ID`を使用して`resume`(欠落している場合は新しいセッションを作成) **上記の`マルチモデル呼び出し仕様`の`重要`指示に従ってください** --- ### フェーズ 4: コード実装 `[Mode: Implement]` **コード主権者としてのClaudeが以下のステップを実行**: 1. **差分の読み取り**: Codex/Geminiが返した統一差分パッチを解析 2. **メンタルサンドボックス**: - 対象ファイルへの差分の適用をシミュレート - 論理的一貫性をチェック - 潜在的な競合や副作用を特定 3. **リファクタリングとクリーンアップ**: - 「ダーティプロトタイプ」を**高い可読性、保守性、エンタープライズグレードのコード**にリファクタリング - 冗長なコードを削除 - プロジェクトの既存コード標準への準拠を保証 - **必要でない限りコメント/ドキュメントを生成しない**、コードは自己説明的であるべき 4. **最小限のスコープ**: - 変更は要件の範囲内のみに限定 - 副作用の**必須レビュー** - 対象を絞った修正を実施 5. **変更の適用**: - Edit/Writeツールを使用して実際の変更を実行 - **必要なコードのみを変更**、ユーザーの他の既存機能に影響を与えない 6. **自己検証**(強く推奨): - プロジェクトの既存のlint / typecheck / testsを実行(最小限の関連スコープを優先) - 失敗した場合: 最初にリグレッションを修正し、その後フェーズ5に進む --- ### フェーズ 5: 監査と配信 `[Mode: Audit]` #### 5.1 自動監査 **変更が有効になった後、すぐにCodexとGeminiを並列呼び出ししてコードレビューを実施する必要があります**: 1. **Codexレビュー**(`run_in_background: true`): - ROLE_FILE: `~/.claude/.ccg/prompts/codex/reviewer.md` - 入力: 変更された差分 + 対象ファイル - フォーカス: セキュリティ、パフォーマンス、エラーハンドリング、ロジックの正確性 2. **Geminiレビュー**(`run_in_background: true`): - ROLE_FILE: `~/.claude/.ccg/prompts/gemini/reviewer.md` - 入力: 変更された差分 + 対象ファイル - フォーカス: アクセシビリティ、デザインの一貫性、ユーザーエクスペリエンス `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. **コード主権** – すべてのファイル変更は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を再利用し、実装を実行