sync-mainlisted
Install: claude install-skill JacobPEvans/claude-code-plugins
# Sync Main
Update the local `main` branch from remote and merge it into the current working branch,
or all open PR branches when using the `all` parameter.
## Scope Parameter
| Usage | Scope |
| ----- | ----- |
| `/sync-main` | Current branch only |
| `/sync-main all` | All open PR branches |
**CURRENT REPOSITORY ONLY** - This command never crosses into other repositories.
## Prerequisites
- You must be in a feature branch worktree (not on main itself)
- The current branch should have no uncommitted changes
## Single Branch Mode (Default)
1. **Verify state**: `git branch --show-current`, `git status --porcelain`
- STOP if on main or uncommitted changes
2. **Sync main**: `git fetch --all --prune --force && git pull` (in `main/`)
3. **Check for updates**: `git fetch origin --force main`
4. **Report**: Show commits behind with `git log --oneline HEAD..origin/main` (informational only)
5. **Merge**: `git merge origin/main --no-edit`
- If already up-to-date: skip to step 7 and report
- If merge succeeds cleanly: continue to step 6
- If conflicts occur: **STOP, do not push**. Report conflict status and follow the **Conflict Resolution** section below
6. **Push (only if merge succeeded cleanly)**: `git push origin $(git branch --show-current)`
7. **Report**: branch, main SHA, merge status
## All Branches Mode (Orchestrator)
Report sync status for all open PR branches.
### Steps
1. **Get repo**: `gh repo view --json nameWithOwner`
2. **Update main**: CRITICAL