mcpField
A
agent-reviews

agent-reviews

github.com/pbakausテスト・品質30835 回インストール2 週間前に更新
リポジトリ

agent-reviews について

現在のプルリクエストに対するレビュー bot の指摘を扱うスキルです。実際のバグ、誤検知、不確かな項目を分類し、修正や返信、追加指摘の監視を案内します。

主な機能

  1. 01未返信の bot 指摘を取得
  2. 02実際の問題と誤検知を分類
  3. 03判断できない指摘をユーザーに確認
  4. 04変更をコミットして指摘に返信
  5. 05新しい bot コメントを監視

活用シーン

  1. 01レビュー bot が報告した実際のバグを修正
  2. 02指摘が該当しない理由を記録
  3. 03不確かな判断や設計判断をユーザーに委ねる

インストール

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

$npx skills add https://github.com/pbakaus/agent-reviews --skill agent-reviews

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

同梱ファイル

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

scripts/
agent-reviews.js
comments.js
format.js
github.js

詳細

現在の PR に対する PR レビューボットの指摘を自動的にレビューし、修正して返信します。決定論的な 2 段階のワークフローを使用します。まず既存の問題をすべて修正し、その後、新しい問題がないか 1 回確認します。

パスに関する注意: 以下の scripts/agent-reviews.js への参照はすべて、このスキルのディレクトリ(SKILL.md ファイルと同じ場所)からの相対パスです。node で実行してください。

フェーズ 1:取得して修正(同期処理)

ステップ 1:現在の PR を特定する
gh pr view --json number,url,headRefName

PR が存在しない場合は、ユーザーに通知して終了します。

ステップ 2:すべてのボットコメントを取得する(詳細表示)

scripts/agent-reviews.js --bots-only --unanswered --expanded を実行します。

未返信のボットコメントのみが、詳細とともに表示されます。内容全体(省略なし)、差分のハンク(コードのコンテキスト)、すべての返信が含まれます。各コメントには角括弧で囲まれた ID(例:[12345678])が表示されます。

コメントが 0 件の場合は、「No unanswered bot comments found」と出力して、フェーズ 2 に進みます。

ステップ 3:未返信の各コメントを処理する

詳細表示された出力から、各コメントについて次の手順を実行します。

A. 指摘を評価する

参照されているコードを読み、次のいずれかを判断します。

  1. 真陽性 - 修正が必要な実際のバグ
  2. 偽陽性 - 実際にはバグではない(意図された動作、ボットの誤解)
  3. 不確実 - 判断できないため、ユーザーに尋ねる

真陽性の可能性が高いケース:

  • コードが明示された動作に明らかに違反している
  • 未定義の可能性がある値に対する null チェックがない
  • 型の不一致、または関数シグネチャの誤り
  • 条件式のロジックエラー
  • 文書化された失敗ケースに対するエラー処理がない

偽陽性の可能性が高いケース:

  • ボットがフレームワークやライブラリのパターンを理解していない
  • コメントで理由を説明しているなど、コードが意図的にその構造になっている
  • ボットがバグではなく、スタイルの好みを指摘している
  • 「バグ」が実際には機能、または意図された動作である
  • ボットがコードの実行フローを誤って読み取っている

判断に迷う場合 — AskUserQuestion を使用する:

  • 修正にアーキテクチャの変更が必要になる
  • その動作が意図的かどうか、本当に判断できない
  • 「バグ」が十分に理解できていないビジネスロジックに関係する
  • 複数の妥当な解釈がある
  • 修正によって意図しない副作用が起きる可能性がある
B. 評価に基づいて対応する

真陽性の場合: コードを修正します。コメント ID と修正内容の簡単な説明を記録します。

偽陽性の場合: コードを変更しないでください。コメント ID と、実際のバグではない理由を記録します。

不確実な場合: AskUserQuestion を使用します。ユーザーがスキップを指示した場合は、スキップとして記録します。

まだコメントに返信しないでください。返信はコミット後に行います(ステップ 5)。

ステップ 4:コミットしてプッシュする

未返信のコメントをすべて評価し、修正した後:

  1. プロジェクトの lint と型チェックを実行します
  2. ステージング、コミット、プッシュを行います:
    git add -A
    git commit -m "fix: address PR review bot findings
    
    {List of bugs fixed, grouped by bot}"
    git push
    
  3. 出力からコミットハッシュを取得します。
ステップ 5:すべてのコメントに返信する

コミットハッシュが確定したら、処理したすべてのコメントに返信します。

各真陽性について:

scripts/agent-reviews.js --reply <comment_id> "Fixed in {hash}. {Brief description of the fix}" を実行します。

各偽陽性について:

scripts/agent-reviews.js --reply <comment_id> "Won't fix: {reason}. {Explanation of why this is intentional or not applicable}" を実行します。

各スキップについて:

scripts/agent-reviews.js --reply <comment_id> "Skipped per user request" を実行します。

すべての返信を投稿するまで、フェーズ 2 を開始しないでください。


フェーズ 2:新しいコメントを確認する(静かになるまでループ)

新しいコメントが見つかると、ウォッチャーはすぐに終了します(一括投稿を検出するため、5 秒間の猶予を設けています)。そのため、ループで実行します。ウォッチャーを開始し、返されたコメントを処理して、ウォッチャーを再起動します。新しいコメントがなく、ウォッチャーがタイムアウトするまで繰り返してください。

ステップ 6:ウォッチャーループを開始する

ウォッチャーが新しいコメントなしで終了するまで、次の手順を繰り返します。

6a. ウォッチャーをバックグラウンドで起動します。

バックグラウンドタスクとして scripts/agent-reviews.js --watch --bots-only を実行します。

6b. TaskOutput を使ってウォッチャーの完了を待ちます(最大 12 分間ブロックします)。

6c. 出力を確認します。

  • 新しいコメントが見つかった場合(出力に EXITING WITH NEW COMMENTS が含まれる場合):

    1. --detail <id> を使って、新しいコメントの詳細をそれぞれ読みます
    2. フェーズ 1 のステップ 3~5 とまったく同じように処理します(評価、修正、コミット、プッシュ、返信)
    3. ステップ 6a に戻り、ウォッチャーを再起動します
  • 新しいコメントがない場合(出力に WATCH COMPLETE が含まれる場合): ループを終了して、サマリーレポートに進みます。


サマリーレポート

両方のフェーズが完了したら、次の内容をまとめてください。

## PR Review Bot Resolution Summary

### Results
- Fixed: X bugs
- Already fixed: X bugs
- Won't fix (false positives): X
- Skipped per user: X

### By Bot
#### cursor[bot]
- BUG-001: {description} - Fixed in {commit}
- BUG-002: {description} - Won't fix: {reason}

#### Copilot
- {description} - Fixed in {commit}

### Status
✅ All findings addressed. Watch completed.

重要な注意事項

返信ポリシー
  • すべての指摘に返信します。無視してはいけません
  • 返信はボットの学習に役立ち、判断の記録にもなります
  • 「修正しない」という返信は、同じ誤検知が再び指摘されるのを防ぎます
ユーザーとのやり取り
  • 指摘に確信が持てない場合は AskUserQuestion を使います
  • アーキテクチャやビジネスロジックに関する質問を推測で判断しないでください
  • 誤った修正や却下をするより、質問するほうが適切です
ベストプラクティス
  • 修正する前に指摘を検証します。ボットは誤検知することがあります
  • 修正は最小限にとどめ、対象を絞ります。無関係なコードのリファクタリングは避けてください
  • コミットする前に、型チェックとリンターを通します
  • 関連する修正は 1 つのコミットにまとめます
  • Copilot の suggestion ブロックには、そのまま使える修正案が含まれていることがよくあります

コメント