stale-pr-reminder
Skill4 starsChanged 7 months agoMITView on GitHub
Use this skill when the user wants to check for stale PRs, "find old pull requests", "stale PRs", "PRs needing attention", or wants to identify pull requests that have been inactive for too long. This skill scans repositories for PRs that need action and generates a prioritized reminder report. Requires Gitee MCP Server to be configured.
In this repository13 other files it gives its agents.
- close-issue-flowSkill
- create-issueSkill
- create-prSkill
- create-releaseSkill
- daily-digestSkill
- implement-issueSkill
- merge-pr-checkSkill
- quick-fix-suggestionSkill
- repo-explorerSkill
- review-prSkill
- search-and-forkSkill
- search-reposSkill
- triage-issuesSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 39
Call list_repo_pulls to retrieve all open PRs:
- Very specific: line 68
Call list_comments (resource_type: pull) to check review activity:
- Distinctive: line 78
No code execution needed. The AI can parse timestamps directly.
- Very specific: line 88
Check if mergeable: false (has conflicts)
- Distinctive: line 100
Create a grouped report with links:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Stale PR Reminder
Scan repositories for stale Pull Requests and generate a prioritized action report.
What is a "Stale PR"?
A stale PR is a Pull Request that:
- Has been open for a long time without updates
- Has not received reviewer attention
- Has merge conflicts that haven't been resolved
Staleness Levels
| Level | Age | Action |
| 🔴 Critical | > 28 days | Close or rework |
| 🟠 Severe | > 14 days no update | Ping author |
| 🟡 Moderate | > 7 days no review | Assign reviewer |
| 🟢 Mild | > 3 days no activity | Monitor |
| ✅ Fresh | < 3 days | No action |
Steps
Step 1: Fetch Open PRs
Call list_repo_pulls to retrieve all open PRs:
INPUT:
- owner: repository owner
- repo: repository name
- state: "open"
- sort: "created"
- direction: "asc"
- per_page: 100Step 2: Get PR Details
For each PR, call get_pull_detail:
EXTRACT:
- number: PR number
- title: PR title
- user.login: author username
- created_at: creation timestamp
- updated_at: last update timestamp
- mergeable: false = has conflicts
- draft: is draft PRStep 3: Get Comments (Optional)
Call list_comments (resource_type: pull) to check review activity:
ANALYZE:
- has_reviewer_comments: any comment from non-author
- last_comment_date: most recent comment timestampStep 4: Calculate Staleness
No code execution needed. The AI can parse timestamps directly.
Today's date: 2026-03-17
For each PR:
- Parse
created_at(format:YYYY-MM-DDTHH:MM:SSZ, e.g.,2026-01-15T10:30:00Z) - Parse
updated_atthe same way - Calculate days between created_at and today (2026-03-17)
- Calculate days between updated_at and today
- Check if
mergeable: false(has conflicts) - Check if
draft: true
Classification rules:
critical: age > 28 dayssevere: age > 14 days AND days_since_update > 14moderate: age > 7 days AND no reviewer commentsmild: age > 3 days AND days_since_update > 3fresh: otherwise
Step 5: Generate Report
Create a grouped report with links:
## Stale PR Report: {owner}/{repo}
### Critical (> 28 days)
| PR | Title | Age | Author |
|----|-------|-----|--------|
| [#{num}](https://gitee.com/{owner}/{repo}/pulls/{num}) | {title} | {age}d | @{author} |
### Severe (> 14 days no update)
| PR | Title | Age | Last Update |
|----|-------|-----|-------------|
| [#{num}](https://gitee.com/{owner}/{repo}/pulls/{num}) | {title} | {age}d | {days}d ago |
### Moderate (> 7 days no review)
| PR | Title | Age |
|----|-------|-----|
| [#{num}](https://gitee.com/{owner}/{repo}/pulls/{num}) | {title} | {age}d |
### Summary
- Critical: {count}
- Severe: {count}
- Moderate: {count}
- Fresh: {count}Usage Examples
Example 1: Basic Check
User: "Check for stale PRs in myrepo"
AI: Scanning myrepo...
Found 10 open PRs:
- 2 Critical (> 28 days)
- 3 Severe (> 14 days)
- 5 Moderate (> 7 days)
[Shows report]Example 2: Check Specific Author
User: "Are there any stale PRs from @alice?"
AI: Found 2 stale PRs from @alice:
- PR #42: 25 days old, needs rebase
- PR #45: 12 days old, waiting for reviewNotes
- Be diplomatic when mentioning stale PRs
- Exclude bot PRs (dependabot, renovate) by default
- Respect "wip", "draft", "on-hold" labels
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

