MCPInstall

sc-push

Multi-remote git push with selective content filtering. Push to multiple remotes with per-remote path exclusions, branch mapping, and force-push controls.

Installs
69
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/tony363/superclaude --skill sc-push
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads sc-push automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Multi-Remote Push Skill

Push changes to multiple git remotes with per-remote configuration. Supports selective content filtering (exclude paths per remote), branch mapping, and force-push controls.

Quick Start

# Push current branch to all remotes
/sc:push

# Push specific branch
/sc:push main

# Push with path exclusions for a remote
/sc:push --exclude efs:prompts/,secrets/

# Push to specific remotes only
/sc:push --remotes origin,staging

# Dry run to preview actions
/sc:push --dry-run

Behavioral Flow

  1. Parse - Extract branch, remote list, exclusions, flags
  2. Validate - Check git state, uncommitted changes, remote existence
  3. Plan - Build per-remote push plan with exclusions
  4. Confirm - Show plan and get user confirmation for force pushes
  5. Execute - Push to each remote sequentially
  6. Report - Summarize push results per remote

Flags

FlagTypeDefaultDescription
--remotesstringallComma-separated remotes to push to
--excludestring-Per-remote exclusions: remote:path1,path2
--dry-runboolfalsePreview push plan without executing
--forceboolfalseForce push to remotes with exclusions
--no-verifyboolfalseSkip pre-push hooks

Phase 1: Parse Arguments

  • Branch: First positional arg, or current branch via git rev-parse --abbrev-ref HEAD
  • Remotes: From --remotes flag, or all configured remotes via git remote
  • Exclusions: Parse --exclude remote:path1,path2;remote2:path3 format

Phase 2: Validate Git State

# Verify git repository
git rev-parse --is-inside-work-tree

# Get current branch
git branch --show-current

# Check for uncommitted changes
git status --porcelain

If uncommitted changes exist:

  • Warn the user
  • Ask if they want to commit first or push existing commits only

Validate each target remote exists:

git remote -v

Phase 3: Build Push Plan

For each remote, determine push strategy:

Simple Push (no exclusions)

git push <remote> <branch>

Filtered Push (with exclusions)

When paths must be excluded for a specific remote:

  1. Stash uncommitted changes if present
  2. Create temporary branch: git checkout -b tmp-push-<remote>-$$ <branch>
  3. Remove excluded paths from index: git rm -rf --cached <paths> (ignore errors if paths don't exist)
  4. Commit removal: git commit -m "tmp: remove excluded paths for <remote> push" --allow-empty
  5. Force push temp branch: git push <remote> tmp-push-<remote>-$$:<branch> --force
  6. Return to original branch: git checkout <branch>
  7. Delete temp branch: git branch -D tmp-push-<remote>-$$
  8. Restore stash if applicable

Present plan before executing:

Push Plan:
  Branch: <branch>

  Remote: origin
    Strategy: direct push
    Command: git push origin <branch>

  Remote: efs
    Strategy: filtered push (excluding: prompts/, secrets/)
    Steps: temp branch -> remove paths -> force push -> cleanup

Phase 4: Confirm

For any remote requiring force push:

  • Always confirm with user before executing
  • Show exactly what will be force-pushed and why
  • Never force push to main/master without explicit user confirmation

Phase 5: Execute Push

Execute push plan sequentially per remote:

  1. Push to each remote in order
  2. Report success/failure for each
  3. On failure: log error, continue with remaining remotes
  4. Clean up any temporary branches

Phase 6: Report Results

## Push Summary

| Remote | URL | Strategy | Status |
|--------|-----|----------|--------|
| origin | github.com/user/repo | direct | Success |
| efs | github.com/org/repo | filtered | Success |

**Branch**: <branch>
**Excluded paths**: efs: prompts/, secrets/

Error Handling

ScenarioAction
Not a git repoExit with error
Remote not foundError with available remotes
Uncommitted changesWarn, ask to commit or proceed
Push rejected (non-fast-forward)Suggest pull first, never auto-force
Force push to main/masterRequire explicit confirmation
Temp branch cleanup failsWarn user, provide cleanup command
Network failureReport which remotes succeeded/failed

Guardrails

  • Never force push to main/master without explicit user consent
  • Always show push plan before executing
  • Clean up temp branches even on failure
  • Restore stash even on failure
  • Dry run by default for filtered pushes on first use
  • Temporary commits never appear in the source branch history

Tool Coordination

  • Bash - All git operations
  • Read - Inspect .git/config for remote configuration

FAQ

What does the sc-push skill do?

Multi-remote git push with selective content filtering. Push to multiple remotes with per-remote path exclusions, branch mapping, and force-push controls.

How do I install sc-push?

Run npx skills add https://github.com/tony363/superclaude --skill sc-push in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/sc-push/ (personal) or .claude/skills/sc-push/ (project).

Which AI agents can use sc-push?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is sc-push safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains sc-push?

It is published by tony363 in tony363/superclaude. It has 69 recorded installs.

More from tony363/superclaude

View all →

agent-performance-engineer

tony363/superclaude

Expert performance engineer specializing in system optimization, bottleneck identification, and scalability engineering. Masters performance testing, profiling, and tuning across applications, databases, and infrastructure with focus on achieving optimal response times and resource efficiency.

agent-security-engineer

tony363/superclaude

Expert infrastructure security engineer specializing in DevSecOps, cloud security, and compliance frameworks. Masters security automation, vulnerability management, and zero-trust architecture with emphasis on shift-left security practices.

Security392 installs

sc-estimate

tony363/superclaude

Provide development estimates for tasks, features, or projects with intelligent analysis. Use when planning timelines, assessing complexity, or scoping resources.

agent-fullstack-developer

tony363/superclaude

End-to-end feature owner with expertise across the entire stack. Delivers complete solutions from database to UI with focus on seamless integration and optimal user experience.

Frontend & Design154 installs

sc-design

tony363/superclaude

Design system architecture, APIs, and component interfaces with comprehensive specifications. Use when planning architecture, designing APIs, creating component interfaces, or modeling databases.

Frontend & Design113 installs

agent-technical-writer

tony363/superclaude

Open the skill to read its SKILL.md instructions.

Docs & Writing108 installs

Popular code quality & workflow skills

View category →

grill-me

mattpocock/skills

A relentless interview to sharpen a plan or design.

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

handoff

mattpocock/skills

Compact the current conversation into a handoff document for another agent to pick up.

domain-modeling

mattpocock/skills

Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.

codebase-design

mattpocock/skills

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

diagnosing-bugs

mattpocock/skills

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.