Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Cherry-pick commits from chatbox-pro repo to the open chatbox repo, handling mobile-only files, package name differences, and other repo-specific exclusions.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 11% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 83% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -33% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 42% | 0% |
Cherry-pick commits from the chatbox-pro repo (pro remote) to the open chatbox repo, filtering out mobile-only changes and adjusting for repo differences.
/cherry-pick-pro [from_commit] [to_commit]from_commit: (optional) A pro/main commit hash to start from (exclusive). Must be a commit on pro/main, not an open-repo commit — see step 2. Defaults to auto-detecting the last synced pro commit.to_commit: (optional) The commit hash to end at (inclusive). Defaults to pro/main HEAD.bashgit fetch pro git fetch origin
⚠️ Tag pollution: git fetch pro also fetches pro's tags (e.g. vX.Y.Z created on pro's release branch). These local tags point at pro commits, not open repo commits. Never push them as-is — see step 8.
⚠️ The range bound must be a pro/main commit. The open repo and pro/main share no history (cherry-picks create new SHAs), so an open-repo commit hash as the lower bound makes A..pro/main return all of pro's history, not the increment.
Find the last synced pro commit by reading the cherry picked from pro commit <hash> footer that step 5 writes into each open-repo commit, then list pro commits after it:
bash# last synced pro commit (the lower bound) last=$(git log --grep="cherry picked from pro commit" -1 --pretty=%B HEAD \ | grep -oE 'pro commit [0-9a-f]+' | awk '{print $3}') git log "$last"..pro/main --oneline --reverse # commits to pick
If no footer is found (first-ever sync), pass from_commit explicitly.
For each commit, check the files it touches:
bashgit diff-tree --no-commit-id --name-only -r <commit>
android/ - mobile-only, not in open repoios/ - mobile-only, not in open repocapacitor.config.ts - mobile config.github/ - open repo has no CI; workflow/config differs (see step 8)CLAUDE.md, AGENTS.md - pro-specific AI config.cursorrules - pro-specific.claude/ - pro-specific skills/config (including this skill itself), never sync to open repoxyz.chatboxapp.appxyz.chatboxapp.cepackage.json or release/app/package.json, always keep the open repo name (xyz.chatboxapp.ce)@playwright/test - pro testing onlyplaywright - pro testing only@ruguoapp/jk-analytics - pro analytics onlypnpm-lock.yaml:pnpm install --no-frozen-lockfile at the end to regenerate.For each commit:
git cherry-pick <hash> directly first--no-commit and resolve:git rmce)pnpm-lock.yaml(cherry picked from pro commit <hash>) noteAfter all cherry-picks:
bashpnpm install --no-frozen-lockfile # regenerate lockfile git add pnpm-lock.yaml git commit -m "chore: regenerate pnpm-lock.yaml for open repo"
bashgit log --oneline <start>..HEAD # review all new commits pnpm install # ensure deps resolve
The open repo has no CI workflows — releases are manual:
origin/mainbash git tag -d vX.Y.Z # delete pro's tag fetched in step 1 git tag vX.Y.Z <open-repo-head> # re-create on open repo commit git push origin vX.Y.Z
bash gh release view vX.Y.(Z-1) --json body --jq '.body' # get template gh release create vX.Y.Z --title "vX.Y.Z" --latest --notes "..."
Version bump convention: only release/app/package.json gets the new version; root package.json stays 0.0.1 in the open repo.
/cherry-pick-proThis will auto-detect the last release on the current branch and cherry-pick all newer commits from pro/main.
Other measured skills in the registry, with their headline benchmark lift.