cross-agent-delegation について
cross-agent-delegationは、Claude CodeからKimiやCodexへコーディングタスクを振り分けるスキルです。複雑さとリスクに基づいて委譲先を決め、テスト合格後のCodexレビューを自動実行します。
主な機能
- 01複雑さとリスクに基づくタスク振り分け
- 02Claude CodeからKimiへの委譲
- 03テスト合格後のCodex自動レビュー
- 04コード変更前後のiCPGチェック
- 05Mnemosチェックポイントによるコンテキスト転送
活用シーン
- 01範囲の明確なコーディングタスクのKimiへの委譲
- 02完了した変更のCodexレビュー
- 03コーディングエージェント間のタスクコンテキスト共有
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alinaqi/ maggy --skill cross-agent-delegationインストール後、Claude Code で/cross-agent-delegationを入力して読み込まれたか確認します。
詳細
エージェント間の委任
Claude Code は、Kimi と Codex へのタスクの振り分けを調整します。ユーザーは Claude とのみやり取りし、委任はバックグラウンドで行われます。
ツールの検出
セッション開始時に、利用可能なツールを検出します。
command -v kimi &>/dev/null && HAS_KIMI=true || HAS_KIMI=false
command -v codex &>/dev/null && HAS_CODEX=true || HAS_CODEX=false
Codex による自動レビュー(Stop フック — 自動)
Codex がインストールされている場合、テストの成功後に Stop フックがコードをレビューします。
- TDD ループチェックでテストを実行します
codex-auto-review.shが差分に対して Codex を実行します- 重大または高リスクの指摘が Claude にフィードバックされます(exit 2)
- 問題のないレビューはそのまま通過します(exit 0)
すべて自動で行われます。 ユーザーや Claude による操作は不要です。
Kimi への委任(Claude が調整)
Kimi がインストールされていて、タスクの複雑さに上限を見込める場合、Claude が直接委任するため、ユーザーが何かを実行する必要はありません。
ステップ 1:ファイル数ではなく複雑さを評価する
ファイル数は、委任のリスクを測る指標として適切ではありません。認証パスの 1 ファイルの変更は、12 ファイルの名前変更より難しい場合があります。iCPG のシグナルと Claude の意味的推論に基づき、次の 5 つの観点をそれぞれ 0~2 で評価します。
| 観点 | 0(低) | 1(中) | 2(高) | 情報源 |
|---|---|---|---|---|
| 循環的複雑度/表層の深さ | 10 LOC 未満、分岐なし | 10~50 LOC、分岐 3 個以下 | 50+ LOC またはネストされた制御フロー | 関数本体に対する iCPG query_graph |
| ファンアウト(利用側への影響範囲) | 呼び出し元 0~2 個 | 呼び出し元 3~10 個 | 呼び出し元 11 個以上 | iCPG trace_path(<symbol>, mode=callers) |
| セキュリティ境界をまたぐか(SEC-006、認証、PII、RLS、組織スコープ、課金、決済) | なし | 間接的 | 直接の読み取りまたは書き込み | iCPG SEC-*/R-063 タグと、org_id、user_id、auth、pii の grep |
| 並行処理/トランザクション | 純粋/同期 | 非同期のみ | ロック、トランザクション、アトミックな取得、FOR UPDATE、asyncio.Lock、session.begin | iCPG の並行処理フラグと grep |
| 必要なドメイン不変条件 | なし/インラインで十分に文書化されている | 暗黙的なものがいくつかある(1~2 ファイルの確認が必要) | 多い(複数ドキュメント、ADR、RFC に依存) | Claude の推論と iCPG の ADR リンク |
# Auto-collect signals
icpg query blast <scope> --format json # fan-out, async flags, sec tags
grep -rE "org_id|user_id|auth|pii" <file> # cheap sec heuristic if iCPG flags absent
grep -rE "asyncio.Lock|FOR UPDATE|session.begin" <file> # concurrency heuristic
ステップ 2:合計 → 振り分け
| 合計スコア | 振り分け先 | 理由 |
|---|---|---|
| 0-3 | Kimi 単独 | 対象範囲が限定され、セキュリティ/並行処理/複数ドキュメントに関する懸念がない |
| 4-6 | Kimi → Codex による自動レビュー(ユーザーへの確認なし) | 実際のリスクはあるものの、Claude の完全なコンテキストが必要なほどではありません。Codex が Kimi の見落としを検出します |
| 7-10 | Claude が直接対応 | 横断的/セキュリティ上重要/並行処理が多いタスクのため、完全なコンテキストが必要です |
ステップ 3:下限 — ごく単純なケースのショートカット
本当に単純な作業で iCPG クエリのコストを省くには、次のようにします。
# If <2 files changed AND no SEC/auth/PII/concurrency keyword in diff,
# → auto-Kimi without scoring.
FILES=$(git diff --name-only | wc -l)
HAS_RISK_KEYWORDS=$(git diff | grep -ciE "org_id|auth|pii|asyncio|FOR UPDATE|transaction|session\.begin" || true)
if [ "$FILES" -lt 2 ] && [ "$HAS_RISK_KEYWORDS" -eq 0 ]; then
AUTO_KIMI=true
fi
これにより、iCPG との往復を行わずに、ごく単純な名前変更や誤字修正に対応できます。
委任しない場合(スコアより優先)
- ユーザーが Claude に直接対応するよう明示的に依頼した場合
- サービスをまたぐ変更(API + フロントエンド + データベース)。スコアに関係なく完全なコンテキストが必要です
- リリースブランチでの本番環境の緊急修正。複数ツールによるレビューの遅延が大きすぎます
- いずれか 1 つの観点でスコアが 7 以上の場合(重要な軸が 1 つでもあれば、Claude が関与します)
ステップ 4:Bash 経由で委任
Claude は mnemos チェックポイントを書き込んでから、ヘッドレスで Kimi を実行します。
# 1. Save current context to disk
mnemos checkpoint --force
# 2. Get context summary for Kimi
CONTEXT=$(mnemos resume 2>/dev/null)
# 3. Get constraints for target files
CONSTRAINTS=$(icpg query constraints <target-file> 2>/dev/null)
# 4. Run Kimi headless with full context
kimi --print -y -w . -p "
## Context (from mnemos checkpoint)
$CONTEXT
## Constraints (from iCPG)
$CONSTRAINTS
## Task
<specific task description>
## Rules
- Run tests after changes
- Record changes: icpg record --base main
- Write checkpoint when done: mnemos checkpoint --force
"
ステップ 4:結果を確認
Kimi の完了後、Claude は次の処理を行います。
# Read what Kimi did
mnemos resume # Kimi's checkpoint
icpg status # Kimi's recorded symbols
git diff # Kimi's file changes
委任しない場合
- セキュリティ上機密性の高いコード(認証、暗号、決済)
- サービスをまたぐ変更(API + フロントエンド + データベース)
- 共有インターフェースに触れるリファクタリング
- ユーザーが Claude に直接対応するよう明示的に依頼した場合
iCPG — すべてのエージェントで必須
コードを変更する前に、Claude は次のクエリを実行し、委任時にはその結果を含めます。
タスク開始前のクエリ
# 1. Duplicate check — already done?
icpg query prior "<goal>"
# 2. Constraints — what invariants apply?
icpg query constraints <file-path>
# 3. Risk — is this symbol fragile?
icpg query risk <symbol-name>
コード変更後
icpg record --reason <id> --base main
icpg drift check
Mnemos — すべてのエージェントで必須
タスク開始時
mnemos add goal "<task description>"
サブゴールの境界で
mnemos checkpoint
タスク終了時(Stop フックが自動処理)
mnemos checkpoint --force
ツール間のコンテキスト転送
チェックポイントが橋渡しとなります。Claude が書き込み、Kimi が読み取ります。
# Claude saves state
mnemos checkpoint --force
# Kimi (or Codex) reads state
mnemos resume
チェックポイントには、目標、制約、最近のファイル、Git の状態、疲労レベルが含まれます。
オーケストレーションの全体フロー
TASK ARRIVES (user tells Claude)
|
v
[1] Claude: icpg query prior "<goal>" ← Already done?
[2] Claude: trivial-case shortcut ← <2 files & no risk keywords?
|
+-- YES + Kimi installed -----> AUTO-KIMI (no scoring)
|
+-- NO ↓
v
[3] Claude: score complexity (5 dims × 0-2, iCPG + reasoning)
|
+-- score 0-3 ----> KIMI SOLO PATH
| [a] mnemos checkpoint --force
| [b] kimi --print -y -p "..."
| [c] mnemos resume + git diff
| [d] Continue in Claude
|
+-- score 4-6 ----> KIMI + CODEX REVIEW PATH
| [a] mnemos checkpoint --force
| [b] kimi --print -y -p "..."
| [c] codex review --uncommitted ← Auto-review the diff
| [d] If P0/P1 findings: re-prompt Kimi with findings
| [e] Once clean: continue in Claude
|
+-- score 7-10 ----> CLAUDE DIRECT PATH (full context)
|
v
[4] icpg query constraints <files> ← Invariants
[5] icpg query risk <symbols> ← Fragility
[6] mnemos add goal "<task>" ← Track in memory
|
v
[7] IMPLEMENT (TDD: RED -> GREEN)
|
v
[8] Stop: tdd-loop-check.sh ← Tests pass?
[9] Stop: codex-auto-review.sh ← Codex reviews diff
[10] Stop: icpg-stop-record.sh ← Record symbols
[11] Stop: mnemos-checkpoint.sh ← Save memory