From paxos
Find pull requests that have been open for more than a week in a given repository. Use this skill when the user asks about stale PRs, old PRs, PRs that need attention, long-open PRs, or wants to audit open pull requests in a repo.
How this skill is triggered — by the user, by Claude, or both
Slash command
/paxos:stale-prsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Asks the user for a repository (owner/repo), then fetches open PRs older than 7 days, groups them by age and draft status, and renders a categorized report.
Asks the user for a repository (owner/repo), then fetches open PRs older than 7 days, groups them by age and draft status, and renders a categorized report.
If the user didn't provide a repository name, ask for one in owner/repo format using AskUserQuestion.
The gh CLI may not be on PATH directly - activate the user's tool manager first:
eval "$(/opt/homebrew/bin/mise activate zsh)" && \
gh pr list --repo <owner/repo> \
--state open \
--json number,title,url,author,createdAt,isDraft \
--limit 100
Filter the results to only include PRs where createdAt is more than 7 days ago relative to today.
This step is NOT optional when Slack tools are available. Do not skip it. The only case where you skip this step is when Slack tools (e.g., slack_search_users) are genuinely unavailable in the environment. If slack_search_users (or an equivalent) is in your tool list, you MUST run the lookup before formatting output — even for terminal/markdown output, because the display names come from Slack profiles, not GitHub.
Do not rationalize skipping this step ("it's just for terminal", "Slack lookup feels like overhead", "GitHub logins are close enough"). Those are exactly the wrong reasons. Run the lookup.
How to do the lookup:
{ slackId, displayName } (e.g., prichodko -> { slackId: "U0AJ0FEU6QL", displayName: "pavel" }).The mapping is used in Step 3 to render author names. When the output is for terminal/markdown, use the Slack display name (e.g., @pavel). When the output will be posted to Slack, use Slack's mention syntax: <@U0AJ0FEU6QL> so the user gets a proper notification.
First, separate PRs into two top-level groups: Ready for review (non-draft) and Drafts. Within each group, bucket PRs by age: 1-2 weeks old, 2-4 weeks old, Over a month old.
Use standard markdown. Links are [text](url), authors are @displayName.
### Ready for review
**1-2 weeks old**
- [Title of PR](url) - 10d - @pavel
### Drafts
**Over a month old**
- [Title of PR](url) - 45d - @dipree
When the user asks to send/post to Slack, use Slack's formatting syntax:
<url|text><@SLACK_USER_ID>*text**Ready for review*
*1-2 weeks old*
- <https://github.com/org/repo/pull/123|Title of PR> - 10d - <@U0AJ0FEU6QL>
*Drafts*
*Over a month old*
- <https://github.com/org/repo/pull/456|Title of PR> - 45d - <@U09JZNQKM3J>
Xd (e.g., 10d)app/ — e.g., dependabot) from the detailed list. Instead, summarize them in a single line at the end, e.g.: "Plus 12 dependabot PRs that need attention (oldest: 63d)."If there are no stale PRs, say: "No PRs open longer than a week."
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub paxos/claude --plugin paxos