push
SkillDev toolsUse for /push, or ''push my branch'' — pushes the current branch to origin, setting upstream on first push, before opening a PR with /pr.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the push skill
What this skill tells your AI
The instructions your AI receives, as published by egregore-labs/egregore in .codex/skills/push/SKILL.md and read by ahel’s review.
Push current branch to remote.
When to invoke
User says: "/push", "push my branch", "push this up", "get my branch onto GitHub", or needs the current branch pushed to origin before opening a PR.
Not this: ready to open the PR itself → /pr (run after push).
Loom routing
Skip this section if your prompt contains LOOM-EXECUTOR — you are the executor; run the skill as specced below. Full protocol: .claude/context/loom.md.
- Resolve:
ROUTE=$(bash bin/loom.sh route push), thenDECISION_ID=$(printf '%s\n' "$ROUTE" | jq -r '.decision_id // empty'). - If
mode≠delegate, or the user signalled depth ("deep", "think hard",--deep) → run this skill inline as normal. On a depth override, printbash bin/loom.sh footer push --overrideafter the output and set"override":truein telemetry. - Otherwise delegate: spawn the Agent tool with
subagent_type: "loom-executor",model= the route'stier, prompt =LOOM-DECISION-ID: $DECISION_IDon its own first line, thenLOOM-EXECUTOR: Execute .claude/skills/push/SKILL.md, plus the user's arguments and any context the spec needs from the session. Print the executor's final output verbatim, then print the output ofbash bin/loom.sh footer push. - If the spawn fails or the executor's first line is
LOW_CONFIDENCE:— triage the reason: needs-user-interaction or a main-loop-only tool → take over and finish this skill inline (no escalation); genuine uncertainty or failure → reassignROUTE=$(bash bin/loom.sh escalate push "<reason>"), refreshDECISION_IDfromROUTE, then re-spawn once on the new tier carrying the returned decision ID (sticky for this session). - Telemetry (fire-and-forget):
bash bin/telemetry.sh emit "command" '{"command":"push","routed":true,"mode":"delegate","model":"<actual>","route_tier":"<table tier>","class":"<class>","escalated":<bool>,"override":<bool>,"source":"<source>"}' 2>/dev/null &
Before anything else
Resolve BASE_BRANCH through bin/lib/config.sh → _get_base_branch (pass the managed repo name when applicable). Check git branch --show-current. If on a protected branch ($BASE_BRANCH, develop, main, or master):
→ Use the resolved base branch (default "develop")
→ Create a working branch: git fetch origin $BASE_BRANCH --quiet && git checkout --no-track -b dev/{author}/{topic-slug} origin/$BASE_BRANCH
→ Tell the user: "Creating a working branch for this..." — never mention git commands to the user.
→ Then proceed with the push.
What to do
- Push current branch to origin
- Set upstream if first push
Example
> /push
Pushing feature/2026-01-20-mcp-authentication...
git push -u origin feature/2026-01-20-mcp-authentication
✓ Pushed
Branch is now on GitHub.
Run /pr when ready for review.
Next
Run /pr when ready for review.
Signals
- GitHub stars
- 288
- Forks
- 21
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
push-egregore-labs- Source
- github.com/egregore-labs/egregore