mcpField
S
sentry-code-review

sentry-code-review

github.com/getsentryテスト・品質2722.5k 回インストール今日更新
リポジトリ

sentry-code-review について

Sentry Code Review は、GitHub のプルリクエストにある Sentry のレビューコメントを分析し、確認済みの問題への対処を案内するスキルです。Sentry のコメントを抽出し、該当コードを確認して、的を絞った修正を支援します。

主な機能

  1. 01プルリクエストの Sentry コメント取得
  2. 02問題の詳細と修正案の抽出
  3. 03該当コードでの指摘内容の検証
  4. 04問題に応じた修正の案内

活用シーン

  1. 01GitHub のプルリクエストで Sentry の指摘を確認
  2. 02報告された不具合が残っているか検証
  3. 03確認済みの修正を適用して要約

インストール

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

$npx skills add https://github.com/getsentry/sentry-for-ai --skill sentry-code-review

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

詳細

すべてのスキル > ワークフロー > コードレビュー

Sentry コードレビュー

GitHub プルリクエストのレビューコメントで Sentry が特定した問題を分析し、解決するための専門スキルです。

Sentry PR レビューコメントの形式

Sentry は、PR のコード変更に対して行単位のレビューコメントを投稿します。各コメントには次の内容が含まれます。

コメントのメタデータ(API から取得)
  • author:ボットのユーザー名(例:「sentry[bot]」)
  • file:コメント対象の特定のファイル(例:「src/sentry/seer/explorer/tools.py」)
  • line:コード内の行番号(ファイル全体へのコメントの場合は null のことがあります)
  • body:コメントの全文(HTML の詳細タグを含む Markdown)
本文の構成

body フィールドには、折りたたみ可能なセクションを含む Markdown が格納されます。

ヘッダー:

**Bug:** [Issue description]
<sub>Severity: CRITICAL | Confidence: 1.00</sub>

分析セクション(<details> タグ内):

<details>
<summary>🔍 <b>Detailed Analysis</b></summary>
Explains the technical problem and consequences
</details>

修正セクション(<details> タグ内):

<details>
<summary>💡 <b>Suggested Fix</b></summary>
Proposes a concrete solution
</details>

AI エージェントのプロンプト(<details> タグ内):

<details>
<summary>🤖 <b>Prompt for AI Agent</b></summary>
Specific instructions for reviewing and fixing the issue
Includes: Location (file#line), Potential issue description
</details>
問題の例
  1. None 値による TypeError

    • リストが期待されている箇所で None を返す関数
    • 反復処理の前に null チェックがない
  2. 検証の問題

    • 入力検証が寛容すぎる
    • 無効なデータがそのまま通過する
  3. エラーハンドリングの不備

    • エラーがログに記録されるが、再スローされない
    • 重要な処理経路でエラーがサイレントに失敗する

ワークフロー

1. PR コメントを取得する

PR 番号または URL が指定された場合:

# Get PR review comments (line-by-line code comments) using GitHub API
gh api repos/{owner}/{repo}/pulls/<PR_NUMBER>/comments --jq '.[] | select(.user.login | startswith("sentry")) | {author: .user.login, file: .path, line: .line, body: .body}'

または、WebFetch を使って PR の URL から直接取得します。

2. Sentry のコメントを解析する
  • Sentry のコメントのみを処理します(ユーザー名が「sentry」で始まるもの。例:「sentry[bot]」)
  • 「cursor[bot]」やその他のボットからのコメントは無視します
  • 各コメントから次の情報を抽出します。
    • file:コメント対象のファイルパス
    • line:特定の行番号(利用可能な場合)
    • body:Markdown/HTML の本文を解析し、次の情報を抽出します。
      • バグの説明(「Bug:」で始まるヘッダー行から)
      • 重大度レベル(<sub>Severity: X タグから)
      • 信頼度スコア(sub タグ内の Confidence: X.XX から)
      • 詳細な分析(<summary>🔍 <b>Detailed Analysis</b></summary> 詳細ブロック内のテキスト)
      • 推奨される修正(<summary>💡 <b>Suggested Fix</b></summary> 詳細ブロック内のテキスト)
      • AI エージェントのプロンプト(<summary>🤖 <b>Prompt for AI Agent</b></summary> 詳細ブロック内のテキスト)
3. 各問題を分析する

Sentry の各コメントについて:

  1. コメントのメタデータから file と line を確認します。これにより、確認すべき箇所を正確に把握できます
  2. コメントで指定されたファイルを読みます
  3. 行番号に移動して、問題のあるコードを確認します
  4. 問題に関する具体的なコンテキストを把握するため、「🤖 Prompt for AI Agent」セクションを読みます
  5. 現在のコードにも問題が残っているかを確認します
  6. Detailed Analysis から根本原因を把握します
  7. Suggested Fix を評価します
4. 修正を実装する

確認済みの各問題について:

  1. 影響を受けるファイルを読みます
  2. 推奨される修正、または独自の解決策を実装します
  3. 修正によって根本原因が解消されることを確認します
  4. エッジケースと副作用を考慮します
  5. Edit ツールを使って、正確に変更します
5. 概要を提示する

問題を分析して修正した後、次の形式で報告します。

## Sentry Code Review Summary

**PR:** #[number] - [title]
**Sentry Comments Found:** [count]

### Issues Resolved

#### 1. [Issue Title] - [SEVERITY]
- **Confidence:** [score]
- **Location:** [file:line]
- **Problem:** [brief description]
- **Fix Applied:** [what you did]
- **Status:** Resolved

#### 2. [Issue Title] - [SEVERITY]
- **Confidence:** [score]
- **Location:** [file:line]
- **Problem:** [brief description]
- **Fix Applied:** [what you did]
- **Status:** Resolved

### Issues Requiring Manual Review

#### 1. [Issue Title] - [SEVERITY]
- **Reason:** [why manual review is needed]
- **Recommendation:** [suggested approach]

### Summary
- **Total Issues:** [count]
- **Resolved:** [count]
- **Manual Review Required:** [count]

重要なガイドライン

  1. Sentry のみ:「sentry」で始まるユーザー名の Sentry からのコメントに注目します
  2. 最初に確認する:修正を試みる前に、必ず問題が存在することを確認します
  3. 編集前に読む:Edit ツールを使う前に、必ず Read ツールを使います
  4. 正確さ:根本原因に対処する、対象を絞った修正を行います
  5. 安全性:修正に確信が持てない場合は、AskUserQuestion を使ってユーザーに指示を求めます
  6. テスト:修正を適用した後にテストを実行するよう、ユーザーに伝えます

Sentry ボットでよくある問題のカテゴリ

ビルド設定の問題
  • ビルド出力にファイルが含まれていない
  • tsconfig の設定が正しくない
  • ビルドスクリプトにファイルのコピー手順がない
エラーハンドリングの問題
  • エラーが捕捉されるが、再スローされない
  • 重要な処理経路でエラーがサイレントに失敗する
  • エラーバウンダリーがない
実行時設定の問題
  • 環境変数の不足
  • パス解決の誤り
  • 必須の依存関係の不足
型安全性の問題
  • null チェックの不足
  • 失敗する可能性のある型アサーション
  • 入力検証の不足

コメント