dwgx@blog:~$dwgx
> cd ../posts

claude-gemini-subagent:gemini に力仕事をやらせて claude は判断だけ

// created

claude-gemini-subagent は claude code の skill で、token を食う力仕事をローカルの gemini cli に転送して走らせる。claude code をしばらく使うと気づくが、価値があるのは orchestration と判断で、token を焼くのは資料検索、長いファイルの読み込み、repo を舐めて TODO を探すといった雑務のほうだ。しかもその作業が終わるころには context も埋まっている。この skill のやり方は、claude には planning と検収だけをやらせ、重い作業は独立した context と独立した token 予算を持つ別の gemini に投げ、終わったら結論を一言返させる、というもの。二つの脳を重ねることで、claude の context は常にクリーンに保たれる。

核心は薄い転送だ。gemini の stdout が権威ある返り値であり、claude が勝手に補完したり書き換えたりするのは許さない。中間層が余計な演出を加えた瞬間、答えはぶれる。

権限は自適応する。デフォルトの auto_edit はワークスペースにしか書き込めないが、ネット接続やワークスペース跨ぎが必要になった瞬間に自動で full access に昇格する。承認ダイアログは出さず、claude がどのモードを選んだか、なぜかを一行で説明してそのまま走る。

stderr は /dev/null に捨てず、thinking のストリームは /tmp のログに流し込む。順調なときはターミナルがすっきりし、問題が起きたときはログが全部残っていて、そのまま辿れる。

filename=$(openssl rand -hex 4)
gemini ... 2>>"/tmp/gemini-${filename}.log"

タスクは種類ごとに等級分けする。監査やセキュリティ review には high effort、通常の変更はデフォルトで通す。追加の問い合わせは gemini –resume latest で前回のセッションを再利用し、context を入れ直さない。独立したサブタスクはバックグラウンドに投げて並列で走らせ、長時間タスクは run_in_background に TaskOutput のポーリングと TaskStop のキャンセルを組み合わせる。結果は success / partial / error に分け、静かなリトライはしない。さらに reviewer、debugger、auditor、researcher、refactorer の五つの persona をあらかじめ用意してあり、それぞれ sandbox と effort のデフォルト値を持つ。どれも {{TASK}} プレースホルダ付きの markdown なので、追加したければ同じフォーマットで放り込めばいい。

導入にハードルはない。node 依存なし、設定なし、MCP server なし。~/.claude/skills にコピーするだけでいい。

git clone https://github.com/dwgx/claude-gemini-subagent.git
cp -r claude-gemini-subagent/skills/gemini-subagent ~/.claude/skills/

あとは普通に claude に話しかけるだけで、「この repo の TODO を gemini に投げてスキャンさせて」の一言で自分で発火する。小さいファイルの Read/Edit を置き換えるものではない。その手の小仕事はツールを直接叩くほうが安いからだ。この skill は 3k 以上の token を節約できるときにだけ価値がある。また思考を外注するためのものでもない。gemini は工人であって副操縦士ではなく、判断するのは依然として claude の仕事だ。

リポジトリ https://github.com/dwgx/claude-gemini-subagent