bug-hunt について
bug-huntは、開発者向けのコードレビュー用スキルです。独立した3つのエージェントでプロジェクト、ディレクトリ、ファイル、ブランチの変更を調べ、検証結果を構造化レポートにまとめます。
主な機能
- 013エージェントによる敵対的レビュー
- 02プロジェクト・ディレクトリ・ファイルのスキャン
- 03基準ブランチとの差分スキャン
- 04検出内容の独立検証
- 05重要度順の最終レポート
活用シーン
- 01マージ前の機能ブランチのレビュー
- 02単一ファイルの不具合調査
- 03ディレクトリ内の欠陥チェック
- 04検証済みの問題を重要度順に整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ danpeg/ bug-hunt --skill bug-huntインストール後、Claude Code で/bug-huntを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CODE_OF_CONDUCT.mdREADME.mdLICENSE.gitignoreCONTRIBUTING.mdCHANGELOG.md.github/PULL_REQUEST_TEMPLATE.md.github/ISSUE_TEMPLATE/feature_request.mdbug_report.mdprompts/hunter.mdreferee.mdskeptic.md詳細
バグハント - 敵対的なバグ検出
コードベースに対して、3 つのエージェントによる敵対的なバグハントを実行します。各エージェントは分離された状態で実行されます。
使用方法
/bug-hunt # Scan entire project
/bug-hunt src/ # Scan specific directory
/bug-hunt lib/auth.ts # Scan specific file
/bug-hunt -b feature-xyz # Scan files changed in feature-xyz vs main
/bug-hunt -b feature-xyz --base dev # Scan files changed in feature-xyz vs dev
対象
生の引数は次のとおりです:$ARGUMENTS
引数を次のように解析します:
- 引数に
-b <branch>が含まれる場合、ブランチ差分モードです。-bの後にあるブランチ名を抽出します。--base <base-branch>も指定されている場合は、それをベースブランチとして使用します。それ以外の場合は、デフォルトでmainを使用します。- Bash ツールを使用して
git diff --name-only <base>...<branch>を実行し、変更されたファイルの一覧を取得します。 - コマンドが失敗した場合(ブランチが見つからない場合など)は、エラーをユーザーに報告して終了します。
- 変更されたファイルがない場合は、スキャン対象の変更がないことをユーザーに伝えて終了します。
- スキャン対象は変更されたファイルの一覧です(差分だけでなく、ファイルの全内容をスキャンします)。
- 引数に
-bが含まれない場合は、引数文字列全体をパス対象(ファイルまたはディレクトリ)として扱います。空の場合は、現在の作業ディレクトリをスキャンします。
実行手順
以下の手順を正確にこの順序で実行する必要があります。コンテキストを分離するため、各エージェントは Agent ツールを介した別々のサブエージェントとして実行します。
ステップ 1:引数を解析して対象を確定する
上記の対象セクションの規則に従って、スキャン対象を決定します。ブランチ差分モードの場合は、ここで git diff コマンドを実行してファイル一覧を取得します。
ステップ 2:プロンプトファイルを読み込む
スキルディレクトリ変数を使用して、次のファイルを読み込みます:
- ${CLAUDE_SKILL_DIR}/prompts/hunter.md
- ${CLAUDE_SKILL_DIR}/prompts/skeptic.md
- ${CLAUDE_SKILL_DIR}/prompts/referee.md
ステップ 3:Hunter エージェントを実行する
hunter プロンプトを使用して、汎用サブエージェントを起動します。エージェントのタスクにスキャン対象を含めます。ブランチ差分モードの場合は、明示的なファイル一覧を渡し、Hunter がそのファイルのみを(全内容を)スキャンするようにします。Hunter はツール(Read、Glob、Grep)を使用して、実際のコードを調査する必要があります。
Hunter の完了を待ち、出力全体を取得します。
ステップ 3b:検出結果を確認する
Hunter が TOTAL FINDINGS: 0 と報告した場合は、ステップ 4~5 を省略し、クリーンなレポートを作成するためにステップ 6 に進みます。検出結果が 0 件の場合、Skeptic と Referee を実行する必要はありません。
ステップ 4:Skeptic エージェントを実行する
skeptic プロンプトを使用して、新しい汎用サブエージェントを起動します。Hunter の構造化されたバグ一覧(BUG-ID、ファイル、行、主張、根拠、重大度、ポイント)を挿入します。構造化された検出結果以外の説明や手法に関するテキストは含めないでください。
Skeptic は、各主張を検証するために、コードを独立して読み込む必要があります。
Skeptic の完了を待ち、出力全体を取得します。
ステップ 5:Referee エージェントを実行する
新しい汎用サブエージェントを起動し、referee プロンプトを使用します。次の両方を挿入します:
- Hunter のバグレポート全体
- Skeptic の異議申し立てレポート全体
Referee は、最終判断を行うためにコードを独立して読み込む必要があります。
Referee の完了を待ち、出力全体を取得します。
ステップ 6:最終レポートを提示する
Referee による最終確認済みバグレポートをユーザーに表示します。次の内容を含めます:
- 概要統計
- 確認済みバグの表(重大度順)
- 手動レビューが必要な低信頼度項目
- 却下されたバグを折りたたみセクションに表示(透明性のため)
バグが 1 件も確認されなかった場合は、そのことを明確に伝えます。問題なしという結果も良い結果です。