Files
everything-claude-code/docs/ja-JP/commands/multi-execute.md
2026-02-12 16:56:29 +09:00

311 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Execute - マルチモデル協調実装
マルチモデル協調実装 - 計画からプロトタイプを取得 → Claudeがリファクタリングして実装 → マルチモデル監査と配信。
$ARGUMENTS
---
## コアプロトコル
- **言語プロトコル**: ツール/モデルとやり取りする際は**英語**を使用し、ユーザーとはユーザーの言語でコミュニケーション
- **コード主権**: 外部モデルは**ファイルシステムへの書き込みアクセスがゼロ**、すべての変更はClaudeが実行
- **ダーティプロトタイプのリファクタリング**: Codex/Geminiの統一差分を「ダーティプロトタイプ」として扱い、本番グレードのコードにリファクタリングする必要がある
- **損失制限メカニズム**: 現在のフェーズの出力が検証されるまで次のフェーズに進まない
- **前提条件**: `/ccg:plan`の出力に対してユーザーが明示的に「Y」と返信した後のみ実行(欠落している場合は最初に確認が必要)
---
## マルチモデル呼び出し仕様
**呼び出し構文**(並列: `run_in_background: true`を使用):
```
# セッション再開呼び出し(推奨) - 実装プロトタイプ
Bash({
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--backend <codex|gemini> {{GEMINI_MODEL_FLAG}}resume <SESSION_ID> - \"$PWD\" <<'EOF'
ROLE_FILE: <ロールプロンプトパス>
<TASK>
Requirement: <タスクの説明>
Context: <計画内容 + 対象ファイル>
</TASK>
OUTPUT: 統一差分パッチのみ。実際の変更を厳格に禁止。
EOF",
run_in_background: true,
timeout: 3600000,
description: "簡潔な説明"
})
# 新規セッション呼び出し - 実装プロトタイプ
Bash({
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--backend <codex|gemini> {{GEMINI_MODEL_FLAG}}- \"$PWD\" <<'EOF'
ROLE_FILE: <ロールプロンプトパス>
<TASK>
Requirement: <タスクの説明>
Context: <計画内容 + 対象ファイル>
</TASK>
OUTPUT: 統一差分パッチのみ。実際の変更を厳格に禁止。
EOF",
run_in_background: true,
timeout: 3600000,
description: "簡潔な説明"
})
```
**監査呼び出し構文**(コードレビュー/監査):
```
Bash({
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--backend <codex|gemini> {{GEMINI_MODEL_FLAG}}resume <SESSION_ID> - \"$PWD\" <<'EOF'
ROLE_FILE: <ロールプロンプトパス>
<TASK>
Scope: 最終的なコード変更を監査。
Inputs:
- 適用されたパッチ(git diff / 最終的な統一差分)
- 変更されたファイル(必要に応じて関連する抜粋)
Constraints:
- ファイルを変更しない。
- ファイルシステムアクセスを前提とするツールコマンドを出力しない。
</TASK>
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 <SESSION_ID>`を使用してコンテキストを再利用します。
**バックグラウンドタスクの待機**(最大タイムアウト600000ms = 10分):
```
TaskOutput({ task_id: "<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 <GEMINI_SESSION>`を優先
#### ルート B: バックエンド/ロジック/アルゴリズム → Codex
1. Codexを呼び出す(`~/.claude/.ccg/prompts/codex/architect.md`を使用)
2. 入力: 計画内容 + 取得したコンテキスト + 対象ファイル
3. OUTPUT: `統一差分パッチのみ。実際の変更を厳格に禁止。`
4. **Codexはバックエンドロジックの権威であり、その論理的推論とデバッグ機能を活用**
5. 計画に`CODEX_SESSION`が含まれている場合: `resume <CODEX_SESSION>`を優先
#### ルート 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 <SESSION_ID>`)の再利用を優先します。
#### 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を再利用し、実装を実行