fix-sync
Fix the "CH Inc sync" job in a pull request by resolving conflicts in the corresponding clickhouse-private sync PR.
Install
mkdir -p .claude/skills/fix-sync && curl -L -o skill.zip "https://mcp.directory/api/skills/download/2950" && unzip -o skill.zip -d .claude/skills/fix-sync && rm skill.zipInstalls to .claude/skills/fix-sync
About this skill
Fix CH Inc Sync Skill
Fix the "CH Inc sync" CI job for a ClickHouse pull request by resolving merge conflicts in the corresponding clickhouse-private sync PR.
Arguments
$0(required): PR number or full GitHub URL of the public ClickHouse PR (e.g.,96005orhttps://github.com/ClickHouse/ClickHouse/pull/96005)
Overview
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>. If this sync PR has merge conflicts, the "CH Inc sync" check stays pending. This skill resolves those conflicts.
Process
1. Parse the PR number
- Extract the PR number from
$ARGUMENTS - If a full URL is provided (e.g.,
https://github.com/ClickHouse/ClickHouse/pull/96005), extract the number from the URL - If no argument is provided, use
AskUserQuestionto ask for the PR number
2. Find the sync PR
- Search for the corresponding sync PR in the private repository:
gh pr list --repo ClickHouse/clickhouse-private --head sync-upstream/pr/<PR_NUMBER> --json number,url,state,mergeable,mergeStateStatus,headRefName - If no sync PR is found, report this to the user and stop
- If the sync PR is not conflicting (mergeable is not
CONFLICTING), report that no action is needed and stop - Report the sync PR number and URL to the user
3. Locate the private repository
- Look for the
clickhouse-privaterepository in common locations relative to the current working directory:../ClickHouse_private../clickhouse-private- Check if the directory exists and contains a git repository with
ClickHouse/clickhouse-privateas a remote
- If not found, use
AskUserQuestionto ask the user for the path - Store the path for use in subsequent steps
4. Fetch and switch to the sync branch
In 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.
5. Merge master and resolve conflicts
cd <private_repo_path> && git merge origin/master
This will likely produce conflicts. Handle them:
-
List conflicted files:
cd <private_repo_path> && git diff --name-only --diff-filter=U -
For each conflicted file, use a Task agent with
subagent_type=general-purposeto resolve:- Read the conflicted file content
- Analyze the conflict markers (
<<<<<<<,=======,>>>>>>>) - Determine the correct resolution:
- For most sync conflicts, the upstream (public repo) changes should take precedence
- For files that exist only in the private repo, preserve them
- For CI/workflow files, be careful to preserve private-repo-specific configurations
- Apply the resolution using Edit tool
- Stage the resolved file:
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-edit
6. Update submodules (if needed)
cd <private_repo_path> && git submodule update --init --recursive
If submodule update fails, report the error but continue.
7. Build verification (optional)
Use AskUserQuestion to ask the user:
- "Do you want to build ClickHouse in the private repository to verify the merge?"
- Option 1: "Yes, build" - Run ninja in the private repo build directory
- Option 2: "No, skip build" - Skip building and proceed to push
If the user chooses to build, use the build skill or run ninja directly.
8. Push the resolved branch
cd <private_repo_path> && git push origin sync-upstream/pr/<PR_NUMBER>
9. Verify the sync PR
After pushing:
gh pr view <SYNC_PR_NUMBER> --repo ClickHouse/clickhouse-private --json mergeable,mergeStateStatus
Report the result:
- If
mergeableisMERGEABLE: "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.
Examples
/fix-sync 96005- Fix sync for PR #96005/fix-sync https://github.com/ClickHouse/ClickHouse/pull/96005- Fix sync using full URL
Notes
- The sync branch name follows the pattern:
sync-upstream/pr/<PR_NUMBER> - The private repository is typically located one directory level up from the public repository
- Most conflicts are straightforward and involve the upstream changes taking precedence
- Always fetch before switching branches to ensure you have the latest state
- Do not use rebase or amend - add new commits instead (per project conventions)
- After pushing, it may take a few minutes for the GitHub check to update
More by ClickHouse
View all skills by ClickHouse →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversExtend your developer tools with GitHub MCP Server for advanced automation, supporting GitHub Student and student packag
Easily enable Bitbucket and Jira integration with REST APIs for seamless repository management, pull requests, and works
GitHub Repos Manager integrates with GitHub's REST API to streamline repo management, issues, pull requests, file ops, s
Seamlessly manage pull request workflows with Bitbucket and Jira integration. Effortlessly integrate Bitbucket with Jira
Integrate with Gitee to manage repositories, track issues, and streamline code workflows easily using secure token authe
Unlock AI-ready web data with Firecrawl: scrape any website, handle dynamic content, and automate web scraping for resea
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.