clickhouse/good-prs
Show a report of open ClickHouse PRs whose only non-green CI check is "CH Inc sync" (or that are fully green) — i.e. effectively ready to merge. Groups by your authored PRs, PRs assigned to you (authored by others), and PRs by tracked authors (default groeneai). Shows the CH Inc sync state and whether each PR was ever approved; excludes already-merged PRs. Use when asked for "good PRs", merge-ready PRs, or PRs blocked only on the sync job.
npx skills add https://github.com/ClickHouse/ClickHouse --skill good-prs
Produce a report of open pull requests in ClickHouse/ClickHouse that are effectively
ready to merge: every CI check is green/skipped except possibly CH Inc sync, which
is the private-repo sync job and is frequently the last thing standing between a PR and
merge. Fully-green PRs are included too.
For each PR, look at all checks and ignore the aggregate gates (PR, Mergeable Check,
A Sync (only for tests)). A PR qualifies when **every remaining check other than
CH Inc sync is SUCCESS, SKIPPED, or NEUTRAL** (nothing else is failing or still
running). The CH Inc sync state is then reported as one of:
CH Inc sync also passed → fully green / merge-ready.CH Inc sync failed.CH Inc sync is still running (PENDING/IN_PROGRESS).CH Inc sync check at all and everything else is green(typically release-branch backports).
Already-merged or closed PRs are excluded. Each row also shows whether the PR was
approved by anyone at least once (any historical APPROVED review event; it does
*not* require the approval to still be current after later pushes).
gh user.the tracked authors (those get their own section).
assignee. Default tracked author: groeneai. Pass author logins as arguments to
change this (e.g. good-prs groeneai azat).
Run the bundled script and present its Markdown output directly to the user (it already
emits finished tables):
bash .claude/skills/good-prs/report.sh $ARGUMENTS
The script fetches PR lists with gh pr list, classifies each PR's checks with
gh pr checks, and looks up state + approvals with gh pr view, all parallelized with
xargs -P 12. For groeneai-sized author sets (~200 open PRs) it takes roughly a minute.
Every gh call is pinned to --repo ClickHouse/ClickHouse, so the report is correct
regardless of the directory the skill is run from.
test.sh runs report.sh against a stubbed gh (no network) and checks the
bucket→label classification, the "only CH Inc sync is non-green" criterion, empty
input, --repo pinning, and the fail-loud-on-real-error behaviour:
bash .claude/skills/good-prs/test.sh
the script. Mention it is a point-in-time snapshot.
the rows to FAILED/INPROG after running, or note which rows are GREEN.
gh pr list --author <login> is backed by GitHub's search index, which canoccasionally omit an individual PR (a stale-index gap). If a specific PR is known to be
missing, fetch it explicitly with gh pr view <n> and add it.
PR,Mergeable Check, and A Sync (only for tests). If ClickHouse CI renames or adds an
aggregate gate, update the select(...) filter in report.sh.
gh pr checks' own bucket field (pass / fail /pending / skipping / cancel), not by raw state strings, so unusual states such as
QUEUED, TIMED_OUT, CANCELLED, or STARTUP_FAILURE are handled without a PR being
silently dropped.
gh call cannot read a PR's data (an API, rate-limit, orpermission error, as opposed to a legitimately check-less PR), it aborts with the
original gh diagnostic rather than silently omitting that PR from the report.
gh authenticated and jq available.Take clickhouse/good-prs from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.