
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- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads sc-push automatically when relevant.
- 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
- Parse - Extract branch, remote list, exclusions, flags
- Validate - Check git state, uncommitted changes, remote existence
- Plan - Build per-remote push plan with exclusions
- Confirm - Show plan and get user confirmation for force pushes
- Execute - Push to each remote sequentially
- Report - Summarize push results per remote
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--remotes | string | all | Comma-separated remotes to push to |
--exclude | string | - | Per-remote exclusions: remote:path1,path2 |
--dry-run | bool | false | Preview push plan without executing |
--force | bool | false | Force push to remotes with exclusions |
--no-verify | bool | false | Skip pre-push hooks |
Phase 1: Parse Arguments
- Branch: First positional arg, or current branch via
git rev-parse --abbrev-ref HEAD - Remotes: From
--remotesflag, or all configured remotes viagit remote - Exclusions: Parse
--exclude remote:path1,path2;remote2:path3format
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:
- Stash uncommitted changes if present
- Create temporary branch:
git checkout -b tmp-push-<remote>-$$ <branch> - Remove excluded paths from index:
git rm -rf --cached <paths>(ignore errors if paths don't exist) - Commit removal:
git commit -m "tmp: remove excluded paths for <remote> push" --allow-empty - Force push temp branch:
git push <remote> tmp-push-<remote>-$$:<branch> --force - Return to original branch:
git checkout <branch> - Delete temp branch:
git branch -D tmp-push-<remote>-$$ - 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:
- Push to each remote in order
- Report success/failure for each
- On failure: log error, continue with remaining remotes
- 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
| Scenario | Action |
|---|---|
| Not a git repo | Exit with error |
| Remote not found | Error with available remotes |
| Uncommitted changes | Warn, ask to commit or proceed |
| Push rejected (non-fast-forward) | Suggest pull first, never auto-force |
| Force push to main/master | Require explicit confirmation |
| Temp branch cleanup fails | Warn user, provide cleanup command |
| Network failure | Report 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/configfor 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
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.
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.
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.
agent-technical-writer
tony363/superclaude
Open the skill to read its SKILL.md instructions.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
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.