Update Keyword Engine Lists
ClickHouse/clickhouse-java
Update ALLOWEDKEYWORDALIASES in ClickHouseSqlUtils.java and ENGINETOTABLETYPE in DatabaseMetaDataImpl.java from failing test output.
Evaluate ClickHouse performance test results from existing CI/dashboard data or local perf.py runs.
$ npx skills add ClickHouse/ClickHouse --skill perf-comparison -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ClickHouse/ClickHouse perf-comparison --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ClickHouse/ClickHouse.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/perf-comparison .claude/skills/perf-comparison && rm -rf skills-srcUse ~/.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/
Install the "perf-comparison" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/perf-comparison into .claude/skills/perf-comparison/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf-comparison", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/perf-comparisonType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ClickHouse/ClickHouse --skill perf-comparison -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ClickHouse/ClickHouse perf-comparison --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ClickHouse/ClickHouse.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/perf-comparison .agents/skills/perf-comparison && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "perf-comparison" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/perf-comparison into .agents/skills/perf-comparison/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf-comparison", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ClickHouse/ClickHouse --skill perf-comparison -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ClickHouse/ClickHouse perf-comparison --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ClickHouse/ClickHouse.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/perf-comparison .cursor/skills/perf-comparison && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "perf-comparison" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/perf-comparison into .cursor/skills/perf-comparison/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf-comparison", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ClickHouse/ClickHouse.git --path .claude/skills/perf-comparison--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ClickHouse/ClickHouse --skill perf-comparison -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ClickHouse/ClickHouse perf-comparison --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ClickHouse/ClickHouse.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/perf-comparison .gemini/skills/perf-comparison && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "perf-comparison" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/perf-comparison into .gemini/skills/perf-comparison/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf-comparison", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ClickHouse/ClickHouse perf-comparisonInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ClickHouse/ClickHouse --skill perf-comparison -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ClickHouse/ClickHouse.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/perf-comparison .github/skills/perf-comparison && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "perf-comparison" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/perf-comparison into .github/skills/perf-comparison/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf-comparison", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ClickHouse/ClickHouse --skill perf-comparison -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ClickHouse/ClickHouse perf-comparison --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ClickHouse/ClickHouse.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/perf-comparison .opencode/skills/perf-comparison && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "perf-comparison" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/perf-comparison into .opencode/skills/perf-comparison/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf-comparison", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
perf-comparisonEvaluate ClickHouse performance test results from existing CI/dashboard data or local perf.py runs.
Perf Comparison is an agent skill from ClickHouse/ClickHouse. Evaluate ClickHouse performance test results from existing CI/dashboard data or local perf.py runs. Use to check PR performance changes, run local performance tests, compare with history, assess flakiness, inspect coverage/PR relevance, and summarize whether a result is actionable.
Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including scripts and reference files (for example `references/ci-api.md`, `references/local-perf.md` and `references/verdict-rules.md`).
It sits in Databases, covering Data warehousing and Failing and flaky tests. It works with ClickHouse. The repository describes itself as: ClickHouse® is a real-time analytics database management system. The licence is Apache-2.0.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit cd023af. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadGrepGlobWebFetchFrom allowed-tools in the SKILL.md frontmatter.
Ships 4 files in scripts/ (Python and Shell), which the agent can run.
Shell commands in SKILL.md call:
python3curljqghFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
performance.ci.clickhouse.comclickhouse-builds.s3.amazonaws.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Perf Comparison loads about 3.9k tokens when it runs, and up to ~10k if it reads all its reference files. Until then it costs about 75 tokens; SKILL.md has 1,306 words of instructions outside code blocks.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Grep, Glob, WebFetchAutomated 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); the scripts in this folder are not scanned.
The full file from ClickHouse/ClickHouse at commit cd023af, republished under its Apache-2.0 licence (© ClickHouse). 1,306 words, ~3,899 tokens.
.claude/skills/perf-comparison/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Use this skill whenever the goal is to answer:
Is this ClickHouse performance result real, flaky/noisy, already known from history, or worth deeper investigation?
The evidence may come from existing performance CI/dashboard data, a local perf.py run, or both. Do not treat this as two separate modes; use whichever evidence is available and add missing evidence only when it changes the decision.
M1:downgrade, M2:neutral are not report-ready; translate confidence into tier/reason and named evidence checks.client_time with CPU/real/memory metrics.# List performance.ci runs for a PR.
python3 scripts/perf_api.py runs --pr 104350
# Inventory a PR first. This prints a small summary layer, then separates changed slowdowns,
# changed speedups, and high-noise rows.
python3 scripts/perf_api.py pr-inventory --pr 104350 --limit 20 --with-confidence
# 30-day master status classification via play.clickhouse.com default.checks.
python3 scripts/perf_api.py master-checks --pr 104350 --limit 50
# Inspect raw CI metric TSVs only when dashboard/API cannot provide required artifact-level data.
python3 scripts/perf_api.py tsv-inventory --tsv pr_104350_amd.tsv pr_104350_arm.tsv --limit 20
# Summarize a run's changed metrics.
python3 scripts/perf_api.py changes --run-id "$RUN_ID" --with-confidence
# Inspect one query with trend/history/coverage/flamegraph diff.
python3 scripts/perf_api.py query \
--run-id "$RUN_ID" \
--test aggregation_in_order_2 \
--query-index 4 \
--metric client_time \
--arch arm \
--with-confidence --with-trend --with-history --with-coverage --with-flamegraph-diff
# Compare one test/query/metric across all dashboard runs for a PR.
python3 scripts/perf_api.py pr-query-history \
--pr 104350 \
--test aggregation_in_order_2 \
--query-index 4 \
--metric client_time \
--arch arm
# Parse local tests/performance/scripts/perf.py output.
mkdir -p tmp
python3 scripts/parse_perf_py.py tmp/perf-output.tsvReferences:
references/ci-api.md — performance.ci API and dashboard workflow.references/local-perf.md — local perf.py, optional server startup, datasets, and profiling.references/verdict-rules.md — classification rules and reporting checklist.Use the richest reliable source for each question:
default.checks) for 30-day master status counts: how often the same test/query appeared slower, faster, or unstable on master. Use master-checks for this.perf.py only when explicit old/new binaries are provided and local validation is useful; report it as non-CI-equivalent.BASE="https://performance.ci.clickhouse.com/api/v1"Find PR runs:
PR=104350
curl -fsS "$BASE/runs?q=$PR" | jq .Get run overview:
curl -fsS "$BASE/runs/$RUN_ID?metrics=client_time,real_time,cpu_time,memory" | jq .Get query detail:
curl -fsS "$BASE/runs/$RUN_ID/tests/$TEST/queries/$QUERY_INDEX?metrics=client_time,real_time,cpu_time,memory" | jq .Get trend/history:
curl -fsS "$BASE/runs/$RUN_ID/tests/$TEST/trend?metric=$METRIC&queryIndex=$QUERY_INDEX&arch=$ARCH" | jq .
curl -fsS "$BASE/history/$TEST/$QUERY_INDEX?metric=$METRIC&arch=$ARCH" | jq .Get PR coverage overlap for a test:
curl -fsS "$BASE/runs/$RUN_ID/tests/$TEST/coverage?fileSet=intersecting" | jq .Open the UI flamegraph page first:
https://performance.ci.clickhouse.com/runs/$RUN_ID/tests/$TEST/queries/$QUERY_INDEXUse the raw flamegraph-diff API only for machine-readable sample deltas:
curl -fsS "$BASE/runs/$RUN_ID/tests/$TEST/queries/$QUERY_INDEX/flamegraph-diff?metric=$METRIC&arch=$ARCH&traceType=CPU" | jq .API caveats observed in live testing:
unstableQueries[] can contain high-noise/below-threshold rows even when the summary card says Unstable queries: 0; do not treat them as actionable changed rows unless they are over threshold.trend.selectedRunPoint.value may be a zero marker; use query-detail old/new values for the measurement.coverage?fileSet=intersecting may omit totals.intersectingFiles when there are zero intersecting files; use len(files) as the fallback.For each suspicious change, collect as much of this ladder as needed:
python3 scripts/perf_api.py pr-inventory --pr <PR> --with-confidence. The inventory must begin with a small generated summary layer: Top likely signal, Top likely noise, and Top improvements. Changed-row tables must separate signal evidence from noise/uncertain evidence. Do not mix high-noise rows into changed slowdown/speedup tables. Use CI artifacts only when dashboard/API cannot provide required raw data.Raw Sample Evidence, History Adaptive Threshold, Recent Master Variation, etc.). Never leave raw M1/M2/... codes unexplained.python3 scripts/perf_api.py master-checks --pr <PR> to query play.clickhouse.com default.checks over master-only runs and classify rows as new/rare/flaky/unstable/fixes-known-regression. The output should be grouped by signal vs noise/uncertain evidence and link to the test page with the query selected.perf.py against old/new binaries with isolated servers.Stop when the verdict is clear; do not gather expensive evidence just to decorate a report. Exceptions: always inventory improvements as well as regressions; for large PRs or many changed rows, do not stop after a few representative examples; produce a portfolio/ranking summary first. Avoid repetitive all-run top tables unless the caller asks for verbose output or rerun history is central to the conclusion.
For a PR, inspect all runs returned by:
curl -fsS "$BASE/runs?q=$PR" | jq '.items[] | {runId: .identity.runId, time: .identity.runTime, changed: .changedQueries, slowdowns: .slowdownQueries, speedups: .speedupQueries}'For a specific query:
python3 scripts/perf_api.py pr-query-history --pr "$PR" --test "$TEST" --query-index "$QUERY_INDEX" --metric "$METRIC" --arch "$ARCH"The output must include performance.ci UI links and an oldest→newest diff chart. A missing old run endpoint is not available; do not turn an HTTP status into an investigation conclusion.
Interpretation:
Fetch coverage overlap:
curl -fsS "$BASE/runs/$RUN_ID/tests/$TEST/coverage?fileSet=intersecting" | jq .Use:
totals.intersectingFiles > 0: PR touched files executed by the perf test.files[].path, files[].patch, coverageRanges: identify touched covered lines.If coverage is unavailable, fall back to:
gh pr diff "$PR" --name-only
gh pr diff "$PR"Relate query to changes:
If the user wants to run a test locally or validate a patch, use ClickHouse perf.py.
Print queries first:
tests/performance/scripts/perf.py --print-queries tests/performance/$TEST.xmlCompare two already-running servers:
mkdir -p tmp
tests/performance/scripts/perf.py \
--host 127.0.0.1 127.0.0.1 \
--port ${OLD_TCP_PORT:-9000} ${NEW_TCP_PORT:-9001} \
--runs 7 \
tests/performance/$TEST.xml | tee tmp/${TEST}.perf.tsvRun one query index:
mkdir -p tmp
tests/performance/scripts/perf.py \
--host 127.0.0.1 127.0.0.1 \
--port ${OLD_TCP_PORT:-9000} ${NEW_TCP_PORT:-9001} \
--runs 7 \
--queries-to-run "$QUERY_INDEX" \
tests/performance/$TEST.xml | tee tmp/${TEST}_${QUERY_INDEX}.perf.tsvParse output:
python3 scripts/parse_perf_py.py tmp/${TEST}_${QUERY_INDEX}.perf.tsvIf servers are not running and the user wants help, use references/local-perf.md and optionally scripts/local_servers.sh. Prefer release/static builds. Do not compare debug/sanitizer builds unless the user explicitly wants that.
Local binary contract:
scripts/local_servers.sh requires explicit local paths: OLD_CLICKHOUSE NEW_CLICKHOUSE [WORKDIR].OLD_TCP_PORT, NEW_TCP_PORT, OLD_HTTP_PORT, NEW_HTTP_PORT.Praktika CI artifact lookup for performance-style release binaries:
# First get PR/run identity. Use identity.newSha for candidate and identity.oldSha for base/reference.
python3 scripts/perf_api.py runs --pr "$PR"
# Candidate PR binary from Praktika artifact report.
PR=<pr-number>
SHA=<candidate-sha>
ARCH=arm # arm or amd, matching the run/result being reproduced
JOB="build_${ARCH}_release"
# The S3 layout inserts the normalized workflow name after <sha>: PR builds are
# under "pr", master/reference builds under "masterci".
REPORT="https://clickhouse-builds.s3.amazonaws.com/PRs/${PR}/${SHA}/pr/${JOB}/artifact_report_${JOB}.json"
curl -fsS "$REPORT" | jq -r '.build_urls[] | select(endswith("/clickhouse"))'
# Exact master/reference binary.
SHA=<reference-sha>
URL="https://clickhouse-builds.s3.amazonaws.com/REFs/master/${SHA}/masterci/${JOB}/clickhouse"
curl -sfI "$URL"If the user approves a URL, download it to a named path and chmod +x; then pass those paths to local_servers.sh. Record binary path, SHA, architecture, build job, source URL, and version()/buildId() output in the report. Avoid non-SHA-pinned master/amd64/clickhouse or master/aarch64/clickhouse fallbacks for validation unless the user explicitly accepts them.
perf.py prints important lines like:
report-threshold <relative_threshold>
diff <query_index> <old_median> <new_median> <relative_diff> <pvalue>Treat a local result as meaningful when:
abs(relative_diff) exceeds the report threshold.pvalue <= 0.05.Use one of:
real regressionlikely noiseneeds rerununstable testreal improvementlocal-only evidencenot enough evidence## Performance verdict
Short verdict: <label>
Confidence: <high | medium | low>
## Evidence checked
- Run/API URLs:
- Test/query/metric/arch:
- Old/new/diff/threshold:
- Repeated PR runs:
- Confidence:
- History/trend:
- Coverage/PR relation:
- Flamegraph/profile: exact UI query-page link plus top sample deltas; raw API link only as backup, or explicit `not available` / `no frames returned`.
- Local perf.py, if any:
## Changed metrics
<table>
## Why this verdict
Short explanation that distinguishes current accepted evidence from stale/exploratory measurements.
## Recommended next step
- no action
- rerun performance CI
- run local perf.py
- inspect flamegraph hotspot
- inspect PR code around covered files
- bisect / targeted local validation© 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
SKILL.md and 7 other files (scripts, references) in .claude/skills/perf-comparison of ClickHouse/ClickHouse.
Open the folder on GitHubat commit cd023af
Perf Comparison 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Perf Comparison this skillClickHouse/ClickHouse | 50k | — | ~3.9k | Automated safety check: Notes | Apache-2.0 | |
| Update Keyword Engine ListsClickHouse/clickhouse-java | 1.6k | — | ~457 | Automated safety check: Pass | Apache-2.0 | |
| Clickhouse Architecture Advisorvemetric/vemetric | 394 | 2 repos | ~791 | Automated safety check: Pass | Apache-2.0 | |
| Clickhouse Ioaffaan-m/ECC | 275k | 3 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Clickhouse Ioaffaan-m/ECC | 275k | 2 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Clickhouse Ioaffaan-m/ECC | 275k | 1 repos | ~2.7k | Automated safety check: Pass | MIT |
ClickHouse/clickhouse-java
Update ALLOWEDKEYWORDALIASES in ClickHouseSqlUtils.java and ENGINETOTABLETYPE in DatabaseMetaDataImpl.java from failing test output.
vemetric/vemetric
MUST USE when designing ClickHouse architectures, selecting between ingestion or modeling patterns, or translating best practices into workload-specific system designs.
affaan-m/ECC
ClickHouse数据库模式、查询优化、分析以及高性能分析工作负载的数据工程最佳实践. An agent skill from affaan-m/ECC.
affaan-m/ECC
고성능 분석 워크로드를 위한 ClickHouse 데이터베이스 패턴, 쿼리 최적화, 분석 및 데이터 엔지니어링 모범 사례.
affaan-m/ECC
ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.
speakeasy-api/gram
How to add a new attribute value (dimension) that the generic org-scoped telemetry.query analytics endpoint can group by and filter on.
ClickHouse/ClickHouse
Analyze ClickHouse Keeper stress-test results from play.clickhouse.com / keeperstresstests data warehouse.
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…
ClickHouse/ClickHouse
Analyze a jemalloc (or other) allocation profile in collapsed stack format.
ClickHouse/ClickHouse
Bisect a ClickHouse regression using pre-built master binaries from CI.
ClickHouse/ClickHouse
Generate PR descriptions for ClickHouse/ClickHouse that match maintainer expectations.
ClickHouse/ClickHouse
Run a local pre-push AI code review of the current branch with the OpenAI codex CLI, the same way ClickHouse CI does, and optionally iterate fix and re-review until clean.
Works with
Categories
Evaluate ClickHouse performance test results from existing CI/dashboard data or local perf.py runs. Perf Comparison is an agent skill from ClickHouse/ClickHouse.py runs.
Perf Comparison fits situations like: check PR performance changes; run local performance tests; compare with history; assess flakiness.
Run `npx skills add ClickHouse/ClickHouse --skill perf-comparison -a claude-code`. Or copy the skill folder (.claude/skills/perf-comparison in ClickHouse/ClickHouse) into .claude/skills/perf-comparison in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ClickHouse/ClickHouse --skill perf-comparison -a codex`. Or copy the skill folder (.claude/skills/perf-comparison in ClickHouse/ClickHouse) into .agents/skills/perf-comparison in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ClickHouse/ClickHouse --skill perf-comparison -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/perf-comparison, .gemini/skills/perf-comparison, .github/skills/perf-comparison and .opencode/skills/perf-comparison in your project.
Going by SKILL.md and its folder, Perf Comparison needs Python and a shell for the scripts in its folder and the command-line tools its instructions call (python3, curl, jq and gh). Our summary lists: Python 3; A Bash shell. Its frontmatter pre-approves these tools: Bash, Read, Grep, Glob, WebFetch.
SKILL.md names 2 domains. In commands or code: performance.ci.clickhouse.com and clickhouse-builds.s3.amazonaws.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Perf Comparison 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.
About 3.9k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Perf Comparison: Update Keyword Engine Lists (ClickHouse/clickhouse-java, 1.6k stars), Clickhouse Architecture Advisor (vemetric/vemetric, 394 stars), Clickhouse Io (affaan-m/ECC, 275k stars) and Clickhouse Io (affaan-m/ECC, 275k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ClickHouse (a GitHub organization) maintains it in ClickHouse/ClickHouse, which has 50,288 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 8, 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.