본문으로 건너뛰기
cccskills
무료GitHub에 공개

cherry-pick-pro

Transfer selected Chatbox Pro commits into the open source edition using cherry-picking, which copies individual changes. The skill handles excluded files, package names, dependency conflicts, lockfile regeneration, and version tags for manual releases.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Cherry-pick commits from chatbox-pro repo to the open chatbox repo, handling mobile-only files, package name differences, and other repo-specific exclusions.

연동 도구GitHubPlaywright
설치 방법 보기

이럴 때 유용합니다

  • Sync recent Pro changes into the open source edition
  • Transfer a specified range of Pro commits
  • Resolve conflicts caused by edition differences
  • Prepare version tags and a manual GitHub Release

포함된 파일(1)

  • SKILL.md4.8 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Cherry Pick Pro

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.

Usage

/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.

Workflow

1. Sync remotes first

git 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.

2. Identify commits to cherry-pick

⚠️ 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:

# 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.

3. Analyze each commit

For each commit, check the files it touches:

git diff-tree --no-commit-id --name-only -r <commit>

4. Cherry-pick rules

Files/directories to SKIP (delete if conflict):

  • android/ - mobile-only, not in open repo
  • ios/ - mobile-only, not in open repo
  • capacitor.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 repo

Package name differences:

  • Pro uses: xyz.chatboxapp.app
  • Open uses: xyz.chatboxapp.ce
  • When resolving conflicts in package.json or release/app/package.json, always keep the open repo name (xyz.chatboxapp.ce)

Pro-only dependencies to remove if added:

  • @playwright/test - pro testing only
  • playwright - pro testing only
  • @ruguoapp/jk-analytics - pro analytics only

pnpm-lock.yaml:

  • Will almost always conflict. Accept either side, then run pnpm install --no-frozen-lockfile at the end to regenerate.

5. Cherry-pick process

For each commit:

  1. Try git cherry-pick <hash> directly first
  2. If conflicts occur, use --no-commit and resolve:
    • Remove mobile-only files with git rm
    • Fix package name conflicts (keep ce)
    • Remove pro-only dependencies
    • Accept either side for pnpm-lock.yaml
  3. Commit with original message + (cherry picked from pro commit <hash>) note

6. Finalize

After all cherry-picks:

pnpm install --no-frozen-lockfile  # regenerate lockfile
git add pnpm-lock.yaml
git commit -m "chore: regenerate pnpm-lock.yaml for open repo"

7. Verify

git log --oneline <start>..HEAD  # review all new commits
pnpm install  # ensure deps resolve

8. Release (if syncing a version release)

The open repo has no CI workflows — releases are manual:

  1. Push the sync branch to origin/main
  2. Re-create the version tag on the open repo's commit. The local tag fetched from pro points at a pro commit — pushing it would leak pro's commit history into the open repo:
    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
    
  3. Create the GitHub Release manually (no binary assets; notes = changelog + install links, copy format from the previous release):
    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.

Example

/cherry-pick-pro

This will auto-detect the last release on the current branch and cherry-pick all newer commits from pro/main.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Update Chatbox Pro interface translations by reviewing code changes and the surrounding screen context. The skill identifies affected translation keys, follows a shared glossary, and edits language JSON files while preserving placeholders and formatting tags.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Translate interface text added in uncommitted changes
  • Update translations for a specific commit range
  • Refresh translations after English text changes
chatboxai/chatbox4.2만2026년 9월 24일 업데이트

Evaluate how Chatbox answers questions about large attachments using synthetic and real documents. Check whether the model retrieves file content when needed, skips retrieval for unrelated requests, and investigate failures through the actual application flow.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Verify retrieval for questions about large attachments
  • Test file-related questions without explicit search requests
  • Check that unrelated requests skip file retrieval
chatboxai/chatbox4.2만2026년 9월 24일 업데이트

chatboxai의 스킬 모두 보기

이 스킬의 문제 신고