pr-blocker-summarizer
GitHub将PR导出JSON转换为以阻塞项优先的摘要,识别检查失败、待审或陈旧PR,生成用于站会的合并状态报告。
触发场景
安装
npx skills add FrancyJGLisboa/agent-skill-creator --skill pr-blocker-summarizer -g -y
SKILL.md
Frontmatter
{
"name": "pr-blocker-summarizer",
"license": "MIT",
"metadata": {
"author": "agent-skill-creator",
"created": 1782518400,
"version": "1.0.0",
"last_reviewed": 1784505600,
"review_interval_days": 180
},
"description": "Summarizes open pull requests into a blockers-first standup digest. Activates when the user asks to summarize open PRs, find blocked pull requests, generate a PR standup, or triage review backlog from a PR export."
}
PR Blocker Summarizer
Turn a JSON export of open pull requests into a blockers-first digest: which PRs are blocked (failing checks, requested changes, or stale), which are ready to merge, and a one-line count an agent can post to standup.
A bundled example skill — small but real, used to demonstrate the creator's validation, pipeline, and eval-rollout machinery.
Activation
Activates on "summarize open PRs", "what's blocking my PRs", "PR standup", "review backlog". Do not activate on general git/GitHub questions unrelated to triaging a set of PRs.
Input
A JSON array of PRs, each with title, state (open), checks
(passing/failing), review (approved/changes_requested/pending), and
age_days. Missing fields are treated conservatively (counted as not-blocked only
when clearly ready).
Run
python3 scripts/run_pipeline.py --input prs.json --output digest.json
Output JSON shape:
{
"total": 7,
"blocked": [{"title": "...", "reasons": ["failing checks"]}],
"ready": ["..."],
"summary": "7 open · 3 blocked · 2 ready to merge"
}
Gotchas
blocked+readydoes not equaltotal. A PR isreadyonly whenchecksis explicitlypassingandreviewis explicitlyapproved. A PR with no blockers but a missingchecksfield lands in neither list and vanishes from both counts. Never narrate the summary line as if the two numbers account for every PR — say "N blocked, M ready" and leave the remainder unclaimed.stateis read from the input but never filtered on. A closed or merged PR left in the export is counted intotaland classified like any open one. Filter the export before running if it may contain non-open PRs.review: pendingcounts as blocked ("awaiting review"). A PR opened five minutes ago is reported as a blocker. This is intentional for standup triage, but it inflates the blocked count on teams that open PRs early.- A non-numeric
age_dayssilently skips the stale check rather than erroring. An export with"age_days": "unknown"will never flag anything stale, and the digest gives no sign that the check did not run.
Anti-goals
- Does not call the GitHub API; it works on an exported PR list.
- Does not merge or comment on PRs; it only summarizes.
版本历史
-
f4f7d35
当前 2026-08-20 03:13
新增## Gotchas章节,明确blocked+ready不等于total等边界逻辑;对齐agent skill最佳实践规范。
- 006901a 2026-07-25 09:07


