skills/sentry-pr-code-review/SKILL.md
Review a project's PRs to check for issues detected in code review by Seer Bug Prediction. Use when asked to review or fix issues identified by Sentry in PR comments, or to find recent PRs with Sentry feedback.
npx skillsauth add getsentry/sentry-for-ai sentry-pr-code-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
All Skills > Workflow > PR Code Review
Review and fix issues identified by Seer (by Sentry) in GitHub PR comments.
gh CLI installed and authenticatedImportant: The comment format parsed below is based on Seer's current output. This is not an API contract and may change. Always verify the actual comment structure.
gh api repos/{owner}/{repo}/pulls/{PR_NUMBER}/comments --paginate \
--jq '.[] | select(.user.login == "seer-by-sentry[bot]") | {file: .path, line: .line, body: .body}'
The bot login is seer-by-sentry[bot] — not sentry[bot] or sentry-io[bot].
If no PR number is given, find recent PRs with Seer comments:
gh pr list --state open --json number,title --limit 20 | \
jq -r '.[].number' | while read pr; do
count=$(gh api "repos/{owner}/{repo}/pulls/$pr/comments" --paginate \
--jq '[.[] | select(.user.login == "seer-by-sentry[bot]")] | length')
[ "$count" -gt 0 ] && echo "PR #$pr: $count Seer comments"
done
Extract from the markdown body:
**Bug:**<sub>Severity: X | Confidence: X.XX</sub><summary>🔍 <b>Detailed Analysis</b></summary> block<summary>💡 <b>Suggested Fix</b></summary> block<summary>🤖 <b>Prompt for AI Agent</b></summary> blockFor each issue:
## Seer Review: PR #[number]
### Resolved
| File:Line | Issue | Severity | Fix Applied |
|-----------|-------|----------|-------------|
| path:123 | desc | HIGH | what done |
### Skipped (false positive or already fixed)
| File:Line | Issue | Reason |
|-----------|-------|--------|
**Summary:** X resolved, Y skipped
| Trigger | When |
|---------|------|
| PR set to "Ready for Review" | Automatic error prediction |
| Commit pushed while PR is ready | Re-runs prediction |
| @sentry review comment | Manual trigger for full review + suggestions |
| Draft PR | Skipped — no review until marked ready |
| Issue | Solution |
|-------|----------|
| No Seer comments found | Verify the Seer GitHub App is installed on the repo |
| Bot name mismatch | The login is seer-by-sentry[bot], not sentry[bot] |
| Comments not appearing on new PRs | PR must be "Ready for Review" (not draft) |
| gh api returns partial results | Ensure --paginate flag is included |
| Category | Examples | |----------|----------| | Type Safety | Missing null checks, unsafe type assertions | | Error Handling | Swallowed errors, missing boundaries | | Validation | Permissive inputs, missing sanitization | | Config | Missing env vars, incorrect paths |
development
Migrate JavaScript SDK to Sentry span streaming (span-first trace lifecycle). Use when asked to "enable span streaming", "migrate to span streaming", "use traceLifecycle stream", "add spanStreamingIntegration", or switch from transaction-based to streamed span delivery in a JavaScript project.
development
Migrate Python SDK to Sentry span streaming (span-first trace lifecycle). Use when asked to "enable span streaming", "migrate to span streaming", "use trace_lifecycle stream", or switch from transaction-based to streamed span delivery in a Python project.
development
Keep Sentry SDKs up to date. Use when asked to upgrade the Sentry SDK across major versions, migrate SDK versions, or fix deprecated APIs.
testing
Full Sentry Snapshots setup for Apple/Cocoa projects. Use when asked to "setup SnapshotPreviews", "setup Apple snapshot testing", "upload Apple snapshots to Sentry", "setup Apple snapshot GitHub Actions", or "setup Apple selective snapshot testing".