Skip to content
Frontend
Skill

/triage-prs

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.

From plugin
electron
124k5 skills

Claude Code

$ npx -y skills add electron/electron --skill triage-prs --agent claude-code

SKILL.md

triage-prs.SKILL.md
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`](./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 pending

This lists open PRs whose `faraday/cage` check 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 failing

This 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 [`gh`](https://cli.github.com/) CLI, authenticated (`gh auth login`).
  • `jq` on `PATH`.
  • To show the triage board Status column, the token needs the `read:project`

scope. 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](https://gist.github.com/egmontkob/eb114294efdcfddb1b38f3714a0de4d6) 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-triage` skips 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.

  • `none` means the PR genuinely has no checks at all (nothing has been

triggered yet), which is different from `pending` (checks exist but haven't finished).

  • Because evaluation defau
Read more
@electron
Ships withelectron

:electron: Build cross-platform desktop apps with JavaScript, HTML, and CSS

Stars on GitHub

Momentum

stars in total
123.8k
Star history of electron/electron on GitHub, a chart by star-history.com

Other skills on electron.

chrome-release-cls

chrome-release-cls

Given a Chrome Releases blog post URL (chromereleases.googleblog.com), extract every CVE/bug and find the underlying Gerrit CL…

@electron@electronInstall Skill
chrome-release-verify

chrome-release-verify

End-to-end Chrome security backport for an Electron release branch. Given a Chrome Releases blog URL and a branch (e.g. 41-x-y),…

@electron@electronInstall Skill
electron-chromium-upgrade

electron-chromium-upgr…

Guide for performing Chromium version upgrades in the Electron project. Use when working on the roller/chromium/main branch to…

@electron@electronInstall Skill
electron-node-upgrade

electron-node-upgrade

Guide for performing Node.js version upgrades in the Electron project. Use when working on the roller/node/main branch to fix…

@electron@electronInstall Skill

More skills from other plugins.

next-bundle-optimizer
Auto-invoked

next-bundle-optimizer

Audit and reduce Next.js browser initial-load work. Use for slow route startup, oversized client bundles, duplicate browser…

nextjs1d143k
@vercel@vercelInstall Skill
migrate-radix-to-base

migrate-radix-to-base

Migrates React projects and components from Radix UI to Base UI. Use when asked to migrate from radix, move to base-ui, convert…

ui10d127k
@shadcn-ui@shadcn-uiInstall Skill
taste-skill
Auto-invoked

taste-skill

tasteskill v2, the anti-slop frontend skill. Art direction for websites, distilled from a study of 247 curated gallery sites (One…

@leonxlnx@leonxlnxInstall Skill
angular-developer

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, services, or HTTP…

angular11d101k
@angular@angularInstall Skill

Questions about triage-prs.

Which coding agents can use triage-prs?
triage-prs installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.