push
Skill38 starsChanged 2 months agoMITView on GitHub
push
- Commits and pushes
50 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- HawkingHuang/claude-skillstheir own version, first seen Nov 8, 2026
- tyrantpiper/travel-pwatheir own version, first seen Nov 8, 2026
- quochuydev/kittheir own version, first seen Nov 8, 2026
- laz3rjenkins/atomic-commitstheir own version, first seen Nov 8, 2026
- AsiaOstrich/EngramGraphtheir own version, first seen Nov 8, 2026
- toy-crane/claude-code-playbook-templatetheir own version, first seen Nov 8, 2026
Used with
Projects with it also use get-pr-reviews, push-everything and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
saffron-healthSkillget-pr-reviews
Get nicely formatted output of the last review comments on a PR. Used internally by other skills.
Also in 3 projects that use this
saffron-healthSkillpush-everything
Stage ALL changes in the repository (not just session changes), commit, and push. Use when you need to commit all pending changes.
Also in 3 projects that use this
NVIDIASkillgenerate-spec
Produce a feature specification covering API changes, backward compatibility, cross-language impact, performance, and a file-level change plan. Use when designing a new feature, planning a significant change, or the user asks to spec something out.
Also in 3 projects that use this
ddehartSkillknowledge-graph
Search, capture, and query the claude-code-plugins knowledge graph. Use when asked to "capture this", "add this to the graph", "what do we know about X", "update the graph", "check the graph for X", or when a decision, pattern, or non-obvious fact surfaces mid-session that's worth recording. Also: "log an observation", "what patterns do we have about skill triggering", "any decisions on the knowledge-commons plugin", "what do we know about the commit-creator agent".
Also in 3 projects that use this
anombyte93Skilldiscover
Phase 1 of the prd-taskmaster pipeline: brainstorm-driven discovery. Delegates to superpowers:brainstorming in Interactive Mode (one adaptive question at a time), or self-brainstorms in Autonomous Mode when no user is present. Intercepts before the brainstorming chain hands off to writing-plans — this skill owns the exit. Extracts constraints, calibrates scale (Solo / Team / Enterprise), and advances the pipeline to GENERATE.
Also in 4 projects that use this
MicrosoftSkillmerge
Merge changes from the topic branch to the merge base branch. Use when the user wants to merge their session's work back to the base branch.
Also in 3 projects that use this
- +2 more from saffron-health
Other versions50 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- 7zrv/claude-code-monitor★ 113% same
Wrote their own version · 49
- openai/symphony★ 27ksame name
- kdlbs/kandev★ 1.1ksame name
- cashew-labs/libretto★ 898same name
- saffron-health/libretto★ 883same name
- egregore-labs/egregore★ 293same name
- Mooshieblob1/MooshieUI★ 222same name
- team-mirai-volunteer/mirai-gikai★ 214same name
- sterlingcrispin/claude_slash_commands★ 200same name
- Nucleify/Nucleify★ 171same name
- kv0906/pm-kit★ 138same name
39 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository101 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .claude/CLAUDE.mdCLAUDE.md
- .cursor/rules/autonomous_execution.mdcCursor rule
- .cursor/rules/cursor_rules_editing.mdcCursor rule
- .cursor/rules/cursor_rules_sync.mdcCursor rule
- .cursor/rules/cursor_rules_sync_requirement.mdcCursor rule
- site_pages/llms.txtllms.txt
- advisorySkill
- analyzeSkill
- auditSkill
- commitSkill
- create-planSkill
- create_planSkill
- create-prototypeSkill
- create_prototypeSkill
- create_prSkill
- create-releaseSkill
- create_releaseSkill
- create-ruleSkill
- create_ruleSkill
- debugSkill
- draft-illustrationSkill
- draft_illustrationSkill
- endSkill
- evaluate_positioningSkill
- final-reviewSkill
- final_reviewSkill
- fix-feature-bugSkill
- fix_feature_bugSkill
- learnSkill
- manage-error-debuggingSkill
- manage_error_debuggingSkill
- neversight_learn_skills.dev_obviously_awesomeSkill
- process_issuesSkill
- process_prsSkill
- publish-planSkill
- publish_planSkill
- publishSkill
- pullSkill
- recover_sqlite_databaseSkill
- releaseSkill
- report-errorSkill
- report_errorSkill
- reportSkill
- reviewSkill
- run-feature-workflowSkill
- run_feature_workflowSkill
- setup-commandsSkill
- setup_commandsSkill
- setup-cursor-copiesSkill
- setup_cursor_copiesSkill
- store-neotomaSkill
- store_neotomaSkill
- sync-env-from-1passwordSkill
- sync_env_from_1passwordSkill
- analyzeSkill
- auditSkill
- commitSkill
- create-planSkill
- create-prototypeSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 13 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 43 edited versions we read keep these.
13
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 20
SUBMODULE MODE: If a submodule name is provided (e.g., /push foundation), scope operations to that submodule only, not the main repository.
- Distinctive: line 24
If submodule name provided:
- Very specific: line 25
Check if submodule exists: git submodule status <submodule-name>
- Distinctive: line 27
Run push workflow in submodule context
- Distinctive: line 30
If no submodule name provided, proceed with main repository push workflow below.
- Distinctive: line 34
Check if origin remote exists
- Distinctive: line 36
Check for unpushed commits
- Distinctive: line 59
Update scope context (all subsequent operations in submodule)
- Distinctive: line 61
If no submodule name provided, proceed with main repository context.
- Distinctive: line 219
If submodule name was provided:
- Distinctive: line 243
If no remote exists: Exit with error and instructions to add remote
- Distinctive: line 244
If origin doesn't exist: Exit with error showing available remotes
- Distinctive: line 245
If detached HEAD: Exit with error and instructions
- Distinctive: line 246
If push fails: Exit with error and troubleshooting tips
- Distinctive: line 247
If local is behind remote: Warn but allow push attempt (may fail)
“Common” is measured: kept by at least 6 in 10 of the 43 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
<!-- Source: foundation/.cursor/skills/push/SKILL.md -->name: push
description: Push current branch to origin; supports /push <submodule>.
triggers:
- push
- /push
push
Push current branch to origin remote, checking if remote exists first.
SUBMODULE MODE: If a submodule name is provided (e.g., /push foundation), scope operations to that submodule only, not the main repository.
Configuration is read from foundation-config.yaml.
If submodule name provided:
- Check if submodule exists:
git submodule status <submodule-name> - Change to submodule directory:
cd <submodule-name> - Run push workflow in submodule context
- Exit after submodule push (do NOT push main repository)
If no submodule name provided, proceed with main repository push workflow below.
Workflow Overview
- Check if origin remote exists
- Verify current branch
- Check for unpushed commits
- Push to origin
- Handle errors appropriately
Tasks
Step 1: Determine Scope
If submodule name provided:
- Verify submodule exists:
if ! git submodule status <submodule-name> >/dev/null 2>&1; then echo "❌ Submodule not found: <submodule-name>" exit 1 fi - Save parent directory and change to submodule directory:
ORIGINAL_DIR=$(pwd) # Save parent directory before cd cd <submodule-name> || exit 1 - Update scope context (all subsequent operations in submodule)
If no submodule name provided, proceed with main repository context.
Step 2: Check if Origin Remote Exists
echo "🔍 Checking for origin remote..."
# Check if any remotes exist
if ! git remote | grep -q .; then
echo "❌ Error: No git remotes configured"
echo ""
echo "To add a remote, run:"
echo " git remote add origin <remote-url>"
echo " git push -u origin <branch-name>"
exit 1
fi
# Check specifically for origin remote
if ! git remote | grep -q "^origin$"; then
echo "❌ Error: 'origin' remote not found"
echo ""
echo "Available remotes:"
git remote -v
echo ""
echo "To add origin remote, run:"
echo " git remote add origin <remote-url>"
echo " git push -u origin <branch-name>"
exit 1
fi
# Display origin URL
ORIGIN_URL=$(git remote get-url origin 2>/dev/null || echo "unknown")
echo "✅ Origin remote found: $ORIGIN_URL"Step 3: Check Current Branch
echo "📍 Checking current branch..."
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [ -z "$CURRENT_BRANCH" ]; then
echo "❌ Error: Detached HEAD state - cannot push"
echo "Current commit: $(git rev-parse HEAD)"
echo ""
echo "To push, checkout a branch first:"
echo " git checkout -b <branch-name>"
exit 1
fi
echo "✅ Current branch: $CURRENT_BRANCH"Step 4: Check for Unpushed Commits
echo "🔍 Checking for unpushed commits..."
# Fetch latest from origin to compare
git fetch origin --quiet 2>/dev/null || {
echo "⚠️ Warning: Could not fetch from origin (remote may not exist yet)"
echo "Will attempt to push anyway..."
}
# Check if branch has upstream set
UPSTREAM=$(git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null || echo "")
if [ -z "$UPSTREAM" ]; then
echo "ℹ️ No upstream branch set for $CURRENT_BRANCH"
echo "Will push and set upstream on first push"
HAS_UPSTREAM=false
else
echo "✅ Upstream branch: $UPSTREAM"
HAS_UPSTREAM=true
# Check if local is ahead of remote
LOCAL=$(git rev-parse @)
REMOTE=$(git rev-parse @{u} 2>/dev/null || echo "")
BASE=$(git merge-base @ @{u} 2>/dev/null || echo "")
if [ -n "$REMOTE" ] && [ -n "$BASE" ]; then
if [ "$LOCAL" = "$REMOTE" ]; then
echo "✅ Branch is up to date with $UPSTREAM"
echo "No commits to push"
exit 0
elif [ "$LOCAL" = "$BASE" ]; then
echo "⚠️ Local branch is behind $UPSTREAM"
echo "Consider pulling first with: git pull origin $CURRENT_BRANCH"
elif [ "$REMOTE" = "$BASE" ]; then
COMMITS_AHEAD=$(git rev-list --count @{u}..@)
echo "⬆️ Local branch is $COMMITS_AHEAD commit(s) ahead of $UPSTREAM"
else
echo "🔀 Local and remote branches have diverged"
echo "Consider pulling and merging first"
fi
fi
fiStep 5: Push to Origin
echo "📤 Pushing to origin..."
if [ "$HAS_UPSTREAM" = "false" ]; then
# First push - set upstream
echo "Setting upstream to origin/$CURRENT_BRANCH..."
git push -u origin "$CURRENT_BRANCH" || {
PUSH_EXIT_CODE=$?
echo "❌ Error: Push failed (exit code: $PUSH_EXIT_CODE)"
echo ""
echo "Common issues:"
echo " - Remote repository doesn't exist or is inaccessible"
echo " - Authentication required (check credentials)"
echo " - Branch name conflicts with remote branch"
echo ""
echo "To troubleshoot:"
echo " git remote -v # Check remote URL"
echo " git status # Check repository state"
exit 1
}
else
# Subsequent push
git push origin "$CURRENT_BRANCH" || {
PUSH_EXIT_CODE=$?
echo "❌ Error: Push failed (exit code: $PUSH_EXIT_CODE)"
echo ""
echo "Common issues:"
echo " - Remote has commits you don't have (pull first)"
echo " - Authentication required (check credentials)"
echo " - Permission denied (check repository access)"
echo ""
echo "To troubleshoot:"
echo " git pull origin $CURRENT_BRANCH # Pull latest first"
echo " git status # Check repository state"
exit 1
}
fi
echo "✅ Successfully pushed to origin/$CURRENT_BRANCH"Step 6: Summary
echo ""
echo "✅ Push workflow completed"
echo ""
echo "Summary:"
echo " - Branch: $CURRENT_BRANCH"
echo " - Remote: origin"
echo " - Upstream: ${UPSTREAM:-origin/$CURRENT_BRANCH (newly set)}"
echo " - Latest commit: $(git rev-parse --short HEAD)"Step 7: Return to Original Directory (if in submodule mode)
If submodule name was provided:
if [ -n "$ORIGINAL_DIR" ] && [ "$(pwd)" != "$ORIGINAL_DIR" ]; then
cd "$ORIGINAL_DIR" || exit 1
echo "✅ Returned to main repository directory"
fiConfiguration
Optional configuration in foundation-config.yaml:
development:
push:
check_remote: true # Check if origin exists before pushing
set_upstream: true # Set upstream on first push
force_push: false # Allow force push (use with caution)
push_tags: false # Also push tagsError Handling
- If no remote exists: Exit with error and instructions to add remote
- If origin doesn't exist: Exit with error showing available remotes
- If detached HEAD: Exit with error and instructions
- If push fails: Exit with error and troubleshooting tips
- If local is behind remote: Warn but allow push attempt (may fail)
Inputs
submodule_name(optional string): Submodule name to scope operations to (e.g., "foundation")
Examples
# Push main repository
/push
# Push foundation submodule
/push foundationDoes it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

