name: triage-prs description: Triage open electron/electron pull requests by CI check status — lists PRs that are green/passing, failing, still pending, or have no checks at all, annotated with their Status on the "PR Triage" project board and with the new-pr label. Can scope to a single named check, e.g. PRs whose "faraday/cage" check is pending. Use when asked to triage PRs or do PR triage, list green/passing or mergeable PRs, find PRs with failing or pending CI, find PRs with no checks running, check faraday/cage status, or show each PR's triage board status. Also triggers on the bare words "faraday" or "failing prs".
Triage PRs By CI Status
Lists open pull requests filtered by their GitHub checks. Backed by the bundled
script triage-prs.sh, which lives alongside this file.
Shortcuts
-
faraday— when the user says just "faraday" (or "faraday prs", "pending faraday", etc.), run:.claude/skills/triage-prs/triage-prs.sh --check "faraday/cage" --status pendingThis lists open PRs whose
faraday/cagecheck is still pending. -
failing— when the user says just "failing prs" (or "failing ci" in the context of PR triage), run:.claude/skills/triage-prs/triage-prs.sh --status failingThis lists open PRs whose checks are failing.
By default, evaluation is scoped to the "GitHub Actions Completed" check —
Electron's umbrella check that reflects the overall GitHub Actions run. Pass
--check "" to evaluate every check on the PR instead, or --check "<name>"
for a different single check.
Each PR is classified as one of:
| Status | Icon | Meaning |
|-----------|------|---------|
| green | ✅ | All checks succeeded (SUCCESS/NEUTRAL/SKIPPED). |
| failing | ❌ | At least one check failed (FAILURE/ERROR/CANCELLED/TIMED_OUT/…). |
| pending | 🟡 | Checks exist but some are still running (PENDING/IN_PROGRESS/…). |
| none | ⚪ | No checks are running at all. |
Each listed PR is also annotated with its Status on the "PR Triage"
GitHub project board (e.g. [PR Triage: Needs Review]). This is shown by
default and requires the gh token to have the read:project scope; if the
scope is missing the script prints a one-time note and omits the column.
Prerequisites
-
The
ghCLI, authenticated (gh auth login). -
jqonPATH. -
To show the triage board Status column, the token needs the
read:projectscope. Grant it with:gh auth refresh -s read:project
Runtime
The script makes up to two gh calls per PR, sequentially, so a full scan at
the default --limit 200 takes several minutes and consumes a few hundred
API requests. Run it with an explicit long timeout (10 minutes is safe), or
lower --limit for a quicker partial scan. Do not assume it has hung.
Usage
Run the script from the repo root:
# Green PRs (default), 200 most recent open PRs in electron/electron
.claude/skills/triage-prs/triage-prs.sh
# Filter by a different status
.claude/skills/triage-prs/triage-prs.sh --status failing
.claude/skills/triage-prs/triage-prs.sh --status none
.claude/skills/triage-prs/triage-prs.sh --status pending
# Classify every scanned PR and show its status
.claude/skills/triage-prs/triage-prs.sh --status all
# Scan fewer PRs for a faster result
.claude/skills/triage-prs/triage-prs.sh --status failing --limit 50
# Target another repo, or change the check scope
.claude/skills/triage-prs/triage-prs.sh --repo electron/forge --limit 50
.claude/skills/triage-prs/triage-prs.sh --check "" # evaluate all checks
.claude/skills/triage-prs/triage-prs.sh --check "macos-x64 / build / build"
# Scope to a single named check, e.g. find PRs whose faraday/cage is pending
.claude/skills/triage-prs/triage-prs.sh --check "faraday/cage" --status pending
.claude/skills/triage-prs/triage-prs.sh --check "faraday/cage" --status failing
# Triage board Status column
.claude/skills/triage-prs/triage-prs.sh --no-triage # hide the Status column
.claude/skills/triage-prs/triage-prs.sh --triage-project "PR Triage" # read a different board
Environment variables REPO, LIMIT, CHECK_NAME, STATUS, TRIAGE, and
TRIAGE_PROJECT are honored as defaults and can be overridden by the
corresponding flags.
Output is one entry per PR — an icon, a clickable OSC 8 hyperlink on the PR number, the title, and any markers — with the raw URL on the next line:
✅ #52533 feat: support `restrictOwnAudio` constraint [PR Triage: Needs Review]
https://github.com/electron/electron/pull/52533
Reporting results
When summarizing to the user, render each PR as a Markdown link so it is
clickable in chat, e.g. [#52533](https://github.com/electron/electron/pull/52533) — feat: support restrictOwnAudio constraint.
The script's output includes the PR URL on the second line for each entry, so
use that URL directly.
When a PR carries the new-pr label (the script appends a [new-pr] marker),
indicate it in the summary with the plain text [new-pr] rather than an emoji.
Interpreting results
- Two categories of PR are silently excluded from every run, and neither is
reported in the totals. Say so when summarizing, so the output is not read as
the complete set of open PRs:
- Draft PRs.
- PRs whose "PR Triage" board Status contains
WIP— these are treated as not ready for review. Note that--no-triageskips the board lookup entirely, so WIP PRs are included when it is passed.
- With a status filter (the default is
green), only PRs whose classification matches are listed; all others are omitted. nonemeans the PR genuinely has no checks at all (nothing has been triggered yet), which is different frompending(checks exist but haven't finished).- Because evaluation defaults to the "GitHub Actions Completed" check, a PR
reads as
pendingwhile its other checks run but that umbrella check has not been posted yet, then flips togreen/failingonce the umbrella check reports. A PR is onlynonewhen it has zero checks whatsoever. Use--check ""to judge by all checks instead. - A
SKIPPEDumbrella check is not treated as a pass: Electron skips "GitHub Actions Completed" when a required upstream job fails, so the script falls back to the full check set to find the real status.
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.