second-opinion
コミット前の変更、ブランチ差分、または特定のコミットに対して、外部LLM(OpenAI CodexまたはGoogle Gemini CLI)によるコードレビューを実行します。ユーザーがセカンドオピニオンや外部レビュー、CodexレビューやGeminiレビューを求めたとき、または `/second-opinion` に言及したときに使用します。
description の原文を見る
Runs external LLM code reviews (OpenAI Codex or Google Gemini CLI) on uncommitted changes, branch diffs, or specific commits. Use when the user asks for a second opinion, external review, codex review, gemini review, or mentions /second-opinion.
SKILL.md 本文
Second Opinion
別のモデルによる独立したコードレビューのために、外部 LLM CLI にシェルアウトします。OpenAI Codex CLI と Google Gemini CLI に対応しています。
利用する場合
- 異なるモデルからコード変更についてのセカンドオピニオンを得る
- PR を開く前にブランチの差分をレビューする
- コミット前に未コミットの作業を問題がないか確認する
- 焦点を絞ったレビューを実行する (セキュリティ、パフォーマンス、エラーハンドリング)
- 複数のモデルからのレビュー出力を比較する
利用しない場合
- Codex CLI も Gemini CLI もインストールされていない
- どちらのツールの API キーまたはサブスクリプションも設定されていない
- コード以外のファイル (ドキュメント、設定) をレビューする
- Claude 自身のレビューが必要な場合 (Claude に直接聞いてください)
セキュリティに関する注記
Gemini CLI は --yolo で呼び出され、確認なしに全てのツール呼び出しを自動承認します。これはヘッドレス (非対話型) 操作に必要ですが、Gemini がその拡張機能から要求されたツール アクションを確認なしで実行することを意味します。
クイックリファレンス
# Codex (ヘッドレス実行で構造化 JSON 出力)
codex exec --sandbox read-only --ephemeral \
--output-schema codex-review-schema.json \
-o "$output_file" - < "$prompt_file"
# Gemini (コードレビュー拡張)
gemini -p "/code-review" --yolo -e code-review
# Gemini (ヘッドレスで差分 — 完全なパターンは references/ を参照)
git diff HEAD > /tmp/review-diff.txt
{ printf '%s\n\n' 'Review this diff for issues.'; cat /tmp/review-diff.txt; } \
| gemini -p - --yolo -m gemini-3.1-pro-preview
呼び出し
1. コンテキストをインタラクティブに収集
AskUserQuestion を使用して、1 つの質問セットでレビューパラメータを収集します。
ユーザーが既に呼び出しで提供した内容に基づいて質問を調整してください (既に回答した質問はスキップします)。
該当するすべての質問を 1 つの AskUserQuestion 呼び出しに統合します (最大 4 質問)。
質問 1 — ツール (ユーザーが既に指定している場合はスキップ):
header: "Review tool"
question: "Which tool should run the review?"
options:
- "Both Codex and Gemini (Recommended)" → run both in parallel
- "Codex only" → codex exec
- "Gemini only" → gemini CLI
質問 2 — スコープ (ユーザーが既に指定している場合はスキップ):
header: "Review scope"
question: "What should be reviewed?"
options:
- "Uncommitted changes" → git diff HEAD + untracked files
- "Branch diff vs main" → git diff <branch>...HEAD (auto-detect default branch)
- "Specific commit" → git diff <sha>~1..<sha> (follow up for SHA)
質問 3 — プロジェクトコンテキスト (CLAUDE.md も AGENTS.md も存在しない場合はスキップ):
リポジトリルートで最初に CLAUDE.md をチェックしてから AGENTS.md をチェックします。 少なくとも 1 つが存在する場合にのみこの質問を表示します。
header: "Project context"
question: "Include project conventions file so the review
checks against your standards?"
options:
- "Yes, include it"
- "No, standard review"
質問 4 — レビューの焦点 (常に質問):
header: "Review focus"
question: "Any specific focus areas for the review?"
options:
- "General review" → no custom prompt
- "Security & auth" → security-focused prompt
- "Performance" → performance-focused prompt
- "Error handling" → error handling-focused prompt
2. ツールを直接実行
ツール可用性を事前チェックしません。選択したツールをすぐに実行してください。コマンドが「command not found」で失敗する場合、またはエクステンションが見つからない場合は、以下のエラーハンドリング表から install コマンドを報告し、そのツールをスキップします (「Both」が選択された場合は、利用可能なもののみを実行)。
差分プレビュー
回答を収集した後、差分統計を表示します:
# 未コミット (追跡 + 未追跡):
git diff --stat HEAD
git ls-files --others --exclude-standard
# ブランチ差分:
git diff --stat <branch>...HEAD
# 特定のコミット:
git diff --stat <sha>~1..<sha>
差分が空の場合は、停止してユーザーに伝えます。
差分が非常に大きい場合 (変更が 2000 行以上)、ユーザーに警告して、続行するかスコープを縮小するかを確認します。
適用されないチェックをスキップ
差分スコープを決定した後、実際に変更されたファイルに適用されないチェックをスキップします。
依存関係スキャン
差分が依存関係マニフェストファイルに触れている場合のみ /security:scan-deps を実行します。以下で確認します:
git diff --name-only <scope> \
| grep -qiE '(package\.json|package-lock|yarn\.lock|pnpm-lock|Gemfile|\.gemspec|requirements\.txt|setup\.py|setup\.cfg|pyproject\.toml|poetry\.lock|uv\.lock|Cargo\.toml|Cargo\.lock|go\.mod|go\.sum|composer\.json|composer\.lock|Pipfile)'
依存関係ファイルが差分に含まれていない場合は、セキュリティフォーカスが選択されていてもスキャンをスキップします。スキャンはプロジェクト全体の依存関係ツリーを分析するため、依存関係が変更されていない場合は時間を追加するだけで価値がありません。
デフォルトブランチを自動検出
ブランチ差分スコープについて、デフォルトブランチ名を検出します:
git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null \
| sed 's@^refs/remotes/origin/@@' || echo main
Codex 呼び出し
完全な詳細については references/codex-invocation.md を参照してください。コマンド構文、プロンプト組み立て、構造化出力スキーマについての説明があります。
要約:
- ヘッドレス操作には
codex reviewではなくcodex execを使用 - モデル:
gpt-5.3-codex、reasoning:xhigh - OpenAI の公開済みコードレビュープロンプトを使用 (モデルにファインチューニング済み)
- 差分は手動で生成され、プロンプトとともに stdin 経由でパイプされる
--output-schemaは構造化 JSON 結果を生成-oは最終メッセージのみをキャプチャ (思考/実行ノイズなし)- 3 つすべてのスコープ (未コミット、ブランチ、コミット) がプロジェクトコンテキストとフォーカス指示をサポート (制限なし)
- 認証エラー時は
gpt-5.2-codexにフォールバック - 出力はクリーンな JSON — 結果を解析して優先度ごとに提示
- Bash 呼び出しで
timeout: 600000を設定
Gemini 呼び出し
完全な詳細については references/gemini-invocation.md を参照してください。フラグ、スコープマッピング、エクステンション使用についての説明があります。
要約:
- モデル:
gemini-3.1-pro-preview、フラグ:--yolo、-e、-m - 未コミットの一般的なレビューの場合:
gemini -p "/code-review" --yolo -e code-review - ブランチ/コミット差分の場合:
git diffをgemini -pにパイプ - セキュリティエクステンション名は
gemini-cli-security(securityではない) /security:analyzeは対話型のみ — 代わりにセキュリティプロンプトで-pを使用/security:scan-depsはセキュリティフォーカスが選択されている かつ 差分が依存関係マニフェストファイルに触れている場合のみ実行 (差分対応の最適化を参照)- Bash 呼び出しで
timeout: 600000を設定
git diff のスコープマッピング (Gemini に組み込みのスコープフラグなし):
| スコープ | 差分コマンド |
|---|---|
| 未コミット | git diff HEAD + 未追跡 (codex-invocation.md を参照) |
| ブランチ差分 | git diff <branch>...HEAD |
| 特定のコミット | git diff <sha>~1..<sha> |
両方を実行する場合
ユーザーが「Both」(デフォルト) を選択した場合:
- Codex と Gemini を並列実行 — 単一レスポンスで両方の Bash ツール呼び出しを発行します。両方のコマンドは読み取り専用です (外部 API 経由で差分をレビュー) ため、共有状態や git ロック競合はありません。
- 両方の結果を収集してから、明確なヘッダーで提示します:
## Codex Review (gpt-5.3-codex)
<codex output>
## Gemini Review (gemini-3.1-pro-preview)
<gemini output>
2 つのレビューが一致する箇所と異なる箇所を要約します。
エラーハンドリング
| エラー | アクション |
|---|---|
codex: command not found | ユーザーに告知: npm i -g @openai/codex |
gemini: command not found | ユーザーに告知: npm i -g @google/gemini-cli |
Gemini code-review エクステンション見つからない | ユーザーに告知: gemini extensions install https://github.com/gemini-cli-extensions/code-review |
Gemini gemini-cli-security エクステンション見つからない | ユーザーに告知: gemini extensions install https://github.com/gemini-cli-extensions/security |
| モデル認証エラー (Codex) | gpt-5.2-codex で再試行 |
| 空の差分 | レビューする変更がないことをユーザーに告知 |
| タイムアウト | ユーザーに通知し、差分スコープを縮小することを提案 |
| ツール部分的に利用不可 | 利用可能なツールのみを実行し、スキップを記載 |
例
両方のツール (デフォルト):
User: /second-opinion
Claude: [asks 4 questions: tool, scope, context, focus]
User: picks "Both", "Branch diff", "Yes include CLAUDE.md", "Security"
Claude: [detects default branch = main]
Claude: [shows diff --stat: 6 files, +103 -15]
Claude: [assembles prompt with review instructions + CLAUDE.md + security focus + diff]
Claude: [runs codex exec and gemini in parallel]
Claude: [reads codex output file, parses structured findings]
Claude: [presents both reviews, highlights agreements/differences]
Codex のみでインライン引数:
User: /second-opinion check uncommitted changes for bugs
Claude: [scope known: uncommitted, focus known: custom]
Claude: [asks 2 questions: tool, project context]
User: picks "Codex only", "No context"
Claude: [shows diff --stat: 3 files, +45 -10]
Claude: [writes prompt file with review instructions + diff]
Claude: [runs codex exec, reads structured JSON output]
Claude: [presents findings by priority with file:line refs]
Gemini のみ:
User: /second-opinion
Claude: [asks 4 questions]
User: picks "Gemini only", "Uncommitted", "No", "General"
Claude: [shows diff --stat: 2 files, +20 -5]
Claude: [runs gemini -p "/code-review" --yolo -e code-review]
Claude: [presents review]
大きな差分警告:
User: /second-opinion
Claude: [asks questions] → user picks "Both", "Uncommitted", "General"
Claude: [shows diff --stat: 45 files, +3200 -890]
Claude: "Large diff (3200+ lines). Proceed, or narrow the scope?"
User: "proceed"
Claude: [runs both reviews]
ライセンス: CC-BY-SA-4.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- trailofbits
- リポジトリ
- trailofbits/skills
- ライセンス
- CC-BY-SA-4.0
- 最終更新
- 不明
Source: https://github.com/trailofbits/skills / ライセンス: CC-BY-SA-4.0
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。