PU
Push current branch changes to origin and create or update the corresponding
Install
mkdir -p .claude/skills/push-sushaantu && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/15440" && unzip -o skill.zip -d .claude/skills/push-sushaantu && rm skill.zipInstalls to .claude/skills/push-sushaantu
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Push current branch changes to origin and create or update the corresponding76 chars · catalog descriptionno explicit “when” trigger
About this skill
Push
Prerequisites
ghCLI is installed and available inPATH.gh auth statussucceeds for GitHub operations in this repo.
Goals
- Push current branch changes to
originsafely. - Create a PR if none exists for the branch, otherwise update the existing PR.
- Keep branch history clean when remote has moved.
Related skills
pull: use this when push is rejected or the branch is stale.
Validation gate
Run the checks that match the repo's normal contribution flow before pushing:
bun run lint
bun run test
Run browser coverage too when the change is user-facing, routing-related, or otherwise browser-observable:
bun run test:e2e
If Playwright browsers are missing, install them first:
bunx playwright install --with-deps chromium
Steps
- Identify the current branch and confirm the remote state.
- Run the required validation for the scope.
- Push the branch to
originwith upstream tracking if needed. - If push is rejected because the remote moved, run the
pullskill, rerun validation, and push again. - If push fails because of auth, permissions, or repo rules, stop and surface the exact error.
- Ensure a PR exists for the branch:
- If no PR exists, create one.
- If a PR exists and is open, update it.
- If the current branch is tied to a closed or merged PR, create a fresh branch and PR.
- Write or update a clear PR title and body that match the current diff.
- Reply with the PR URL from
gh pr view.
Commands
branch=$(git branch --show-current)
git push -u origin HEAD
pr_state=$(gh pr view --json state -q .state 2>/dev/null || true)
if [ "$pr_state" = "MERGED" ] || [ "$pr_state" = "CLOSED" ]; then
echo "Current branch is tied to a closed PR; create a new branch + PR." >&2
exit 1
fi
pr_title="<clear PR title written for this change>"
if [ -z "$pr_state" ]; then
gh pr create --fill --title "$pr_title"
else
gh pr edit --title "$pr_title"
fi
gh pr view --json url -q .url
Notes
- Do not use
--force; use--force-with-leaseonly when local history was intentionally rewritten. - Distinguish sync problems from auth or permission problems. Use the
pullskill for the former and surface the latter directly.