Agent skill

Good PRs

by ClickHouse in ClickHouse/ClickHouse

Show a report of open ClickHouse PRs whose only non-green CI check is "CH Inc sync" (or that are fully green) — i.e.

Apache-2.0Auto-check passedDatabases

Install Good PRs

skills CLI
$ npx skills add ClickHouse/ClickHouse --skill good-prs -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ClickHouse/ClickHouse good-prs --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ClickHouse/ClickHouse.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/good-prs .claude/skills/good-prs && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
good-prs
GitHub stars
50k
Token cost
~1.8k tokens
SKILL.md length
988 words
Files
3
Skills in repo
24
Repo updated
First seen
Licence
Apache-2.0

At a glance

Show a report of open ClickHouse PRs whose only non-green CI check is "CH Inc sync" (or that are fully green) — i.e.

  • Works in 3 steps: Your own PRs — authored by the… → Assigned to you, authored by others —… → PRs by each tracked author — every…
  • Asked for good PRs
  • SKILL.md covers What counts as a "good PR", Sections, How to run and Testing, plus 2 more sections
  • Runs Shell scripts from its folder; calls gh and bash

What it does

Good PRs is an agent skill from ClickHouse/ClickHouse. 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.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `report.sh` and `test.sh`).

It sits in Databases, covering Data warehousing. It works with ClickHouse. The repository describes itself as: ClickHouse® is a real-time analytics database management system. The licence is Apache-2.0.

When your agent uses it

  • Asked for good PRs
  • Merge-ready PRs
  • PRs blocked only on the sync job

Example prompts

  • “CH Inc sync”
  • “good PRs”
  • “/good-prs”

Requirements

  • A Bash shell
  • Pre-approved tools (allowed-tools): Bash(bash:*), Bash(gh:*), Bash(jq:*), Bash(xargs:*), Bash(awk:*), Bash(grep:*), Bash(cut:*), Bash(sed:*), Read

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Your own PRs — authored by the authenticated gh user.
  2. Assigned to you, authored by others — assigned to you, excluding your own PRs and
  3. PRs by each tracked author — every qualifying PR by the author, regardless of

What it can do on your machine

Read from SKILL.md and the folder at commit c873902. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(bash:*)
    • Bash(gh:*)
    • Bash(jq:*)
    • Bash(xargs:*)
    • Bash(awk:*)
    • Bash(grep:*)
    • Bash(cut:*)
    • Bash(sed:*)
    • Read

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • gh
    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Good PRs loads about 1.8k tokens when it runs. Until then it costs about 113 tokens; SKILL.md has 988 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~113
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ClickHouse/ClickHouse at commit c873902, republished under its Apache-2.0 licence (© ClickHouse). 988 words, ~1,801 tokens.

Download SKILL.mdSave it as .claude/skills/good-prs/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
good-prs
description
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.
allowed-tools
Bash(bash:*), Bash(gh:*), Bash(jq:*), Bash(xargs:*), Bash(awk:*), Bash(grep:*), Bash(cut:*), Bash(sed:*), Read
argument-hint
[tracked-author ...] # default: groeneai
disable-model-invocation
false

Good PRs Skill

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.

What counts as a "good PR"

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:

  • GREEN — CH Inc sync also passed → fully green / merge-ready.
  • FAILED — only CH Inc sync failed.
  • INPROG — only CH Inc sync is still running (PENDING/IN_PROGRESS).
  • NOSYNC — there is no CH Inc sync check at all and everything else is green (typically release-branch backports).

Independently of CI, a PR can also conflict with its base branch in the public repository, which blocks the merge whatever the checks say. That is shown in the same first column, as a suffix on the sync label:

  • +CONFLICT — GitHub reports the PR as CONFLICTING against its base; it needs a merge (or a rebase) before it can go in. E.g. GREEN+CONFLICT = all checks green, but the branch does not merge cleanly.
  • +UNKNOWN — GitHub had not finished computing mergeability, so the conflict state is genuinely unknown rather than clean.

Within one sync bucket, clean rows are listed first, then +UNKNOWN, then +CONFLICT, so the most actionable PRs stay at the top of each section.

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).

Sections

  1. Your own PRs — authored by the authenticated gh user.
  2. Assigned to you, authored by others — assigned to you, excluding your own PRs and the tracked authors (those get their own section).
  3. PRs by each tracked author — every qualifying PR by the author, regardless of assignee. Default tracked author: groeneai. Pass author logins as arguments to change this (e.g. good-prs groeneai azat).

How to run

Run the bundled script and present its Markdown output directly to the user (it already emits finished tables):

bash
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 + mergeable 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.

Testing

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, the +CONFLICT / +UNKNOWN merge-state suffixes and their sort order, the re-query of a lazily computed UNKNOWN mergeability, empty input, --repo pinning, the fail-loud-on-real-error behaviour, and the retry policy (a transient failure is retried until it succeeds, a permanent one is not retried):

bash
bash .claude/skills/good-prs/test.sh

Presentation

  • The script's stdout is a complete report — show it as-is.
  • Statuses drift constantly as CI runs; if the user asks to "check again", just re-run the script. Mention it is a point-in-time snapshot.
  • If the user wants only the failed/in-progress subset (not the fully-green ones), filter the rows to FAILED/INPROG after running, or note which rows are GREEN.
Show full SKILL.md (404 more words)Show less

Notes and caveats

  • gh pr list --author <login> is backed by GitHub's search index, which can occasionally 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.
  • The aggregate gates excluded from the "everything else is green" test are 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.
  • Checks are classified by 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.
  • A full report makes roughly two GraphQL calls per PR — several hundred per run — so hitting at least one transient GitHub failure is close to certain. Those (HTTP 408, 429, any 5xx, gateway timeouts, connection resets, secondary rate limits) are retried with exponential backoff, and a primary rate-limit rejection waits for the hourly window to reset. GH_RETRIES (default 5) and GH_RETRY_DELAY (default 2 seconds) tune this.
  • The script still fails loudly: an error that will never fix itself (auth, unknown PR, bad flag) aborts on the first attempt, and a transient error that outlives every retry aborts too — in both cases with the original gh diagnostic, rather than silently omitting that PR from the report.
  • A run costs a large share of the hourly GraphQL quota (5000 points), so a few back-to-back runs can exhaust it. Check with gh api rate_limit --jq .resources.graphql.
  • mergeable is computed lazily by GitHub: for a PR nobody has looked at recently the first query only schedules the test merge and answers UNKNOWN. The script therefore re-asks an open PR up to GH_MERGEABLE_TRIES times (default 3) with GH_MERGEABLE_DELAY seconds (default 2) in between, so a conflicting PR is not shown as clean merely because it was asked about first. Rows that stay UNKNOWN are marked +UNKNOWN rather than assumed mergeable.
  • mergeable rides along on the gh pr view call that already fetches state and reviews, so the conflict column costs no extra quota except for those re-queries.
  • A +CONFLICT row is still listed: the criterion for inclusion is about CI checks. If the user wants only mergeable-right-now PRs, filter the rows without a +CONFLICT (and, to be strict, without +UNKNOWN) suffix after running.
  • The script needs gh authenticated and jq available.

© ClickHouse, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in .claude/skills/good-prs of ClickHouse/ClickHouse.

  • SKILL.md
  • report.sh
  • test.sh

Open the folder on GitHubat commit c873902

Compare with similar skills

Good PRs next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Good PRs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Good PRs this skillClickHouse/ClickHouse50k—~1.8kAutomated safety check: PassApache-2.0
Clickhouse Architecture Advisorvemetric/vemetric3952 repos~791Automated safety check: PassApache-2.0
Clickhouse Ioaffaan-m/ECC276k3 repos~2.3kAutomated safety check: PassMIT
Clickhouse Ioaffaan-m/ECC276k2 repos~2.3kAutomated safety check: PassMIT
Clickhouse Ioaffaan-m/ECC276k1 repos~2.7kAutomated safety check: PassMIT
Gram Telemetry Query Dimensionsspeakeasy-api/gram273—~2.4kAutomated safety check: PassAGPL-3.0

Similar skills

  • MUST USE when designing ClickHouse architectures, selecting between ingestion or modeling patterns, or translating best practices into workload-specific system designs.

    395 GitHub starsUsed in 2 repos~791 tokens
    DatabasesAuto-check passed
  • Clickhouse Io

    affaan-m/ECC

    ClickHouse数据库模式、查询优化、分析以及高性能分析工作负载的数据工程最佳实践. An agent skill from affaan-m/ECC.

    276k GitHub starsUsed in 3 repos~2.3k tokens
    DatabasesAuto-check passed
  • Clickhouse Io

    affaan-m/ECC

    고성능 분석 워크로드를 위한 ClickHouse 데이터베이스 패턴, 쿼리 최적화, 분석 및 데이터 엔지니어링 모범 사례.

    276k GitHub starsUsed in 2 repos~2.3k tokens
    DatabasesAuto-check passed
  • Clickhouse Io

    affaan-m/ECC

    ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.

    276k GitHub starsUsed in 1 repo~2.7k tokens
    DatabasesAuto-check passed
  • How to add a new attribute value (dimension) that the generic org-scoped telemetry.query analytics endpoint can group by and filter on.

    273 GitHub stars~2.4k tokensUpdated today
    DatabasesAuto-check passed
  • Clickhouse Io

    xu-xiang/everything-claude-code-zh

    ClickHouse 数据库模式、查询优化、分析以及高性能分析工作负载的数据工程最佳实践. An agent skill from xu-xiang/everything-claude-code-zh.

    2k GitHub stars~2.1k tokensUpdated 7 mo ago
    DatabasesAuto-check passed

More from ClickHouse/ClickHouse

All 24 skills in this repo
  • Keeper Stress Analysis

    ClickHouse/ClickHouse

    Analyze ClickHouse Keeper stress-test results from play.clickhouse.com / keeperstresstests data warehouse.

    50k GitHub stars~4.7k tokensUpdated today
    Auto-check passed
  • Perf Comparison

    ClickHouse/ClickHouse

    Evaluate ClickHouse performance test results from existing CI/dashboard data or local perf.py runs.

    50k GitHub stars~3.9k tokensUpdated today
    Auto-check: notes
  • Patch Release Check

    ClickHouse/ClickHouse

    Check whether ClickHouse's supported versions (last 3 majors + latest LTS) have recent stable patch releases, diagnose why the scheduled AutoReleases pipeline failed, and identify which releases…

    50k GitHub stars~4k tokensUpdated today
    Auto-check: notes
  • Alloc Profile

    ClickHouse/ClickHouse

    Analyze a jemalloc (or other) allocation profile in collapsed stack format.

    50k GitHub stars~4.3k tokensUpdated today
    Auto-check passed
  • Bisect

    ClickHouse/ClickHouse

    Bisect a ClickHouse regression using pre-built master binaries from CI.

    50k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Clickhouse PR Description

    ClickHouse/ClickHouse

    Generate PR descriptions for ClickHouse/ClickHouse that match maintainer expectations.

    50k GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Good PRs

What does Good PRs do?

Show a report of open ClickHouse PRs whose only non-green CI check is "CH Inc sync" (or that are fully green) — i.e. Good PRs is an agent skill from ClickHouse/ClickHouse.e.

When should I use Good PRs?

Good PRs fits situations like: asked for good PRs; merge-ready PRs; PRs blocked only on the sync job.

How do I install Good PRs in Claude Code?

Run `npx skills add ClickHouse/ClickHouse --skill good-prs -a claude-code`. Or copy the skill folder (.claude/skills/good-prs in ClickHouse/ClickHouse) into .claude/skills/good-prs in your project. Claude Code loads it when a task matches its description.

How do I install Good PRs in Codex?

Run `npx skills add ClickHouse/ClickHouse --skill good-prs -a codex`. Or copy the skill folder (.claude/skills/good-prs in ClickHouse/ClickHouse) into .agents/skills/good-prs in your project. Codex loads it when a task matches its description.

Can I use Good PRs in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ClickHouse/ClickHouse --skill good-prs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/good-prs, .gemini/skills/good-prs, .github/skills/good-prs and .opencode/skills/good-prs in your project.

What does Good PRs need to run?

Going by SKILL.md and its folder, Good PRs needs a shell for the scripts in its folder and the command-line tools its instructions call (gh and bash). Our summary lists: A Bash shell. Its frontmatter pre-approves these tools: Bash(bash:*), Bash(gh:*), Bash(jq:*), Bash(xargs:*), Bash(awk:*), Bash(grep:*), Bash(cut:*), Bash(sed:*), Read.

Does Good PRs access the network?

SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Good PRs safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Good PRs use?

Good PRs is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Good PRs use?

About 1.8k tokens (SKILL.md is roughly 7.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Good PRs?

Skills that share tags, products or a category with Good PRs: Clickhouse Architecture Advisor (vemetric/vemetric, 395 stars), Clickhouse Io (affaan-m/ECC, 276k stars), Clickhouse Io (affaan-m/ECC, 276k stars) and Clickhouse Io (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Good PRs?

ClickHouse (a GitHub organization) maintains it in ClickHouse/ClickHouse, which has 50,308 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 9, 2026.

Source: ClickHouse/ClickHouse on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.