agentic/code/frameworks/sdlc-complete/extensions/github/skills/pr-reviewer/SKILL.md
Review GitHub pull requests for code quality, security, and best practices. Use for automated PR feedback and approval workflows.
npx skillsauth add jmagly/aiwg pr-reviewerInstall 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.
Single responsibility: Review GitHub pull requests for quality, security, and adherence to project standards. (BP-4)
Before executing, VERIFY:
DO NOT submit reviews without understanding the full diff.
ASK USER instead of guessing when:
NEVER approve PRs automatically without user confirmation.
| Context Type | Included | Excluded | |--------------|----------|----------| | RELEVANT | PR diff, commit messages, linked issues | Unrelated files | | PERIPHERAL | Project standards, CI status | Other PRs | | DISTRACTOR | Historical PRs | Fork activity |
# Get PR information
gh pr view <number> --json title,body,author,files,additions,deletions,commits,reviews
# Get diff
gh pr diff <number>
# Check CI status
gh pr checks <number>
# List changed files
gh pr view <number> --json files --jq '.files[].path'
# Get diff stats
gh pr view <number> --json additions,deletions --jq '"\(.additions) additions, \(.deletions) deletions"'
# Check for sensitive files
gh pr diff <number> | grep -E "(\.env|password|secret|key)" && echo "⚠️ Sensitive patterns detected"
Code Quality:
# Check for common issues
gh pr diff <number> | grep -E "(console\.log|debugger|TODO|FIXME)" | head -20
Security:
# Security patterns
gh pr diff <number> | grep -E "(eval\(|innerHTML|dangerouslySetInnerHTML|exec\()" | head -10
Tests:
# Check test coverage
gh pr view <number> --json files --jq '.files[] | select(.path | test("test|spec")) | .path'
Comment only:
gh pr review <number> --comment --body "$(cat <<'EOF'
## Code Review
### Summary
[Overview of changes]
### Observations
- Point 1
- Point 2
### Questions
- Question 1?
EOF
)"
Request changes:
gh pr review <number> --request-changes --body "Changes needed: [reason]"
Approve:
gh pr review <number> --approve --body "LGTM! ✅"
On error:
Not found → Verify PR numberPermission denied → Check repo accessReview already exists → Update existingCI pending → Wait or note in reviewState saved to: .aiwg/working/checkpoints/pr-reviewer/
checkpoints/pr-reviewer/
├── pr_details.json # PR metadata
├── diff_analysis.json # Change analysis
├── security_scan.json # Security findings
└── review_draft.md # Draft review
## Code Review: PR #<number>
### Summary
<Brief overview of the PR purpose and changes>
### Review Checklist
- [ ] Code follows project style guide
- [ ] Tests added/updated for changes
- [ ] Documentation updated if needed
- [ ] No security vulnerabilities introduced
- [ ] CI checks passing
### Observations
#### ✅ Strengths
- Point 1
- Point 2
#### ⚠️ Concerns
- Concern 1 (file:line)
- Concern 2 (file:line)
#### ❓ Questions
- Question about design choice?
### Recommendation
- [ ] Approve
- [ ] Request changes
- [ ] Comment only
### Line Comments
| File | Line | Comment |
|------|------|---------|
| src/foo.ts | 42 | Consider using const |
| Command | Purpose |
|---------|---------|
| gh pr view <n> | View PR details |
| gh pr diff <n> | View diff |
| gh pr checks <n> | CI status |
| gh pr review <n> | Submit review |
| gh pr comment <n> | Add comment |
| gh pr merge <n> | Merge PR |
data-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.