sync-branch — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited sync-branch (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Merge one branch into another, handling conflicts and preserving work in progress.
_Read ~/.claude/skills/sync-branch/preferences.md using the Read tool. If not found, no preferences are set._
_On startup, use Bash to detect: current git branch, git status, and remote URL (git remote get-url origin). Skip any that fail._
Check $ARGUMENTS:
~/.claude/skills/sync-branch/preferences.md, confirm, stopParse from $ARGUMENTS:
$0 = source branch, $1 = target branchSync Branch — Merge one branch into another
Usage:
/sync-branch Merge default source into current branch
/sync-branch <source> Merge source into current branch
/sync-branch <source> <target> Merge source into target
/sync-branch --no-push <source> Merge without pushing
/sync-branch --dry-run <source> Preview without executing
/sync-branch config Set defaults
/sync-branch reset Clear preferences
/sync-branch help This help
Examples:
/sync-branch main
/sync-branch main all-demos
/sync-branch --dry-run main feature/auth
/sync-branch --no-push develop
How it works:
1. Stashes uncommitted work (if any)
2. Updates source and target branches from remote
3. Merges source into target
4. Resolves conflicts (preserving both sides)
5. Pushes target (unless --no-push)
6. Restores original branch and stash
Current preferences:
(shown above under Preferences)Use `AskUserQuestion`:
Q1 — "Default source branch?" (main (default), develop, custom) Q2 — "Auto-push after merge?" (Yes (default), No) Q3 — "Conflict resolution style?" (preserve-both (default) — keep changes from both sides, ask-each — show each conflict and ask, prefer-source — favor source branch, prefer-target — favor target branch)
Save to ~/.claude/skills/sync-branch/preferences.md.
If no preferences file exists, show: "First time using /sync-branch? Run /sync-branch config to set defaults, or continue — I'll merge main into your current branch."
Then proceed.
$0 if provided, else saved default, else main$1 if provided, else current branchIf source == target, error and stop.
If --dry-run:
git fetch origin
git log {target}..origin/{source} --onelineShow what commits would be merged, then stop.
If working tree is dirty:
git stash --include-untrackedRecord that a stash was created.
Record which branch the user was on originally.
git checkout {source}
git pull origin {source}If pull fails → restore state, report error, stop.
git checkout {target}
git pull origin {target}
git merge {source} --no-editIf merge reports conflicts:
git diff --name-only --diff-filter=UAskUserQuestion, let them decidegit add each resolved filegit commit --no-editUnless --no-push or preference says no:
git push origin {target}git stash popSynced {source} → {target}
{source}: {short sha} {subject}
{target}: {short sha} {subject}
Conflicts: {count} ({file list} or "none")
Pushed: {yes/no}If user changes source branch, save preference. If user changes conflict style, save preference.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.