microsoft/sync
Sync the current session branch with its upstream branch, or publish the current session branch to a remote. Use when the user asks to sync a branch, pull latest changes, rebase onto upstream, push current branch, publish branch, or set upstream.
npx skills add https://github.com/microsoft/vscode --skill sync
<!-- Customize this skill and select save to override its behavior. Delete that copy to restore the built-in behavior. -->
Sync the current session branch with its upstream branch, or publish the current session branch to a remote. Use when the user asks to sync a branch, pull latest changes, rebase onto upstream, push current branch, publish branch, or set upstream.
--force, --force-with-lease) without explicit user approval.--no-verify)./commit skill to commit them before continuing.3.1. Fetch the upstream remote first so tracking refs are up to date.
git fetch <upstream-remote>
3.2. Check ahead/behind counts. If the branch is already in sync (0 ahead, 0 behind), stop and report that no sync is needed.
git rev-list --left-right --count HEAD...@{u}
3.3. If behind, rebase onto the upstream tracking branch.
git rebase @{u}
3.4. If there are merge conflicts, resolve them by preserving the intent of both sides. Stage the resolved files and continue the rebase.
git add <resolved-files>
git rebase --continue
If conflict resolution is unclear, ask the user how to proceed. If the user wants to stop the rebase, abort it:
git rebase --abort
3.5. If the branch has local commits (ahead > 0), push them to the remote after a successful rebase.
git push
If the push is rejected because the rebase rewrote history, explain the situation to the user and ask for approval before force-pushing.
4.1. Determine the remote to publish to.
4.2. Publish the current branch and set upstream in one step.
git push -u <remote> HEAD
After the workflow completes, validate the result with explicit checks:
git status --porcelain
git rev-list --left-right --count HEAD...@{u}
git rev-parse --abbrev-ref --symbolic-full-name @{u}
Take microsoft/sync from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.