Update Keyword Engine Lists
ClickHouse/clickhouse-java
Update ALLOWEDKEYWORDALIASES in ClickHouseSqlUtils.java and ENGINETOTABLETYPE in DatabaseMetaDataImpl.java from failing test output.
Analyze CI performance comparison reports for a ClickHouse PR.
$ npx skills add ClickHouse/ClickHouse --skill perf-report -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ClickHouse/ClickHouse perf-report --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-report .claude/skills/perf-report && 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-report" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/perf-report into .claude/skills/perf-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf-report", 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-reportType 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-report -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ClickHouse/ClickHouse perf-report --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-report .agents/skills/perf-report && 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-report" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/perf-report into .agents/skills/perf-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf-report", 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-report -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ClickHouse/ClickHouse perf-report --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-report .cursor/skills/perf-report && 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-report" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/perf-report into .cursor/skills/perf-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf-report", 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-report--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-report -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ClickHouse/ClickHouse perf-report --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-report .gemini/skills/perf-report && 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-report" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/perf-report into .gemini/skills/perf-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf-report", 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-reportInstalls 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-report -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-report .github/skills/perf-report && 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-report" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/perf-report into .github/skills/perf-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf-report", 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-report -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-report --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-report .opencode/skills/perf-report && 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-report" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/perf-report into .opencode/skills/perf-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perf-report", 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-reportAnalyze CI performance comparison reports for a ClickHouse PR.
Perf Report is an agent skill from ClickHouse/ClickHouse. Analyze CI performance comparison reports for a ClickHouse PR. Lists all regressions and improvements, cross-references with master history to distinguish real changes from flaky tests.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
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.
9 steps, taken from the step headings 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.
Shell commands in SKILL.md call:
curlpython3clickhousenodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.
From 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 Report loads about 2.6k tokens when it runs. Until then it costs about 49 tokens; SKILL.md has 1,183 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); files beside SKILL.md are not scanned.
The full file from ClickHouse/ClickHouse at commit cd023af, republished under its Apache-2.0 licence (© ClickHouse). 1,183 words, ~2,648 tokens.
.claude/skills/perf-report/SKILL.md (or your agent's skills folder).$0 (required): PR number (e.g. 99474) or a CI report URLUse the fetch_perf_report.py tool to get TSV data for both architectures:
python3 .claude/tools/fetch_perf_report.py "https://github.com/ClickHouse/ClickHouse/pull/$PR" --arch amd --tsv
python3 .claude/tools/fetch_perf_report.py "https://github.com/ClickHouse/ClickHouse/pull/$PR" --arch arm --tsvIf a direct CI report URL is given instead of a PR number, use it directly.
Extract all changed queries (column 10 == 1 means the change exceeds the threshold):
Present the complete, unfiltered list of all changes above 1.10x, sorted by magnitude, for both architectures separately. Use tables with columns: Magnitude, Direction, Test, Query#, Batch.
Do NOT summarize, collapse, or hide entries. Do NOT dismiss anything as "noise" or "not actionable" without evidence. Every entry must be visible.
This step is MANDATORY. For every test that shows as slower or faster above 1.10x, check the public CI database to determine if this is a known flaky test or a genuine change introduced by the PR. Do NOT skip this step or use alternative approaches (like manually fetching perf reports from other PRs).
Query the default.checks table on play.clickhouse.com with user=explorer:
clickhouse client --format PrettyCompactNoEscapes --host play.clickhouse.com --user explorer --secure --query "
SELECT
replaceRegexpOne(test_name, '::(new|old)$', '') AS test,
countIf(test_status = 'slower') AS slower_count,
countIf(test_status = 'faster') AS faster_count,
countIf(test_status = 'unstable') AS unstable_count,
count() AS total_runs
FROM default.checks
WHERE pull_request_number = 0
AND check_name LIKE '%Performance%amd%'
AND check_start_time >= now() - INTERVAL 30 DAY
AND test_name IN (
'norm_distance #2::new',
'array_sort #0::new'
)
GROUP BY test
ORDER BY slower_count DESC, test
"Run one query per architecture — use '%Performance%amd%' for x86 and '%Performance%arm%' for ARM.
Critical details:
play.clickhouse.com, user: explorer (NOT play)default.checks (NOT perftest or other tables)pull_request_number = 0 filters to master-only commits (no PR noise)::new and ::old suffixes — always query with ::newFor each test, classify based on the master history:
Present the final classification in a table per architecture:
| Magnitude | Test | Master slower/total (30d) | Verdict |
|---|
Classify as:
After the tables, provide a brief summary:
When the user asks to investigate a specific regression further, download and analyze the CI artifacts.
Get artifact links using the fetch_ci_report.js tool with --links:
node .claude/tools/fetch_ci_report.js "<CI-report-URL-for-specific-batch>" --linksThis will show logs.tar.zst, job.log.zst, all-query-metrics.tsv, report.html, etc.
Download and extract server logs:
curl -sS "<logs.tar.zst-URL>" -o tmp/perf_logs.tar.zst
tar -I zstd -tf tmp/perf_logs.tar.zst # list contents
tar -I zstd -xf tmp/perf_logs.tar.zst -C tmp/ ./right/server.log # PR binary
tar -I zstd -xf tmp/perf_logs.tar.zst -C tmp/ ./left/server.log # master binaryright/server.log = PR binary (the "new" version)left/server.log = master binary (the "old" version)Analyze the query execution by finding the query ID in the server log:
# Find the query and its timing
grep "math.query2" tmp/right/server.log | grep -E "Aggregated|Read.*rows.*sec"The perf framework uses query IDs like {test_name.query{N}.run{M}} (e.g. math.query2.run0). Look at:
Aggregated ... in X sec — actual compute timeexecuteQuery: Read N rows ... in X sec — total query timeTCPHandler: Processed in X sec — wall clock including networkCompare both servers during the same time window to see if the machine was under load or if only the PR binary was slow. Check for:
Check the git hash of the binary that actually ran:
grep "Starting ClickHouse" tmp/right/server.log | head -1This shows the exact revision, build ID, and PID. Compare with what you expect — the CI perf test may use a different binary than the latest commit if the build was cached.
The perf job writes right-trace-log.tsv and left-trace-log.tsv, exports of system.trace_log from each server, containing CPU and real-time stack samples for every query.
Two limits to know before reaching for these files. They are NOT shipped in logs.tar.zst (the archive excludes *-trace-log.tsv), and the dump holds only the four columns the report reads: query_id, trace, trace_type, size. There is no symbols column; addresses are symbolized separately through *-addresses.tsv.
Use the report's collapsed stacks instead. report/stacks.$version.tsv already carries symbolized, collapsed stacks per query, and it is what the report's own flamegraphs are built from. It has no header; its first three columns are test, query_index and trace_type, so select a query by those three fields (the math.queryN spelling is a query id and never appears in this file). Keep the trace types apart: CPU and Real count samples while MemorySample and JemallocSample sum bytes, so folding them together mixes units.
tar -I zstd -xf tmp/perf_logs.tar.zst -C tmp/ ./report/stacks.right.tsv
awk -F'\t' '$1 == "math" && $2 == 2 && $3 == "CPU"' tmp/report/stacks.right.tsv \
| cut -f 5- | sed 's/\t/ /g' > tmp/math2_right.collapsedThe resulting .collapsed file can be processed with flamegraph.pl. Compare left (master) vs right (PR) to see what changed. Not with analyze-assembly.py --perf-map: that flag reads JSONL records keyed by instruction address, so every folded symbol;...;symbol count line is rejected as a JSON parse error and the weighting silently comes out empty.
This is the fastest way to identify the root cause of a regression. Example: for a 31x exp10 regression, the trace log immediately showed modf consuming 577/1200 CPU samples on the PR binary vs 28/60 on master — pinpointing the exact function responsible without needing to reproduce locally.
The archive also contains pre-built SVG flamegraphs for queries the framework selected for detailed analysis:
tar -I zstd -tf tmp/perf_logs.tar.zst | grep "\.svg"These come in .left.svg (master), .right.svg (PR), and .diff.svg (differential) variants, for both CPU and Real time. Not all queries get flamegraphs — only those the framework considers interesting.
The archive contains per-query raw metric data in analyze/tmp/{test}_{queryN}.tsv. Each row is one run, with an array of all ProfileEvents (counters like UserTimeMicroseconds, OSCPUVirtualTimeMicroseconds, RealTimeMicroseconds, etc.).
tar -I zstd -xf tmp/perf_logs.tar.zst -C tmp/ ./analyze/tmp/math_2.tsvThe all-query-metrics.tsv file (linked from --links output) contains the processed comparison data with old/new values, ratios, and thresholds for every metric of every query. The fetch_perf_report.py tool already parses this, but the raw file has all metrics, not just client_time.
When analyzing multiple batches or PRs, use unique directory names to avoid overwriting:
mkdir -p tmp/batch1_amd tmp/batch5_amd
curl -sS "<batch1-logs-url>" -o tmp/batch1_amd/logs.tar.zst
curl -sS "<batch5-logs-url>" -o tmp/batch5_amd/logs.tar.zst
tar -I zstd -xf tmp/batch1_amd/logs.tar.zst -C tmp/batch1_amd/© 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
Just SKILL.md in .claude/skills/perf-report of ClickHouse/ClickHouse.
Open the folder on GitHubat commit cd023af
Perf Report 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 Report this skillClickHouse/ClickHouse | 50k | — | ~2.6k | Automated safety check: Notes | Apache-2.0 | |
| Update Keyword Engine ListsClickHouse/clickhouse-java | 1.6k | — | ~457 | Automated safety check: Pass | Apache-2.0 | |
| Testingar-io/ar-io-node | 127 | — | ~2.6k | Automated safety check: Notes | AGPL-3.0 | |
| Local Platform E2Ecomputesdk/benchmarks | 126 | — | ~3k | Automated safety check: Notes | MIT | |
| Manual Testhypequery/hypequery | 103 | — | ~618 | Automated safety check: Pass | Custom licence | |
| Clickhouse CI Integrationjeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~1.4k | Automated safety check: Pass | MIT |
ClickHouse/clickhouse-java
Update ALLOWEDKEYWORDALIASES in ClickHouseSqlUtils.java and ENGINETOTABLETYPE in DatabaseMetaDataImpl.java from failing test output.
ar-io/ar-io-node
Decision guide for testing in the ar-io-node repo — which test layer to use, how to run it, and which helpers to reach for.
computesdk/benchmarks
Stand up benchmarks-platform locally (Postgres + MinIO + ClickHouse in docker) and run a real @benchsdk/runner benchmark against it, with no cloud or provider credentials.
hypequery/hypequery
Execute one of the model-runnable E2E test specs in testing/ (cli, datasets, serve, mcp, react) against a real ClickHouse instance.
jeremylongshore/tons-of-skills-marketplace
Run ClickHouse integration tests in CI with GitHub Actions and Docker containers.
supabase/supabase
Write, review, and migrate Supabase logs queries against the ClickHouse-backed logs table (the logs.all.otel analytics endpoint).
ClickHouse/ClickHouse
Analyze ClickHouse Keeper stress-test results from play.clickhouse.com / keeperstresstests data warehouse.
ClickHouse/ClickHouse
Evaluate ClickHouse performance test results from existing CI/dashboard data or local perf.py runs.
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.
Works with
Categories
Analyze CI performance comparison reports for a ClickHouse PR. Perf Report is an agent skill from ClickHouse/ClickHouse. Analyze CI performance comparison reports for a ClickHouse PR.
Perf Report fits situations like: tasks that involve Data warehousing; tasks that involve Failing and flaky tests.
Run `npx skills add ClickHouse/ClickHouse --skill perf-report -a claude-code`. Or copy the skill folder (.claude/skills/perf-report in ClickHouse/ClickHouse) into .claude/skills/perf-report in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ClickHouse/ClickHouse --skill perf-report -a codex`. Or copy the skill folder (.claude/skills/perf-report in ClickHouse/ClickHouse) into .agents/skills/perf-report 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-report -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-report, .gemini/skills/perf-report, .github/skills/perf-report and .opencode/skills/perf-report in your project.
Going by SKILL.md and its folder, Perf Report needs the command-line tools its instructions call (curl, python3, clickhouse and node). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash, Read, Grep, Glob, WebFetch.
SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. 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. Review the folder before installing.
Perf Report 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 2.6k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Perf Report: Update Keyword Engine Lists (ClickHouse/clickhouse-java, 1.6k stars), Testing (ar-io/ar-io-node, 127 stars), Local Platform E2E (computesdk/benchmarks, 126 stars) and Manual Test (hypequery/hypequery, 103 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.