# cli-executor > Claude/Codex/Gemini CLI を実行してタスクを委譲する。並列実行や外部モデルへの委譲時に使用。 - Author: straydog - Repository: koizumikento/cc-mmo - Version: 20260124101725 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/koizumikento/cc-mmo - Web: https://mule.run/skillshub/@@koizumikento/cc-mmo~cli-executor:20260124101725 --- --- name: cli-executor description: Claude/Codex/Gemini CLI を実行してタスクを委譲する。並列実行や外部モデルへの委譲時に使用。 --- # CLI Executor Claude, Codex, Gemini の各 CLI をヘッドレスモードで実行し、結果を収集します。 ## サポート CLI ### Claude CLI ```bash claude -p "" \ --output-format json \ --dangerously-skip-permissions ``` | オプション | 説明 | |-----------|------| | `-p` | プロンプト(タスク指示) | | `--output-format json` | JSON 形式で出力 | | `--dangerously-skip-permissions` | 権限確認をスキップ | ### Codex CLI ```bash codex exec -p "" \ --output-format json \ --path \ --dangerously-bypass-approvals-and-sandbox ``` | オプション | 説明 | |-----------|------| | `exec` | 実行モード | | `-p` | プロンプト(タスク指示) | | `--output-format json` | JSON 形式で出力 | | `--path` | 作業ディレクトリ | | `--dangerously-bypass-approvals-and-sandbox` | 承認とサンドボックスをバイパス | ### Gemini CLI ```bash gemini -p "" \ --output-format json \ --sandbox=false ``` | オプション | 説明 | |-----------|------| | `-p` | プロンプト(タスク指示) | | `--output-format json` | JSON 形式で出力 | | `--sandbox=false` | サンドボックスを無効化 | ## コンテキスト構築 プロンプトには以下の情報を含める: ### Layer 1: 最小コンテキスト(常に含める) - 作業ディレクトリのパス - タスクの指示文 - 言語/フレームワーク情報 ### Layer 2: タスク関連コンテキスト(必要に応じて) - 対象ファイルの内容 - エラーログ/スタックトレース - 直近の変更差分 (`git diff`) ### Layer 3: 拡張コンテキスト(明示的に要求された場合) - プロジェクト全体の構造 - 依存関係情報 - CLAUDE.md / GEMINI.md / AGENTS.md の内容 ## プロンプトテンプレート ```markdown ## 作業ディレクトリ ${WORKTREE_PATH} ## プロジェクト情報 - 言語: ${LANGUAGE} - フレームワーク: ${FRAMEWORK} - パッケージマネージャ: ${PACKAGE_MANAGER} ## タスク ${TASK_DESCRIPTION} ## 対象ファイル ${FILE_CONTENTS} ## 制約 - 品質ゲート(テスト/Lint/型チェック)を通過するコードを書くこと - 既存のコードスタイルに従うこと - Python プロジェクトでは uv のみ使用すること(pip/poetry/conda 禁止) ``` ## 実行パターン ### 単一 CLI 実行 ```bash cd "${WORKTREE_PATH}" && \ claude -p "${PROMPT}" --output-format json --dangerously-skip-permissions \ > /tmp/mmo-result-claude.json 2>&1 ``` ### 並列実行 ```bash # バックグラウンドで並列実行 (cd .worktree/claude-work && claude -p "${PROMPT}" --output-format json --dangerously-skip-permissions > /tmp/mmo-claude.json 2>&1) & PID_CLAUDE=$! (cd .worktree/gemini-work && gemini -p "${PROMPT}" --output-format json --sandbox=false > /tmp/mmo-gemini.json 2>&1) & PID_GEMINI=$! (cd .worktree/codex-work && codex exec -p "${PROMPT}" --output-format json --dangerously-bypass-approvals-and-sandbox > /tmp/mmo-codex.json 2>&1) & PID_CODEX=$! # 完了待機 wait $PID_CLAUDE $PID_GEMINI $PID_CODEX ``` ## 出力ハンドリング ### 期待される出力形式 ```json { "status": "success", "changes": [ { "file": "src/auth/login.ts", "action": "modified" } ], "message": "ログイン機能を実装しました", "errors": [] } ``` ### 結果の検証 1. JSON が有効かどうか確認 2. `status` フィールドをチェック 3. `errors` 配列が空かどうか確認 4. 変更されたファイルリストを抽出 ## エラーハンドリング ### リトライポリシー | 項目 | 値 | |------|-----| | 最大リトライ回数 | 3 | | 無応答タイムアウト | 60秒 | | フォールバック先 | Claude | ### エラー時のフロー ``` CLI 実行失敗 │ ▼ リトライ (最大3回) │ ├─ 成功 → 結果返却 │ └─ 3回失敗 → Claude にフォールバック │ ▼ 「〇〇で試みたが失敗、 Claudeで対応します」と報告 ``` ## CLI 可用性チェック 実行前に CLI がインストールされているか確認: ```bash # Claude CLI command -v claude >/dev/null 2>&1 && echo "claude: available" # Codex CLI command -v codex >/dev/null 2>&1 && echo "codex: available" # Gemini CLI command -v gemini >/dev/null 2>&1 && echo "gemini: available" ``` 利用可能な CLI のみで並列実行を構成する(グレースフルデグラデーション)。