From mad-skills
Sync local repository with origin/main. Use before starting new work, after completing a PR, or when needing latest upstream changes. Safely stashes uncommitted changes, fetches and pulls origin/main, restores stash, and cleans up stale local branches (merged or with deleted remotes). Invoke when switching contexts or preparing for new feature work.
npx claudepluginhub slamb2k/mad-skills --plugin mad-skillsThis skill is limited to using the following tools:
When this skill is invoked, IMMEDIATELY output the banner below before doing anything else.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
When this skill is invoked, IMMEDIATELY output the banner below before doing anything else. Pick ONE tagline at random — vary your choice each time. CRITICAL: Reproduce the banner EXACTLY character-for-character. The first line of the art has 4 leading spaces — you MUST preserve them.
{tagline}
⠀ ██╗███████╗██╗ ██╗███╗ ██╗ ██████╗
██╔╝██╔════╝╚██╗ ██╔╝████╗ ██║██╔════╝
██╔╝ ███████╗ ╚████╔╝ ██╔██╗ ██║██║
██╔╝ ╚════██║ ╚██╔╝ ██║╚██╗██║██║
██╔╝ ███████║ ██║ ██║ ╚████║╚██████╗
╚═╝ ╚══════╝ ╚═╝ ╚═╝ ╚═══╝ ╚═════╝
Taglines:
After the banner, display parsed input:
┌─ Input ────────────────────────────────────────
│ {Field}: {value}
│ Flags: {parsed flags or "none"}
└────────────────────────────────────────────────
Pre-flight results:
── Pre-flight ───────────────────────────────────
✅ {dep} {version or "found"}
⚠️ {dep} not found → {fallback detail}
❌ {dep} missing → stopping
──────────────────────────────────────────────────
Stage/phase headers: ━━ {N} · {Name} ━━━━━━━━━━━━━━━━━━━━━━━━━
Status icons: ✅ done · ❌ failed · ⚠️ degraded · ⏳ working · ⏭️ skipped
Synchronize local repository with the remote default branch using a deterministic bash script — no LLM subagent needed since all steps are pure git commands.
Parse optional flags from the request:
--no-stash: Don't auto-stash uncommitted changes--no-cleanup: Don't delete stale local branches--no-rebase: Use merge instead of rebase when on a feature branchBefore starting, check all dependencies in this table:
| Dependency | Type | Check | Required | Resolution | Detail |
|---|---|---|---|---|---|
| git | cli | git --version | yes | stop | Install from https://git-scm.com |
For each row, in order:
Before launching the subagent, detect the remote and default branch:
REMOTE=$(git remote | head -1) # usually "origin"
DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/$REMOTE/HEAD 2>/dev/null | sed 's|.*/||')
Fallback chain if symbolic-ref fails:
git show-ref --verify refs/heads/main → use maingit show-ref --verify refs/heads/master → use masterPass {REMOTE} and {DEFAULT_BRANCH} into the subagent prompt.
Run the sync script directly — no LLM subagent needed since all steps are deterministic git commands:
# Resolve skill root (plugin install or direct install)
for SKILL_ROOT in \
"${CLAUDE_PLUGIN_ROOT:-}" \
"$HOME/.claude/plugins/marketplaces/slamb2k" \
"$(dirname "$(readlink -f "$0")")/.."
do
[ -f "$SKILL_ROOT/skills/sync/scripts/sync.sh" ] && break
done
bash "$SKILL_ROOT/skills/sync/scripts/sync.sh" \
"{REMOTE}" "{DEFAULT_BRANCH}" {FLAGS}
Parse the output between SYNC_REPORT_BEGIN and SYNC_REPORT_END markers.
Extract key=value pairs for the report fields: status, remote,
default_branch, main_updated_to, current_branch, stash, rebase,
branches_cleaned, errors.
Exit codes: 0=success, 1=fatal error, 2=partial success (conflict warnings).
Parse the subagent's SYNC_REPORT and present a clean summary:
┌─ Sync · Report ────────────────────────────────
│
│ ✅ Sync complete
│
│ 🌿 Main: {commit} — {message}
│ 🔀 Branch: {current_branch}
│ 📦 Stash: {restored|none|conflict}
│ 🧹 Cleaned: {branches or "none"}
│
└─────────────────────────────────────────────────
If errors occurred:
│ ❌ {error description}
│ {suggested resolution}