Code Review
ClickHouse/clickhouse-java
Review changes in clickhouse-java for correctness, compatibility, API stability, and missing tests.
Fix the "CH Inc sync" job in a pull request. An agent skill from ClickHouse/ClickHouse.
$ npx skills add ClickHouse/ClickHouse --skill fix-sync -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ClickHouse/ClickHouse fix-sync --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/fix-sync .claude/skills/fix-sync && 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 "fix-sync" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/fix-sync into .claude/skills/fix-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-sync", 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/fix-syncType 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 fix-sync -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ClickHouse/ClickHouse fix-sync --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/fix-sync .agents/skills/fix-sync && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fix-sync" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/fix-sync into .agents/skills/fix-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-sync", 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 fix-sync -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ClickHouse/ClickHouse fix-sync --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/fix-sync .cursor/skills/fix-sync && 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 "fix-sync" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/fix-sync into .cursor/skills/fix-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-sync", 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/fix-sync--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 fix-sync -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ClickHouse/ClickHouse fix-sync --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/fix-sync .gemini/skills/fix-sync && 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 "fix-sync" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/fix-sync into .gemini/skills/fix-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-sync", 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 fix-syncInstalls 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 fix-sync -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/fix-sync .github/skills/fix-sync && 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 "fix-sync" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/fix-sync into .github/skills/fix-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-sync", 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 fix-sync -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 fix-sync --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/fix-sync .opencode/skills/fix-sync && 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 "fix-sync" agent skill from https://github.com/ClickHouse/ClickHouse/tree/master/.claude/skills/fix-sync into .opencode/skills/fix-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-sync", 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.
fix-syncFix the "CH Inc sync" job in a pull request. An agent skill from ClickHouse/ClickHouse.
Fix Sync is an agent skill from ClickHouse/ClickHouse. Fix the "CH Inc sync" job in a pull request. Diagnoses the failure as one of three types — conflicts found, build failed, or tests failed — and handles each accordingly.
Its SKILL.md is about 2.8k 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 Development, covering Data warehousing and Pull requests. It works with ClickHouse. The repository describes itself as: ClickHouse® is a real-time analytics database management system. The licence is Apache-2.0.
6 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:
TaskBash(gh:*)Bash(cd:*)Bash(git:*)Bash(ls:*)Bash(pwd:*)Bash(mktemp:*)ReadGrepGlob…and 1 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
ghgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh and git, 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.
Fix Sync loads about 2.8k tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 1,390 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 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.
The full file from ClickHouse/ClickHouse at commit cd023af, republished under its Apache-2.0 licence (© ClickHouse). 1,390 words, ~2,847 tokens.
.claude/skills/fix-sync/SKILL.md (or your agent's skills folder).Fix the "CH Inc sync" CI job for a ClickHouse pull request. The job runs the corresponding clickhouse-private sync PR through merge and private CI, so it can fail in three distinct ways. This skill first diagnoses which type of failure occurred, then applies the matching fix.
The "CH Inc sync" commit status on the public PR reports its failure as one of three descriptions (set by the private CI in clickhouse-private: ci/jobs/private_sync_pr.py for conflicts, ci/jobs/scripts/workflow_hooks/private_sync_complete_check.py for build/test failures):
conflicts found — the sync PR cannot be merged with master of clickhouse-private (mergeable == CONFLICTING). Resolve the merge conflicts and push.build failed — the sync PR merges cleanly, but a build job in the private CI fails. Usually the upstream change needs adaptation in private-only code that references changed symbols. Fix the build and push.tests failed — the sync PR merges and builds, but test jobs fail. The failure is either flaky/infra-related (rerun the failed jobs) or a genuine regression (investigate).The pending description testing means CI is still running — wait rather than act.
$0 (required): PR number or full GitHub URL of the public ClickHouse PR (e.g., 96005 or https://github.com/ClickHouse/ClickHouse/pull/96005)When a PR is opened in ClickHouse/ClickHouse, a sync PR is automatically created in ClickHouse/clickhouse-private on a branch named sync-upstream/pr/<PR_NUMBER>. The "CH Inc sync" check on the public PR reflects the state of that private sync PR: it stays pending/failing if the sync PR has conflicts, fails to build, or has failing tests.
$ARGUMENTShttps://github.com/ClickHouse/ClickHouse/pull/96005), extract the number from the URLAskUserQuestion to ask for the PR numbergh pr list --repo ClickHouse/clickhouse-private --head sync-upstream/pr/<PR_NUMBER> --json number,url,state,mergeable,mergeStateStatus,headRefName,headRefOidThis is the key step. Determine which of the three failure types applies before doing any work.
Read the "CH Inc sync" commit status description on the public PR — it directly states the failure type:
gh api repos/ClickHouse/ClickHouse/commits/<HEAD_SHA>/statuses --jq '.[] | select(.context == "CH Inc sync") | {state, description}'(Get <HEAD_SHA> from gh pr view <PR_NUMBER> --repo ClickHouse/ClickHouse --json headRefOid.)
Map the description to a handler:
conflicts found → Conflicts found → step 4A.build failed → Build failed → step 4B.tests failed → Tests failed → step 4C.testing (state pending) → CI is still running. Report this and stop — wait rather than act.completed (state success) → no action needed, stop.If the status description is missing or ambiguous, fall back to inspecting the sync PR directly:
mergeable is CONFLICTING (or mergeStateStatus is DIRTY) → Conflicts found → step 4A.gh pr checks <SYNC_PR_NUMBER> --repo ClickHouse/clickhouse-private. A failing job whose name starts with Build → Build failed (step 4B); only test jobs failing → Tests failed (step 4C).Report the diagnosed failure type to the user before proceeding.
clickhouse-private repository in common locations relative to the current working directory:../ClickHouse_private../clickhouse-privateClickHouse/clickhouse-private as a remoteAskUserQuestion to ask the user for the pathIn the private repository directory:
cd <private_repo_path> && git fetch origin && git fetch origin sync-upstream/pr/<PR_NUMBER>Then check out the sync branch:
cd <private_repo_path> && git checkout sync-upstream/pr/<PR_NUMBER>If the branch has local changes, ask the user before proceeding.
cd <private_repo_path> && git merge origin/masterThis will likely produce conflicts. Handle them:
List conflicted files:
cd <private_repo_path> && git diff --name-only --diff-filter=UFor each conflicted file, use a Task agent with subagent_type=general-purpose to resolve:
<<<<<<<, =======, >>>>>>>)git add <file>IMPORTANT: If conflicts are complex or ambiguous, show the conflicts to the user and ask how to resolve them using AskUserQuestion.
After resolving all conflicts, complete the merge:
cd <private_repo_path> && git commit --no-editcd <private_repo_path> && git submodule update --init --recursiveIf submodule update fails, report the error but continue.
Then go to step 5 (push and verify).
A clean merge that fails to build almost always means the upstream change renamed, moved, or changed the signature of something that private-only code depends on, or the merge needs a code adaptation that conflict resolution did not surface.
Fetch the build log to find the exact error. Identify the failed build run and download its log:
gh run list --repo ClickHouse/clickhouse-private --branch sync-upstream/pr/<PR_NUMBER> --json databaseId,name,conclusion,headShaUse the public CI log tool when a report URL is available (see .claude/tools/fetch_ci_report.js), or inspect the failed job log via gh run view --log-failed.
Locate the build error (compile error, linker error, missing symbol). Use a Task agent with subagent_type=general-purpose to analyze the log and return only the relevant error excerpt and the file/symbol involved.
Reproduce and fix in the private repo. Check out the sync branch (fetch + merge origin/master if not already merged), then fix the offending private code to match the upstream change. Prefer adapting the private code to the new upstream API rather than reverting the upstream change.
Optionally rebuild to verify (see step 5's build verification).
Then go to step 5 (push and verify).
Merge and build are fine, but tests fail. First decide whether the failure is flaky/infra or genuine.
Fetch the failing test details:
gh pr checks <SYNC_PR_NUMBER> --repo ClickHouse/clickhouse-private
gh run list --repo ClickHouse/clickhouse-private --branch sync-upstream/pr/<PR_NUMBER> --json databaseId,name,conclusionClassify as flaky/infra if the failures are infrastructure errors unrelated to the PR's changes, e.g. Cannot start clickhouse-server, Timeout, network/disk errors, or failing tests that touch areas the PR does not modify. (See the pr-89842-sync-rerun note: a PR touching only src/IO/* had Cannot start clickhouse-server / Timeout failures — clearly unrelated.)
gh run rerun <RUN_ID> --repo ClickHouse/clickhouse-private --failedOtherwise, treat as a genuine regression. Use a Task agent to fetch and summarize the failing test logs, then report the failing tests and the likely cause to the user. Do not push speculative fixes without confirmation — use AskUserQuestion to decide next steps.
This path normally does not push to the sync branch (unless a genuine fix is made), so skip step 5 unless a code change was committed.
Use AskUserQuestion to ask the user:
cd <private_repo_path> && git push origin sync-upstream/pr/<PR_NUMBER>After pushing (or rerunning):
gh pr view <SYNC_PR_NUMBER> --repo ClickHouse/clickhouse-private --json mergeable,mergeStateStatus
gh pr checks <SYNC_PR_NUMBER> --repo ClickHouse/clickhouse-privateReport the result per failure type:
mergeable is now MERGEABLE: "Sync PR is now mergeable. The CH Inc sync check should pass shortly." If still conflicting: "Sync PR still has conflicts. Additional investigation may be needed."Provide the sync PR URL for the user to check.
/fix-sync 96005 - Diagnose and fix sync for PR #96005/fix-sync https://github.com/ClickHouse/ClickHouse/pull/96005 - Fix sync using full URLMERGEABLE does nothing useful — for build/test failures the fix is different (see the pr-89842-sync-rerun note: rerun failed jobs rather than /fix-sync when no merge conflict exists).sync-upstream/pr/<PR_NUMBER>© 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/fix-sync of ClickHouse/ClickHouse.
Open the folder on GitHubat commit cd023af
Fix Sync 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 |
|---|---|---|---|---|---|---|
| Fix Sync this skillClickHouse/ClickHouse | 50k | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Code ReviewClickHouse/clickhouse-java | 1.6k | — | ~290 | Automated safety check: Pass | Apache-2.0 | |
| Adapter Alignmentevloghq/evlog | 1.9k | — | ~1.3k | Automated safety check: Pass | MIT | |
| Write Doc ExamplesClickHouse/clickhouse-java | 1.6k | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Databuddy Internaldatabuddy-analytics/Databuddy | 1.2k | — | ~11k | Automated safety check: Notes | AGPL-3.0 | |
| Git PR Flowwgzhao/Addax | 1.4k | — | ~216 | Automated safety check: Pass | Apache-2.0 |
ClickHouse/clickhouse-java
Review changes in clickhouse-java for correctness, compatibility, API stability, and missing tests.
evloghq/evlog
Twice-monthly check that evlog's drain adapters still send what each provider's own client sends.
ClickHouse/clickhouse-java
Write, rewrite, and format documentation code snippets into reusable, production-ready methods with necessary library imports and clean linting.
databuddy-analytics/Databuddy
Work inside the Databuddy monorepo for internal implementation, debugging, review, and refactoring.
wgzhao/Addax
Standard branch, commit, and pull-request workflow for this repo.
ClickHouse/pg_stat_ch
Review C++ code against Google C++ Style Guide. An agent skill from ClickHouse/pg_stat_ch.
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
Fix the "CH Inc sync" job in a pull request. An agent skill from ClickHouse/ClickHouse. Fix Sync is an agent skill from ClickHouse/ClickHouse. Fix the "CH Inc sync" job in a pull request.
Fix Sync fits situations like: tasks that involve Data warehousing; tasks that involve Pull requests.
Run `npx skills add ClickHouse/ClickHouse --skill fix-sync -a claude-code`. Or copy the skill folder (.claude/skills/fix-sync in ClickHouse/ClickHouse) into .claude/skills/fix-sync in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ClickHouse/ClickHouse --skill fix-sync -a codex`. Or copy the skill folder (.claude/skills/fix-sync in ClickHouse/ClickHouse) into .agents/skills/fix-sync 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 fix-sync -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fix-sync, .gemini/skills/fix-sync, .github/skills/fix-sync and .opencode/skills/fix-sync in your project.
Going by SKILL.md and its folder, Fix Sync needs the command-line tools its instructions call (gh and git). Its frontmatter pre-approves these tools: Task, Bash(gh:*), Bash(cd:*), Bash(git:*), Bash(ls:*), Bash(pwd:*), Bash(mktemp:*), Read, Grep, Glob, AskUserQuestion.
SKILL.md contains no URLs. Its commands use gh and git, 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 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.
Fix Sync 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.8k 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 Fix Sync: Code Review (ClickHouse/clickhouse-java, 1.6k stars), Adapter Alignment (evloghq/evlog, 1.9k stars), Write Doc Examples (ClickHouse/clickhouse-java, 1.6k stars) and Databuddy Internal (databuddy-analytics/Databuddy, 1.2k 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.