ota2000
4 min read

Claude Code から Gemini CLI を呼び出してレビューさせる

Claude Code でコードを書いて、セルフレビューもさせている。が、これは自分で書いたコードを自分でレビューしているのと同じで、どうしても甘くなる。別のモデルにも見せたい。

最近 Codex CLI のレビューが良いという話を聞くが、ChatGPT Plus 以上の契約が必要で、自分は入っていない。Google AI Pro は契約しているので Gemini CLI を使うことにした。無料枠でも Google アカウントがあれば 1,000リクエスト/日使える。Pro なら日次上限がさらに高い。

セットアップ

npm install -g @google/gemini-cli

API キーは Google AI Studio で発行する。Claude Code の ~/.claude/settings.json に環境変数として入れておく。

{
  "env": {
    "GEMINI_API_KEY": "your_api_key"
  }
}

スキルを作る

~/.claude/skills/gemini-review/SKILL.md を置く。

---
name: gemini-review
description: "Run code review using Gemini CLI. Use when: 'gemini review', 'Geminiでレビュー'."
user_invocable: true
---

# Gemini Review

Gemini CLI を使ってコードレビューを実行する。
差分を取得して gemini -p に渡す。Gemini の出力はそのまま表示する。

スキルの中にコマンド例を書いておくと、Claude Code がそのまま実行してくれる。

git diff HEAD~1 | gemini -p "You are an expert code reviewer. Review the following git diff. Focus on bugs, security issues, and logic errors only. Be concise. Output in Japanese."

/gemini-review とタイプするだけ。差分が Gemini に渡ってレビュー結果が返ってくる。

実際に使ってみた

dlt-community-sources の AI ルール同期スクリプトをレビューさせた。Claude のセルフレビューでは「指摘なし、LGTM」だったが、Gemini はこう返してきた。

scripts/sync-ai-rules.sh: .ai/skills/*.md のループにおいて、ファイルが一つも存在しない場合にシェル設定(nullglob 等)によってはリテラル文字列として処理される可能性があります

glob が空ディレクトリでマッチしないケースの指摘。今は問題ないが、スキルファイルを全部消したらスクリプトがコケる。compgen -G でガードを追加した。

Claude が自分のコードに LGTM を出した直後に Gemini が穴を見つけるのは、まさにこういうのを期待していた。

使い分け

Claude Code のセルフレビュー(/review)でバグやロジックエラーを潰してから、/gemini-review で別視点のチェックを入れる。同じモデルに何度見せても出てこないものが、モデルを変えると出てくることがある。

おまけ:AI ルールを一箇所で管理する

このリポジトリでは .ai/rules.md だけを編集して、sync スクリプトで各ツール向けのファイルに配布している。

ファイルツール
CLAUDE.mdClaude Code
AGENTS.mdCodex CLI
GEMINI.mdGemini CLI
.cursor/rules/Cursor
.github/copilot-instructions.mdGitHub Copilot

Gemini CLI もスキルに対応しているので .ai/skills/*.md.gemini/skills/ にも同期している。コントリビューターがどのツールを使っていてもルールが同じになる。