github:prs
SkillDev toolsPR health analysis - CI passing without review, stale PRs, merge conflicts
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the github:prs skill
What this skill tells your AI
The instructions your AI receives, as published by rossoctl/rossoctl in .claude/skills/github:prs/SKILL.md and read by ahel’s review.
Analyze open PRs to find those needing review, stuck in CI, or going stale.
Variables
Set at session start:
export OWNER=<org-or-user>
export REPO=<repo-name>
When to Use
- Weekly PR grooming
- Finding PRs ready to merge
- Identifying stuck or abandoned PRs
Auto-approved: All
ghcommands are read-only and auto-approved.
Analysis Steps
1. All Open PRs
gh pr list --repo $OWNER/$REPO --state open --json number,title,author,createdAt,updatedAt,reviewDecision,statusCheckRollup
2. PRs Passing CI Without Review
gh pr list --repo $OWNER/$REPO --state open --json number,title,author,reviewDecision,statusCheckRollup --jq '.[] | select(.reviewDecision != "APPROVED") | select(.statusCheckRollup != null) | select([.statusCheckRollup[] | select(.conclusion == "FAILURE")] | length == 0) | "#\(.number) \(.title) (@\(.author.login))"'
3. Stale PRs (no update > 14 days)
gh pr list --repo $OWNER/$REPO --state open --json number,title,updatedAt,author --jq '.[] | select(.updatedAt < (now - 14*24*3600 | strftime("%Y-%m-%dT%H:%M:%SZ"))) | "#\(.number) \(.title) (last: \(.updatedAt))"'
4. PRs with Failing CI
gh pr list --repo $OWNER/$REPO --state open --json number,title,statusCheckRollup --jq '.[] | select(.statusCheckRollup != null) | select([.statusCheckRollup[] | select(.conclusion == "FAILURE")] | length > 0) | "#\(.number) \(.title)"'
5. PRs with Merge Conflicts
gh pr list --repo $OWNER/$REPO --state open --json number,title,mergeable --jq '.[] | select(.mergeable == "CONFLICTING") | "#\(.number) \(.title)"'
PR Health Report
## PR Health Report
### Ready to Merge (CI passing, needs review): N
- [list — prioritize these for review]
### Failing CI: N
- [list — authors should investigate]
### Stale (> 14 days): N
- [list — ping authors or close]
### Merge Conflicts: N
- [list — needs rebase]
Troubleshooting
Problem: statusCheckRollup is null for all PRs
Symptom: jq filters on CI status return no results.
Fix: The repo may not have required status checks. Use gh pr checks <N> --repo $OWNER/$REPO per-PR instead.
Problem: mergeable shows UNKNOWN
Symptom: GitHub hasn't computed mergeability yet. Fix: Wait a few seconds and re-query — GitHub computes this lazily. Or open the PR in the browser to trigger the check.
Problem: Stale query returns too many results
Symptom: Old PRs with recent bot comments show as active.
Fix: Filter by updatedAt AND check comments count or last human comment date.
Related Skills
github:last-week- Weekly summary including PRsgithub:issues- Issue triageci:status- Detailed CI check analysisrepo:pr- PR creation formatgit:rebase- Fix merge conflicts
Signals
- GitHub stars
- 300
- Forks
- 107
- Last commit
- Sep 2026
ahel review
S4info
community integration — published by rossoctl, not github
Automated review, not a security audit. Ruleset v1.
Advanced
- Catalog kind
- skill
- Gateway key
github-prs- Source
- github.com/rossoctl/rossoctl