at-risk-detection
Skill11 starsChanged 7 days agoMITView on GitHub
Use when asked about project health, stale or blocked issues, deadline risk, or scope creep - scans GitHub issues and PRs with heuristics (staleness, blocked labels, milestone dates, size, unassigned high-priority) and produces a severity-ranked at-risk report
In this repository31 other files it gives its agents.
- architecture-diagrammingSkill
- build-faq-from-issuesSkill
- context-aware-questionsSkill
- daily-planning-ritualSkill
- dependency-mappingSkill
- estimating-change-footprintSkill
- estimating-work-itemsSkill
- idea-to-designSkill
- issue-decompositionSkill
- markdown-formattingSkill
- mermaid-diagramsSkill
- prepare-meeting-agendaSkill
- project-analysisSkill
- project-planningSkill
- repairing-project-setupSkill
- requirement-elicitationSkill
- research-topic-summarizeSkill
- setting-up-a-projectSkill
- sgai-goalSkill
- stakeholder-trackingSkill
- stakeholder-updatesSkill
- summarize-conversation-threadSkill
- supervising-conductor-workspacesSkill
- supervising-paradev-workspacesSkill
- timeline-planningSkill
- triage-new-issuesSkill
- working-on-an-epicSkill
- working-on-an-issueSkill
- writing-product-specsSkill
- writing-user-storiesSkill
- writing-verification-plansSkill
The file
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 3 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
When asked about project health or status
- Distinctive: line 18
When triaging backlog items
- Distinctive: line 46
Signal: No activity for extended period
- Very specific: line 52
How to detect: Check updated_at field on each issue/PR.
- Very specific: line 61
How to detect: Check labels array for blocking keywords.
- Very specific: line 69
How to detect: Check if issue has a milestone with a due_on date.
- Very specific: line 76
How to detect: Check comments count on issues.
- Very specific: line 82
How to detect: Check if assignee is null AND labels contain any priority keywords.
≈ “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
At-Risk Detection Skill
Proactively scan GitHub issues and pull requests to identify at-risk items before they become problems.
When to Use
Activate when:
- Starting a new sprint or planning session
- During standup to identify blockers
- Weekly health checks of the project
- When asked about project health or status
- Before milestone deadlines
- When triaging backlog items
Analysis Approach
Prerequisite: Requires the gh CLI. Fetch data with, e.g.:
gh issue list --state open --limit 30 --json number,title,updatedAt,labels,assignees,milestone,comments
gh pr list --state open --json number,title,updatedAt,additions,deletions,isDraft,reviewRequestsQuick Mode (Default)
Fetch the 30 most recent open issues:
- Fast (seconds)
- Good for daily checks
- May miss older stale items
Comprehensive Mode
Fetch ALL open issues by paginating:
- Thorough analysis
- Slower for large repositories
- Best for milestone reviews
Risk Types and Detection Heuristics
Stale Items
Signal: No activity for extended period Default Threshold: 14 days for issues, 3 days for PRs awaiting review Severity Escalation:
- Warning: > threshold days since last activity
- Critical: > 2x threshold days since last activity
How to detect: Check updated_at field on each issue/PR. Calculate days since last update.
Blocked Work
Signals:
- Has labels matching:
blocked,waiting,on-hold,waiting-for-response - Body contains: "blocked by #", "waiting on", "depends on", "blocked until"
- PR is in draft status
- PR has merge conflicts (if detectable from comments)
How to detect: Check labels array for blocking keywords. Search body text for blocking phrases.
Deadline Risks
Signal: Milestone deadline approaching or overdue Severity Levels:
- Critical: Overdue or due within 2 days
- Warning: Due within 7 days
How to detect: Check if issue has a milestone with a due_on date. Compare to current date.
Scope Creep
Signals:
- Issues with high comment count (>30 comments)
- PRs with many lines changed (>500 warning, >1000 critical)
How to detect: Check comments count on issues. For PRs, check additions + deletions if available.
Assignment Issues
Signal: High-priority issue without assignee
Priority Labels: priority:high, urgent, P1, P0, critical, blocker
How to detect: Check if assignee is null AND labels contain any priority keywords.
Output Formats
Project Health Summary
## Project Health: [Project Name]
### Summary
- **Total Open Items**: X (Y issues, Z PRs)
- **At-Risk Items**: N
- **Health Score**: X%
### Risk Breakdown
- Critical: X
- Warning: Y
- Info: Z
### Overloaded Assignees (if any)
- @username: N assigned issuesHealth Score = 100 × (1 − atRiskCount / totalOpenItems), rounded to the nearest integer.
At-Risk Item Report
## At-Risk: #[number] - [title]
**Severity**: [Critical | Warning | Info]
**Type**: [Issue | PR]
**URL**: [link]
**Assignee**: @username
### Risk Signals
- [signal type]: [description]
### Suggestions
- [actionable recommendation]Generating Suggestions
For each risk signal detected, provide actionable suggestions:
| Risk Type | Suggestion |
| Stale issue | "Comment with status update or close if no longer relevant" |
| Stale PR | "Request review or close if superseded" |
| Blocked | "Resolve blocking dependency or re-prioritize" |
| Deadline approaching | "Break into smaller milestones or adjust deadline" |
| Scope creep | "Split into smaller issues or create a tracking epic" |
| Unassigned high-priority | "Assign an owner immediately" |
| Overloaded assignee | "Redistribute work or adjust priorities" |
Overloaded Assignee Detection
Track issue counts per assignee:
- Warning: > 7 assigned issues
- Critical: > 10 assigned issues
Configuration Defaults
| Setting | Default | Description |
| staleDays | 14 | Days before issue is stale |
| prStaleReviewDays | 3 | Days before PR awaiting review is stale |
| deadlineWarningDays | 7 | Days before deadline to warn |
| maxCommentsBeforeScopeWarning | 30 | Comment threshold for scope creep |
| maxAssignedIssuesPerPerson | 10 | Max issues before overload warning |
Example Workflows
Morning Health Check
- Fetch recent open issues
- Apply all heuristics to each issue
- Present health summary with risk breakdown
- Highlight any critical items requiring immediate attention
Individual Issue Assessment
- Fetch the specific issue with all comments
- Apply all heuristic checks
- Present detailed risk analysis with signals and suggestions
Pre-Sprint Cleanup
- Fetch ALL open issues (comprehensive mode)
- Apply all heuristics
- Sort by severity (critical first)
- Present full at-risk report
- Suggest actions for each at-risk item
Common Mistakes
- Flagging draft PRs as stale-awaiting-review - a draft is not awaiting review; treat it as in-progress or blocked, not a stale review.
- Trusting Quick Mode for staleness - it fetches the 30 most recent items sorted by recency, so it misses exactly the stalest items. Note this limitation in the report; use Comprehensive Mode to find them.
- Conflating parked and forgotten work - items labeled
on-holdare intentionally parked; report them separately from genuinely forgotten stale items.
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.

