pr-blocker-summarizer

Summarizes open pull requests from a JSON export into a blockers-first standup digest.

2.4k|259|Updated Oct 18, 2025
One-click install
npx skills add https://github.com/FrancyJGLisboa/agent-skill-creator --skill pr-blocker-summarizer
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: pr-blocker-summarizer
Source: https://github.com/FrancyJGLisboa/agent-skill-creator/tree/main/references/examples/pr-blocker-summarizer
Command: npx skills add https://github.com/FrancyJGLisboa/agent-skill-creator --skill pr-blocker-summarizer

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

Teams triaging a backlog of open pull requests need a fast, consistent answer to "what is blocked and why" without manually reading every PR's checks and review state. This Skill turns a JSON export of open PRs into a blockers-first digest: which PRs are blocked (failing checks, requested changes, awaiting review, or stale), which are ready to merge, and a one-line count suitable for standup.

Core Features & Use Cases

  • Blocker triage: Classifies each PR with explicit reasons such as failing checks, changes requested, awaiting review, or stale beyond 7 days.
  • Ready-to-merge detection: Flags PRs as ready only when checks are explicitly passing and review is explicitly approved, treating missing fields conservatively.
  • Standup summary line: Produces a one-line count (total, blocked, ready) an agent can post directly to standup.
  • Bundled eval harness: Ships with an eval spec and three golden cases so the pipeline can be validated and regression-tested with run_evals.py.
  • Use Case: Export your open PRs as JSON, run the pipeline, and paste the resulting digest into your daily standup to assign unblock actions.

Quick Start

Ask the agent to summarize the attached JSON export of open pull requests into a blockers-first standup digest listing blocked PRs with reasons and ready-to-merge PRs.

Frequently Asked Questions about pr-blocker-summarizer

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I summarize open pull requests for standup?

Export your open PRs as a JSON array with title, state, checks, review, and age_days fields, then run scripts/run_pipeline.py with --input and --output. The digest lists blocked PRs with reasons, ready-to-merge PRs, and a one-line summary count.

What input format does the PR summarizer expect?

A JSON array of pull requests, each with title, state, checks (passing/failing), review (approved/changes_requested/pending), and age_days. Missing fields are treated conservatively, so a PR with no checks field is counted in neither blocked nor ready.

Does this tool call the GitHub API?

No. It works entirely on an exported JSON list of pull requests and never calls the GitHub API. It also does not merge or comment on PRs; it only summarizes their state.

Why do blocked plus ready counts not equal the total PR count?

A PR is ready only when checks are explicitly passing and review is explicitly approved. A PR with no blockers but a missing checks field lands in neither list, so the two counts can sum to less than the total.

Why is a brand-new pull request reported as blocked?

A review status of pending counts as blocked (awaiting review), so a PR opened minutes ago appears as a blocker. This is intentional for standup triage but inflates blocked counts on teams that open PRs early.

What are the limitations of the stale PR detection?

A PR is flagged stale only when age_days is numeric and at least 7 days. A non-numeric age_days value silently skips the stale check with no error, and closed or merged PRs left in the export are still counted in the total.