mcpField
G
gemini-cli

gemini-cli

github.com/secondskyエージェントワークフロー240223 回インストール5 週間前に更新
リポジトリ

gemini-cli について

Claude CodeのワークフローでGoogle公式Gemini CLIを使い、設計やセキュリティ、デバッグ、コードレビューについて別の見解を得るためのスキルです。モデル選択やコマンドの使い方も案内します。

主な機能

  1. 01Gemini CLIへの相談パターン
  2. 02FlashとProのモデル選択
  3. 03セキュリティ・設計レビュー
  4. 04デバッグとコードレビューの手順
  5. 05プロンプトとエラー処理の指針

活用シーン

  1. 01設計判断について別の見解を得る
  2. 02認証コードのセキュリティ上の問題を確認する
  3. 03繰り返し失敗するデバッグの原因を探る

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/secondsky/claude-skills --skill gemini-cli

インストール後、Claude Code で/gemini-cliを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
gemini-experiments.md
helper-functions.md
models-guide.md
prompting-strategies.md
scripts/
install-gemini-coach.sh
setup-slash-command.sh
test-connection.sh

詳細

Gemini CLI

Claude Code のワークフローで、Gemini の 100 万以上のコンテキストウィンドウを AI ペアプログラマーとして活用できます。

このスキルでは、公式の Google Gemini CLI(gemini コマンド)を使って、別の視点からの意見、アーキテクチャに関するアドバイス、デバッグの支援、包括的なコードレビューを得る方法を Claude Code に教えます。公式 CLI ツールを使った本番環境でのテストに基づいています。


目次

  1. クイックスタート
  2. Gemini に相談するタイミング
  3. インストール
  4. モデルの選択:Flash と Pro
  5. 主なユースケース 3 選
  6. 統合例
  7. よくあるエラーと解決策 3 選
  8. リファレンスを読み込むタイミング
  9. 本番環境でのルール

クイックスタート

前提条件:

  • Gemini CLI がインストールされていること(bun add -g @google/gemini-cli)
  • Google アカウントで認証済みであること(gemini を一度実行して認証します)

基本的なコマンドパターン:

# Quick question (non-interactive with -p flag)
gemini -p "Should I use D1 or KV for session storage?"

# Code review with file context
cat src/auth.ts | gemini -p "Review this authentication code for security vulnerabilities"

# Architecture advice using Pro model
gemini -m gemini-2.5-pro -p "Best way to handle WebSockets in Cloudflare Workers?"

# With all files in directory
gemini --all-files -p "Review this auth implementation for security issues"

# Interactive mode for follow-up questions
gemini -i "Help me debug this authentication error"

重要:自動化やスクリプトで非対話型コマンドを実行する場合は、必ず -p フラグを使用してください。


Gemini に相談するタイミング

必ず相談する(重要な状況)

Claude Code は、次の状況で自動的に Gemini を呼び出す必要があります。

  1. 主要なアーキテクチャ上の意思決定

    • 例:「セッションストレージには D1 と KV のどちらを使うべきですか?」
    • 例:「長時間実行されるタスクには Durable Objects と Workflows のどちらがよいですか?」
    • パターン:gemini -m gemini-2.5-pro -p "[architectural question]"
  2. セキュリティに関わるコード変更

    • 認証システム、決済処理、PII の取り扱い
    • API キーやシークレットの管理
    • パターン:cat [security-file] | gemini -m gemini-2.5-pro -p "Security audit this code"
  3. デバッグで行き詰まったとき(2 回以上失敗)

    • デバッグを 2 回試してもエラーが解消されない
    • スタックトレースが不明瞭、または断続的にバグが発生する
    • パターン:gemini -p "Help debug: [error message]" < error.log
  4. 大規模なリファクタリング(5 ファイル以上)

    • コアアーキテクチャの変更、データベーススキーマの移行
    • パターン:gemini --all-files -m gemini-2.5-pro -p "Review this refactoring plan"
  5. コンテキストウィンドウの逼迫(70%以上)

    • トークン上限に近づいており、分析を委ねる必要がある
    • パターン:cat large-file.ts | gemini -p "Analyze this code structure"
必要に応じて相談する
  1. 不慣れな技術 — ライブラリやフレームワークを初めて使うとき
  2. コードレビュー — 大規模な変更をコミットする前

インストール

1. Gemini CLI をインストールする
bun add -g @google/gemini-cli
2. 認証する
gemini

認証プロンプトに従って、Google アカウントをリンクしてください。

3. インストールを確認する
gemini --version  # Should show 0.13.0+
gemini -p "What is 2+2?"  # Test connection

モデルの選択:Flash と Pro

gemini-2.5-flash(デフォルト)
  • 速度:約 5~25 秒
  • 品質:ほとんどのタスクに適しています
  • 用途:コードレビュー、デバッグ、簡単な質問
  • コスト:低め
gemini -m gemini-2.5-flash -p "Review this function for performance issues"
gemini-2.5-pro
  • 速度:約 15~30 秒
  • 品質:優れており、詳細に分析します
  • 用途:アーキテクチャ上の意思決定、セキュリティ監査、大規模なリファクタリング
  • コスト:高め
gemini -m gemini-2.5-pro -p "Security audit this authentication system"
選択の簡易ガイド
Quick question? → Flash
Security/architecture? → Pro
Debugging? → Flash (try Pro if stuck)
Refactoring 5+ files? → Pro

重要な発見:同じ質問に対して、Flash と Pro が正反対の推奨を示すことがあります(どちらも妥当ですが、優先事項が異なります)。Flash はパフォーマンスを優先し、Pro は一貫性と正確性を優先します。詳細については、references/models-guide.md を読み込んでください。


主なユースケース 3 選

1. セキュリティ監査
# Audit authentication code
cat src/middleware/auth.ts | gemini -m gemini-2.5-pro -p "
Security audit this authentication middleware. Check for:
1. Token validation vulnerabilities
2. Timing attack risks
3. Error handling leaks
4. CSRF protection
5. Rate limiting
"
2. アーキテクチャ上の意思決定
# Compare technologies with context
gemini -m gemini-2.5-pro -p "
Context: Building Cloudflare Worker with user authentication.

Question: Should I use D1 or KV for storing session data?

Considerations:
1. Session reads on every request
2. TTL-based expiration
3. Cost under 10M requests/month
4. Deployment complexity
"
3. デバッグでの根本原因の特定
# Analyze error logs with context
tail -100 error.log | gemini -p "
These errors started after deploying auth changes. What's the likely root cause?

Context:
- Added JWT validation middleware
- Using @cloudflare/workers-jwt
- Errors only on /api/* routes
"

その他のユースケースについて:パフォーマンスの最適化、リファクタリング計画、コードレビューについては、references/models-guide.md を読み込んでください。


統合例

Claude が Gemini に自動で相談する

シナリオ:ユーザーがアーキテクチャについて質問する

User: "Should I use D1 or KV for storing user sessions?"

Claude (internal): This is an architectural decision. Consult Gemini for second opinion.

[Runs: gemini -m gemini-2.5-pro -p "Compare D1 vs KV for user session storage in Cloudflare Workers. Consider: read/write patterns, cost, performance, complexity."]

Claude (to user): "I've consulted Gemini for a second opinion. Here's what we both think:

My perspective: [Claude's analysis]
Gemini's perspective: [Gemini's analysis]

Key differences: [synthesis]
Recommendation: [combined recommendation]"

重要なパターン:Gemini の回答をそのまま伝えるのではなく、両方の視点をまとめてください。


よくあるエラーと解決策 3 選

エラー 1:認証されていない

エラー:Error: Not authenticated

解決策:

gemini  # Follow authentication prompts
エラー 2:モデルが見つかりません

エラー:Error: Model not found: gemini-2.5-flash-lite

原因:モデルが廃止または名称変更されています(flash-lite は存在しません)

解決策:安定版モデルのみを使用してください:

gemini -m gemini-2.5-flash -p "Your question"
gemini -m gemini-2.5-pro -p "Your question"
エラー 3:コマンドがハングする

原因:非対話型が想定されている場面で対話モードになっています

解決策:非対話型コマンドでは常に -p フラグを使用してください

# ✅ Correct
gemini -p "Question"

# ❌ Wrong (will hang waiting for input)
gemini "Question"

その他のトラブルシューティング:レート制限、大容量ファイルのコンテキストに関する問題、パフォーマンスのヒントについては、references/models-guide.md を読み込んでください。


参照ファイルを読み込むタイミング

次のような場合に参照ファイルを読み込んでください。

次の場合は references/models-guide.md を読み込んでください:
  • Flash と Pro の違いについてユーザーから尋ねられた場合
  • モデル間で推奨内容が食い違う場合
  • 詳細なパフォーマンス比較が必要な場合
  • 特定のタスク種別に適したモデルを選ぶ場合
  • モデル間で意見が食い違う理由を理解したい場合
次の場合は references/prompting-strategies.md を読み込んでください:
  • Gemini 向けの複雑なプロンプトを作成する場合
  • AI 間のプロンプト形式のテンプレートが必要な場合
  • プロンプトの品質を向上させたい場合
  • 旧方式と新方式のプロンプトを比較する場合
次の場合は references/gemini-experiments.md を読み込んでください:
  • テストの歴史的背景が必要な場合
  • エッジケースを調査する場合
  • 設計上の判断を理解する場合
  • 通常とは異なる動作のトラブルシューティングを行う場合

注:helper-functions.md は廃止されています(公式の gemini CLI ではなく、旧 gemini-coach ラッパーを参照しています)。


本番環境でのルール

1. 自動化では常に -p を使用する
# ✅ Good for scripts
gemini -p "Question"

# ❌ Bad (interactive)
gemini
2. 重要度に応じてモデルを選択する
# Architecture/security → Pro
gemini -m gemini-2.5-pro -p "[critical question]"

# Debugging/review → Flash
gemini -m gemini-2.5-flash -p "[general question]"
3. プロンプトにコンテキストを含める
# ✅ Good: Context + Question + Considerations
gemini -p "Context: Building Cloudflare Worker. Question: Best auth pattern? Considerations: 1) Stateless, 2) JWT, 3) <100ms overhead"

# ❌ Bad: Vague
gemini -p "Best auth?"
4. レビューではファイルの内容をパイプで渡す
# ✅ Efficient
cat src/auth.ts | gemini -p "Review for security"

# ❌ Less efficient
gemini -p "Review src/auth.ts"
5. そのまま転送せず、要約して統合する

❌ 悪い例:Gemini の回答をそのまま貼り付ける

Claude: [runs gemini] "Gemini says: [paste]"

✅ 良い例:両方の視点をまとめる

Claude: "I've consulted Gemini for a second opinion:

My analysis: [Claude's perspective]
Gemini's analysis: [Gemini's perspective]
Key differences: [synthesis]
Recommendation: [unified answer]"
6. エラーに適切に対処する
if output=$(gemini -p "Question" 2>&1); then
  echo "Gemini says: $output"
else
  echo "Gemini consultation failed, proceeding with Claude's recommendation"
fi

バージョン履歴

2.1.0(2025-12-15):

  • 500 行未満に最適化(Phase 12.5 → 13 の圧縮)
  • 詳細な内容を references/ に抽出
  • 「参照ファイルを読み込むタイミング」セクションを追加
  • 上位 3 件のエラーと上位 3 件のユースケースに圧縮

2.0.0(2025-11-13):

  • 公式 Gemini CLI 向けに全面改稿(gemini-coach ラッパーを削除)
  • CLI との直接統合パターン
  • gemini CLI v0.13.0+ 向けにコマンド例を更新

1.0.0(2025-11-08):

  • gemini-coach ラッパーを使用した初回リリース

関連スキル


ライセンス

MIT - LICENSE を参照してください


サポート

コメント