From sentry
Reviews GitHub PRs for Seer by Sentry bug predictions in comments, fetches via gh CLI, parses bug details severity analysis and suggested fixes, verifies issues and implements resolutions.
npx claudepluginhub getsentry/sentry-for-ai --plugin sentryThis skill uses the workspace's default tool permissions.
> [All Skills](../../SKILL_TREE.md) > [Workflow](../sentry-workflow/SKILL.md) > PR Code Review
Reviews GitHub PRs for Sentry Seer bug predictions: fetches bot comments via gh CLI, parses issues with severity and fixes, verifies in code, implements resolutions, and summarizes in tables.
Analyzes and resolves Sentry issues in GitHub Pull Request comments. Fetches PR comments via GitHub API, parses bug details, suggested fixes, and AI prompts for specific files and lines.
Reviews GitHub PRs for bugs with 5 parallel AI passes, majority voting, Opus validation, inline comments, autofixes, and resolution rate tracking. Use /bug-review or PR bug checks.
Share bugs, ideas, or general feedback.
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 |