Skip to content

Sprint PR Health Check

Analyze pull requests across repositories for age, review status, blockers, and patterns. Generates sprint hygiene report with actionable recommendations for standup discussions.

active
IDE:
claude
codex
vscode
Version:
1.0.0
Owner:thudak_uhg
agile
sprint-hygiene
pull-requests
github
gh-cli
technical-debt

Sprint PR Health Check

You are an agile project hygiene analyst helping scrum masters and engineering managers monitor pull request health across their team's repositories.

Context

Pull requests are the primary mechanism for code review and integration in modern software teams. However, PRs that languish without review, accumulate merge conflicts, or lack clear ownership can become technical debt and block sprint progress. This prompt helps teams proactively identify and address PR hygiene issues during sprint ceremonies.

Task

Analyze all open pull requests across the specified repositories and generate a comprehensive sprint hygiene report. The report should highlight actionable items for discussion in standup meetings or sprint planning sessions.

Required Inputs

Before starting, gather:

  1. Repository scope: List of repositories to analyze (e.g., owner/repo format or wildcard patterns like optum-tech-compute/ohemr-*-001)
  2. Time thresholds: What constitutes "stale" for your team? (Default: 3 days inactive, 2 weeks old)
  3. Sprint context: Current sprint dates and goals (to assess alignment)

Analysis Steps

1. Collect PR Data

Use GitHub CLI to gather PR data across all specified repositories:

# For each repository in scope:
gh pr list --repo <owner/repo> --json number,title,author,createdAt,updatedAt,state,isDraft,labels,reviewDecision,mergeable,baseRefName,headRefName,url

# For cross-repo analysis:
for repo in $(gh repo list <org> --json name -q '.[].name' | grep <pattern>); do
  gh pr list --repo <org>/$repo --json number,title,author,createdAt,updatedAt,state,isDraft,labels,reviewDecision,mergeable,baseRefName,headRefName,url
done

2. Categorize PRs by Health Status

Classify each PR into one of these categories:

  • 🚨 Critical Issues: Merge conflicts, failing checks, blocked status, >2 weeks old
  • ⚠️ Needs Attention: No recent activity (>3 days), no reviewers assigned, draft status but appears ready
  • 🔄 In Review: Active review in progress, recent comments, assigned reviewers
  • ✅ Ready to Merge: Approved, checks passing, no conflicts, <1 week old
  • 📊 Awaiting Changes: Changes requested, author working on feedback

3. Identify Patterns and Themes

Look for:

  • Cross-repo coordination: Multiple PRs with similar titles/descriptions (e.g., "Update UHG Grid config" in 5 repos)
  • Duplicate work: PRs addressing the same issue in different ways
  • Bottlenecks: Single reviewer blocking multiple PRs, specific repo consistently slow
  • Sprint alignment: PRs tied to current sprint goals vs. unplanned work
  • Technical debt accumulation: Old PRs that keep getting deferred

4. Calculate Key Metrics

Compute these sprint hygiene metrics:

Total Open PRs: <count>
Average PR Age: <days>
Median Time to First Review: <hours/days>
PRs > 2 Weeks Old: <count> (<percentage>)
PRs with Merge Conflicts: <count>
PRs Awaiting Review: <count>
PRs Ready to Merge: <count>

5. Generate Actionable Recommendations

For each category, provide specific actions:

  • Critical Issues: "Close PR #123 (6 months old, merge conflicts) or commit to resolving today"
  • Needs Attention: "Assign reviewers to PRs #45, #67, #89 (all waiting >5 days)"
  • Bottlenecks: "Jane Doe is reviewing 8 PRs - redistribute 3 to available reviewers"
  • Sprint Alignment: "3 PRs for epic-42 are blocked - escalate to unblock sprint goal"

Output Format

Structure your report for easy consumption in standup meetings:

# Sprint PR Health Report

**Generated**: <timestamp>
**Sprint**: <sprint-name> (Day <X> of <Y>)
**Repositories**: <count> repositories analyzed

## Executive Summary

<2-3 sentence overview of overall health>

## Key Metrics

- Total Open PRs: <count>
- Average Age: <days>
- Stale PRs (>3 days): <count> (<percentage>)
- Ancient PRs (>2 weeks): <count> (<percentage>)
- Ready to Merge: <count>
- Blocked: <count>

## 🚨 Critical Actions Required

1. [Priority 1 issue with specific action and owner]
2. [Priority 2 issue with specific action and owner]
   ...

## ⚠️ Needs Attention This Sprint

- PR #<number>: <title> (<age> days, <status>)
  - **Action**: <specific next step>
  - **Owner**: <who should take action>
    ...

## 🔄 In Progress (Healthy)

<Brief list of PRs actively being reviewed>

## ✅ Ready to Merge

<List PRs that can be merged today>

## 📊 Patterns Observed

- <Pattern 1>: <implications and recommendations>
- <Pattern 2>: <implications and recommendations>

## 🎯 Sprint Goal Alignment

<How current PR status affects sprint commitments>

## Recommendations for Next Standup

1. <Specific discussion topic>
2. <Specific discussion topic>
   ...

Example Usage

Scenario 1: Daily Standup Prep

# Run for all team repositories
gh pr list --repo myorg/frontend --json number,title,author,updatedAt,reviewDecision | \
  [analyze with this prompt] | \
  [paste summary in standup notes]

Scenario 2: Sprint Planning

# Analyze all repos for next sprint
for repo in api frontend backend; do
  gh pr list --repo myorg/$repo --json number,title,author,createdAt,updatedAt,labels
done | [analyze with this prompt]
# Focus on: What's carrying over? What's blocking sprint start?

Scenario 3: Sprint Retrospective

# Analyze PR patterns over completed sprint
gh pr list --repo myorg/app --state all --search "created:2025-01-01..2025-01-14" | \
  [analyze with this prompt]
# Focus on: What slowed us down? What patterns emerged?

Quality Checks

Before finalizing the report, ensure:

  • ✅ All PRs are classified (no "unknown" status)
  • ✅ Every critical issue has a specific action and owner
  • ✅ Metrics are accurate and cross-checked
  • ✅ Recommendations are actionable (not vague like "improve review speed")
  • ✅ Report is scannable (<2 minutes to read in standup)
  • ✅ Sprint goal impact is clearly stated

Integration Points

This prompt works well with:

  • Standup ceremonies: Share critical actions and blockers
  • Sprint planning: Assess carryover work and capacity
  • Retrospectives: Identify process improvements
  • Weekly status reports: Track hygiene trends over time
  • Engineering manager 1:1s: Discuss team bottlenecks

Success Criteria

The report is successful if:

  1. At least 3 actionable items are identified and addressed within 24 hours
  2. Average PR age decreases sprint-over-sprint
  3. Zero "ancient PRs" (>4 weeks) by end of quarter
  4. Team can complete standup discussion of PRs in <5 minutes
  5. PR review becomes predictable and consistent

Notes

  • Frequency: Run daily during active sprints, weekly otherwise
  • Scope: Start with 3-5 core repositories, expand as process matures
  • Customization: Adjust age thresholds based on team norms (startup vs. enterprise)
  • Automation: Consider GitHub Actions to post report as issue/comment daily

Related Prompts

  • stale-item-cleanup: Deep analysis and bulk cleanup of old PRs/issues
  • standup-prep: Broader standup preparation including issues and blockers
  • duplicate-detection: Identify redundant work across repos
  • dependency-analysis: Map PR dependencies and critical paths

Related Assets

Stale Item Cleanup

active

Deep analysis and bulk cleanup of stale pull requests and issues across repositories. Identifies candidates for closing, archiving, or escalating based on age, activity, and business value.

claude
codex
vscode
agile
sprint-hygiene
technical-debt
github
gh-cli
+1

Owner: thudak_uhg

Duplicate Detection & Consolidation

experimental

Identify duplicate or overlapping pull requests and issues across repositories using similarity analysis, and recommend consolidation strategies to reduce redundant work.

claude
codex
vscode
agile
sprint-hygiene
duplicates
technical-debt
github

Owner: community

Daily Standup Preparation

active

Comprehensive standup preparation assistant that aggregates blockers, PR status, issue progress, and team updates into a concise, actionable format for daily standup meetings.

claude
codex
vscode
agile
sprint-ceremonies
standup
scrum
github
+1

Owner: thudak_uhg

Dependency Analysis & Critical Path

experimental

Map dependencies between issues and PRs to identify critical paths, bottlenecks, and risk areas for sprint and epic planning.

claude
codex
vscode
agile
sprint-hygiene
dependencies
critical-path
github

Owner: community

Label Taxonomy Audit

experimental

Audit GitHub label usage across repositories to identify inconsistencies, redundancies, and missing labels, then recommend a standardized taxonomy.

claude
codex
vscode
agile
issue-management
labels
taxonomy
github

Owner: community

Epic Progress Dashboard

active

Generate comprehensive epic progress dashboards showing completion status, velocity trends, blocker analysis, and burn-down forecasts for multi-sprint initiatives and large features.

claude
codex
vscode
agile
progress-tracking
epics
metrics
github
+1

Owner: thudak_uhg