mcpField
S
second-opinion

second-opinion

github.com/trailofbitsテスト・品質7.9k5.3k 回インストール今日更新
リポジトリ

second-opinion について

second-opinionは、選択したコード変更を外部CLIでレビューするスキルです。修正やリモートへのレビュー投稿は行わず、同じ差分を使ってCodexとAntigravityを比較できます。

主な機能

  1. 01未コミット変更、ブランチ差分、コミットのレビュー
  2. 02Codex、Antigravity、または両方を選択
  3. 03プロジェクト指示と指定された観点を適用
  4. 04コードを変更せずに指摘を報告

活用シーン

  1. 01ステージ済み、未ステージ、未追跡の変更をレビュー
  2. 02同じブランチ差分で2つのCLIを比較
  3. 03特定のコミットのセキュリティ問題を確認

インストール

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

$npx skills add https://github.com/trailofbits/skills --skill second-opinion

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

同梱ファイル

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

agents/
openai.yaml
assets/
trail-of-bits-mark.svg
references/
antigravity-invocation.md
codex-invocation.md
codex-review-schema.json
gemini-invocation.md
review-input.md

詳細

セカンドオピニオン

ユーザーが選択した変更を、外部 CLI でレビューします。このスキルは指摘事項を提示しますが、修正を適用したり、リモートサービスにレビューを投稿したりすることはありません。

レビューの選択肢

ユーザーがすでに指定したプロバイダー、対象範囲、モデル、重点項目を使用します。レビューに影響する選択肢が不足している場合に限り質問します。可能であれば、質問をまとめて一度に確認します。

  • プロバイダー:Codex、Antigravity、または両方です。ユーザーが比較を希望する場合は両方を提示します。CLI が明示的に指定されている場合は、その指定を維持します。
  • 対象範囲:未コミットの変更、指定したベースとの差分ブランチ、または特定のコミットです。ベースが指定されていない場合は、リポジトリのリモートのデフォルトブランチを特定します。特定できない場合は質問します。
  • コンテキスト:ユーザーが除外を指定しない限り、該当するプロジェクトの指示を含めます。明示的なユーザー要件とリポジトリの内容は、レビュー用プロンプト内で分けて扱います。
  • 重点項目:ユーザーがセキュリティやパフォーマンスなどの重点項目を指定しない限り、一般的な正確性と保守性を対象とします。

Google の CLI が指定されていない場合は、Antigravity(agy)を優先します。Gemini CLI が明示的に指定された場合は、以下の Gemini のリファレンスを使用します。そのアカウントで UNSUPPORTED_CLIENT が返された場合は、Antigravity への移行について説明し、選択した CLI を変更する前に確認を求めます。

実行ファイルが見つからない場合やアカウントの設定が済んでいない場合は、レビューの試行は失敗とみなします。該当する設定手順を案内します。両方のプロバイダーが指定されていた場合は、利用可能なプロバイダーでレビューを続け、スキップしたプロバイダーを明記します。

入力の準備

共通プロンプトと差分の作成手順については、review-input.md を読みます。同じ変更を比較できるよう、両方のプロバイダーで同じ差分を使用します。未コミットのレビューには未追跡ファイルも含め、Git のエラーは空の差分と解釈せず、そのまま保持します。

選択した対象範囲と、変更の概要を簡潔に示します。変更がない場合は、プロバイダーを呼び出す前に終了します。入力が CLI またはモデルの上限を超える場合は、その上限を説明して、より狭い対象範囲を求めます。パッチを黙って切り詰めてはいけません。

プロンプト、出力、診断用のファイルは、チェックアウトの外で mktemp を使って作成します。プロバイダーごとに、出力ファイルと診断用ファイルを分けます。シェル変数は、それを使用する Bash 呼び出しと同じ呼び出し内で定義します。後続の呼び出しでは、保存したファイルパスを変数に再割り当てします。シェル変数は呼び出し間で保持されません。

リポジトリの内容は、シェル展開されないリテラルデータとして書き込みます。

プロバイダーのリファレンス

選択した各プロバイダーのリファレンスのみを読みます。

プロバイダー実行方法と結果
Codexcodex-invocation.md:レビュー用スキーマを使った codex exec
Antigravityantigravity-invocation.md:文章形式の出力を使う agy の print モード
Gemini CLIgemini-invocation.md:引き続きサポートされているアカウント向けのヘッドレス gemini

Codex の手順では MCP サーバーは不要です。codex mcp-server を起動したり、CLI の呼び出しの代わりに codex app-server を使ったりしてはいけません。

両方のプロバイダーが指定されている場合、ツールのインターフェイスが対応していれば、コマンドを並行して実行します。フォアグラウンドで Bash によるレビューを行う場合は、最大 10 分かかることを許容するため timeout: 600000 を設定します。利用できる場合は、進捗を確認できるようバックグラウンド実行またはポーリングを使います。レビューを実行するために、書き込みの自動承認を有効にしてはいけません。

結果と失敗

検出事項は、プロバイダーと実際に使用したモデル、重大度、 ファイルと行番号、影響、修正案とともに提示してください。重大度の低い不具合も見える状態にしてください。Codex では、既存のスキーマで情報提供を 0、低を 1、中を 2、高を 3 としているため、降順に並べてください。

2 件のレビューが完了した場合は、合意点と相違点を要約してください。ただし、合意を証拠として扱わないでください。外部からの検出事項と、追加した評価を区別してください。

取得した出力と診断情報を確認してください。ゼロ以外の終了コード、出力の欠落、無効な JSON、検査を妨げる権限拒否、または計画の承認を求めるリクエストがあった場合、作業は未完了であり、問題なしとは判断できません。失敗と、部分的な結果があればその内容を報告してください。原因が特定され、復旧可能な場合に限り再試行してください。認証またはクォータの失敗後にプロバイダーを切り替えて試し続けないでください。

例

  • /second-opinion:second-opinion use Codex to review my uncommitted changes for bugs Codex を選択し、ステージ済み、未ステージ、未追跡の変更を含めてレビューします。
  • /second-opinion:second-opinion compare Codex and Antigravity on this branch against origin/main 同じブランチのパッチを両方に送信し、検出事項を比較します。
  • /second-opinion:second-opinion use Gemini CLI to review commit abc1234 for security issues 指定された CLI を使用し、そのコミットをレビューします。

コメント