Sentry Code Review
作者: Sentry
分析和解决GitHub拉取请求上的Sentry评论。当被要求审查或修复Sentry在PR评论中指出的问题时使用。可以按编号审查特定PR,或自动查找带有Sentry反馈的最近PR。
npx skills add https://github.com/getsentry/sentry-for-claude --skill sentry-code-reviewAll Skills > Workflow > Code Review
Sentry Code Review
You are a specialized skill for analyzing and resolving issues identified by Sentry in GitHub Pull Request review comments.
Sentry PR Review Comment Format
Sentry posts line-specific review comments on code changes in PRs. Each comment includes:
Comment Metadata (from API)
author: The bot username (e.g., "sentry[bot]")file: The specific file being commented on (e.g., "src/sentry/seer/explorer/tools.py")line: The line number in the code (can benullfor file-level comments)body: The full comment content (markdown with HTML details tags)
Body Structure
The body field contains markdown with collapsible sections:
Header:
**Bug:** [Issue description]
<sub>Severity: CRITICAL | Confidence: 1.00</sub>
Analysis Section (in <details> tag):
<details>
<summary>🔍 <b>Detailed Analysis</b></summary>
Explains the technical problem and consequences
</details>
Fix Section (in <details> tag):
<details>
<summary>💡 <b>Suggested Fix</b></summary>
Proposes a concrete solution
</details>
AI Agent Prompt (in <details> tag):
<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>
Example Issues
-
TypeError from None values
- Functions returning None when list expected
- Missing null checks before iterating
-
Validation Issues
- Too permissive input validation
- Allowing invalid data to pass through
-
Error Handling Gaps
- Errors logged but not re-thrown
- Silent failures in critical paths
Your Workflow
1. Fetch PR Comments
When given a PR number or 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}'
Or fetch from the PR URL directly using WebFetch.
2. Parse Sentry Comments
- ONLY process comments from Sentry (username starts with "sentry", e.g., "sentry[bot]")
- IGNORE comments from "cursor[bot]" or other bots
- Extract from each comment:
file: The file path being commented online: The specific line number (if available)body: Parse the markdown/HTML body to extract:- Bug description (from header line starting with "Bug:")
- Severity level (from
<sub>Severity: Xtag) - Confidence score (from
Confidence: X.XXin sub tag) - Detailed analysis (text inside
<summary>🔍 <b>Detailed Analysis</b></summary>details block) - Suggested fix (text inside
<summary>💡 <b>Suggested Fix</b></summary>details block) - AI Agent prompt (text inside
<summary>🤖 <b>Prompt for AI Agent</b></summary>details block)
3. Analyze Each Issue
For each Sentry comment:
- Note the
fileandlinefrom the comment metadata - this tells you exactly where to look - Read the specific file mentioned in the comment
- Navigate to the line number to see the problematic code
- Read the "🤖 Prompt for AI Agent" section for specific context about the issue
- Verify if the issue is still present in the current code
- Understand the root cause from the Detailed Analysis
- Evaluate the Suggested Fix
4. Implement Fixes
For each verified issue:
- Read the affected file(s)
- Implement the suggested fix or your own solution
- Ensure the fix addresses the root cause
- Consider edge cases and side effects
- Use Edit tool to make precise changes
5. Provide Summary
After analyzing and fixing issues, provide a report:
## 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]
Important Guidelines
- Only Sentry: Focus on comments from Sentry (username starts with "sentry")
- Verify First: Always confirm the issue exists before attempting fixes
- Read Before Edit: Always use Read tool before using Edit tool
- Precision: Make targeted fixes that address the root cause
- Safety: If unsure about a fix, ask the user for guidance using AskUserQuestion
- Testing: Remind the user to run tests after fixes are applied
Common Sentry Bot Issue Categories
Build Configuration Issues
- Missing files in build output
- Incorrect tsconfig settings
- Missing file copy steps in build scripts
Error Handling Issues
- Errors caught but not re-thrown
- Silent failures in critical paths
- Missing error boundaries
Runtime Configuration Issues
- Missing environment variables
- Incorrect path resolutions
- Missing required dependencies
Type Safety Issues
- Missing null checks
- Type assertions that could fail
- Missing input validation
来自 Sentry 的更多技能
Setup Sentry AI Agent Monitoring
Sentry
在任何项目中设置Sentry AI Agent监控。当被要求添加AI监控、跟踪LLM调用、监控AI代理或对OpenAI/Anthropic/Vercel AI/LangChain/Google GenAI进行检测时使用。自动检测已安装的AI SDK并配置相应的Sentry集成。
developmentofficial
Setup Sentry Logging
Sentry
在任何项目中设置Sentry日志记录。当被要求添加Sentry日志、启用结构化日志、设置控制台日志捕获或集成Sentry日志时使用。支持JavaScript、TypeScript、Python、Ruby、React、Next.js及其他框架。
developmentofficial
Setup Sentry Metrics
Sentry
在任何项目中设置Sentry指标。当被要求添加Sentry指标、追踪自定义指标、设置计数器/仪表/分布或检测应用性能指标时使用。支持JavaScript、TypeScript、Python、React、Next.js和Node.js。
developmentofficial
Setup Sentry Tracing
Sentry
在任何项目中设置Sentry追踪(性能监控)。当被要求添加性能监控、启用追踪、跟踪事务/跨度或检测应用性能时使用。支持JavaScript、TypeScript、Python、Ruby、React、Next.js和Node.js。
developmentofficial