AgentStack
SKILL verified MIT Self-run

At Risk Detection

skill-britt-claude-code-skills-at-risk-detection · by britt

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

No reviews yet
0 installs
15 views
0.0% view→install

Install

$ agentstack add skill-britt-claude-code-skills-at-risk-detection

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of At Risk Detection? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

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,reviewRequests

Quick 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 issues

Health 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

  1. Fetch recent open issues
  2. Apply all heuristics to each issue
  3. Present health summary with risk breakdown
  4. Highlight any critical items requiring immediate attention

Individual Issue Assessment

  1. Fetch the specific issue with all comments
  2. Apply all heuristic checks
  3. Present detailed risk analysis with signals and suggestions

Pre-Sprint Cleanup

  1. Fetch ALL open issues (comprehensive mode)
  2. Apply all heuristics
  3. Sort by severity (critical first)
  4. Present full at-risk report
  5. 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-hold are intentionally parked; report them separately from genuinely forgotten stale items.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.