Agent skill

Push

by karanhudia in karanhudia/borg-ui

Push current branch changes to origin and create or update the corresponding pull request; use when asked to push, publish updates, or create pull request.

AGPL-3.0Auto-check passedDevelopment

Install Push

skills CLI
$ npx skills add karanhudia/borg-ui --skill push -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install karanhudia/borg-ui push --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/karanhudia/borg-ui.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/push .claude/skills/push && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
push
GitHub stars
1.7k
Token cost
~1.2k tokens
SKILL.md length
377 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Push current branch changes to origin and create or update the corresponding pull request; use when asked to push, publish updates, or create pull request.

  • Works in 8 steps: Identify current branch and confirm… → Run Borg UI validation appropriate to… → Push branch to origin with upstream… → …
  • Publish updates
  • SKILL.md covers Prerequisites, Goals, Related Skills and Steps, plus 2 more sections
  • Calls gh, git and npm

What it does

Push is an agent skill from karanhudia/borg-ui. Push current branch changes to origin and create or update the corresponding pull request; use when asked to push, publish updates, or create pull request.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Pull requests. The repository describes itself as: Replace complex Borg Backup terminal commands with a beautiful web UI. Create, schedule, and restore backups with just a few clicks. The licence is AGPL-3.0.

When your agent uses it

  • Publish updates
  • Create pull request

Example prompts

  • “/push”

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Identify current branch and confirm remote state.
  2. Run Borg UI validation appropriate to the changed files before pushing.
  3. Push branch to origin with upstream tracking if needed, using whatever
  4. If push is not clean/rejected
  5. Ensure a PR exists for the branch
  6. Write/update PR body explicitly using .github/PULL_REQUEST_TEMPLATE.md
  7. Validate the PR body has no template comments or unresolved placeholders.
  8. Reply with the PR URL from gh pr view.

What it can do on your machine

Read from SKILL.md and the folder at commit 196a74a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • git
    • npm
    • rg
    • ruff
    • pytest

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh, git and npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Push loads about 1.2k tokens when it runs. Until then it costs about 40 tokens; SKILL.md has 377 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~40
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from karanhudia/borg-ui at commit 196a74a, republished under its AGPL-3.0 licence (© karanhudia). 377 words, ~1,247 tokens.

Download SKILL.mdSave it as .claude/skills/push/SKILL.md (or your agent's skills folder).
name
push
description
Push current branch changes to origin and create or update the corresponding pull request; use when asked to push, publish updates, or create pull request.

Push

Prerequisites

  • gh CLI is installed and available in PATH.
  • gh auth status succeeds for GitHub operations in this repo.

Goals

  • Push current branch changes to origin safely.
  • Create a PR if none exists for the branch, otherwise update the existing PR.
  • Keep branch history clean when remote has moved.
  • pull: use this when push is rejected or sync is not clean (non-fast-forward, merge conflict risk, or stale branch).

Steps

  1. Identify current branch and confirm remote state.

  2. Run Borg UI validation appropriate to the changed files before pushing.

  3. Push branch to origin with upstream tracking if needed, using whatever remote URL is already configured.

  4. If push is not clean/rejected:

    • If the failure is a non-fast-forward or sync problem, run the pull skill to merge origin/main, resolve conflicts, and rerun validation.
    • Push again; use --force-with-lease only when history was rewritten.
    • If the failure is due to auth, permissions, or workflow restrictions on the configured remote, stop and surface the exact error instead of rewriting remotes or switching protocols as a workaround.
  5. Ensure a PR exists for the branch:

    • If no PR exists, create one.
    • If a PR exists and is open, update it.
    • If branch is tied to a closed/merged PR, create a new branch + PR.
    • Write a proper PR title that clearly describes the change outcome
    • For branch updates, explicitly reconsider whether current PR title still matches the latest scope; update it if it no longer does.
  6. Write/update PR body explicitly using .github/PULL_REQUEST_TEMPLATE.md:

    • Fill every section with concrete content for this change.
    • Replace all placeholder comments (<!-- ... -->).
    • Keep bullets/checkboxes where template expects them.
    • If PR already exists, refresh body content so it reflects the total PR scope (all intended work on the branch), not just the newest commits, including newly added work, removed work, or changed approach.
    • Do not reuse stale description text from earlier iterations.
  7. Validate the PR body has no template comments or unresolved placeholders.

  8. Reply with the PR URL from gh pr view.

Show full SKILL.md (42 more words)Show less

Commands

sh
# Identify branch
branch=$(git branch --show-current)

# Minimal validation gate for Borg UI setup and docs changes.
git diff --check

# Backend validation for backend changes.
if git diff --name-only origin/main...HEAD | rg -q '^(app|tests|requirements.txt|pytest.ini|ruff.toml)(/|$)'; then
  ruff check app tests
  ruff format --check app tests
  pytest tests/unit -v
fi

# Frontend validation for frontend changes.
if git diff --name-only origin/main...HEAD | rg -q '^frontend/'; then
  (cd frontend && npm run check:locales && npm run typecheck && npm run lint && npm run build)
fi

# Initial push: respect the current origin remote.
git push -u origin HEAD

# If that failed because the remote moved, use the pull skill. After
# pull-skill resolution and re-validation, retry the normal push:
git push -u origin HEAD

# If the configured remote rejects the push for auth, permissions, or workflow
# restrictions, stop and surface the exact error.

# Only if history was rewritten locally:
git push --force-with-lease origin HEAD

# Ensure a PR exists (create only if missing)
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

# Write a clear, human-friendly title that summarizes the shipped change.
pr_title="<clear PR title written for this change>"
if [ -z "$pr_state" ]; then
  gh pr create --title "$pr_title"
else
  # Reconsider title on every branch update; edit if scope shifted.
  gh pr edit --title "$pr_title"
fi

# Write/edit PR body to match .github/PULL_REQUEST_TEMPLATE.md before validation.
# Example workflow:
# 1) open the template and draft body content for this PR
# 2) gh pr edit --body-file /tmp/pr_body.md
# 3) for branch updates, re-check that title/body still match current diff

tmp_pr_body=$(mktemp)
gh pr view --json body -q .body > "$tmp_pr_body"
if rg -n '<!--|Fixes #$|TODO|TBD' "$tmp_pr_body"; then
  echo "PR body still contains template comments or unresolved placeholders." >&2
  exit 1
fi
rm -f "$tmp_pr_body"

# Show PR URL for the reply
gh pr view --json url -q .url

Notes

  • Do not use --force; only use --force-with-lease as the last resort.
  • Distinguish sync problems from remote auth/permission problems:
    • Use the pull skill for non-fast-forward or stale-branch issues.
    • Surface auth, permissions, or workflow restrictions directly instead of changing remotes or protocols.

© karanhudia, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .codex/skills/push of karanhudia/borg-ui.

Open the folder on GitHubat commit 196a74a

Compare with similar skills

Push next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Push compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Push this skillkaranhudia/borg-ui1.7k—~1.2kAutomated safety check: PassAGPL-3.0
Finishing a Development Branchobra/superpowers296k5 repos~1.9kAutomated safety check: PassMIT
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Check PRonyx-dot-app/onyx32k2 repos~2.3kAutomated safety check: PassMIT
Understand Diff AnalysisEgonex-AI/Understand-Anything86k1 repos~1.4kAutomated safety check: PassMIT
PR Design DocOpenHands/OpenHands90k—~2.4kAutomated safety check: PassMIT

Similar skills

  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    296k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Check PR

    onyx-dot-app/onyx

    Checks a GitHub, GitLab, or Perforce (p4) pull request (or merge request, or shelved changelist) for unresolved review comments, failing status checks, and incomplete PR descriptions.

    32k GitHub starsUsed in 2 repos~2.3k tokens
    DevelopmentAuto-check passed
  • Understand Diff Analysis

    Egonex-AI/Understand-Anything

    Reads your git changes or a pull request against a prebuilt knowledge graph of the project to explain what changed, which components are affected and what is risky.

    86k GitHub starsUsed in 1 repo~1.4k tokens
    DevelopmentAuto-check passed
  • PR Design Doc

    OpenHands/OpenHands

    For a non-trivial pull request, write a self-contained HTML design doc under the temporary .pr/ directory and link a visibility-appropriate preview in the PR description, so maintainers grasp the…

    90k GitHub stars~2.4k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • WooCommerce Code Review

    woocommerce/woocommerce

    Reviews WooCommerce code changes against the project's standards, flagging backend PHP architecture, naming, documentation, data integrity and testing violations.

    11k GitHub starsUsed in 3 repos~1.1k tokens
    DevelopmentAuto-check passed

More from karanhudia/borg-ui

  • Borg Live Debug

    karanhudia/borg-ui

    Live Borg debugging by exec-ing into the borg-web-ui Docker container.

    1.7k GitHub stars~1.4k tokensUpdated yesterday
    Auto-check: notes
  • Pull

    karanhudia/borg-ui

    Pull latest origin/main into the current local branch and resolve merge conflicts (aka update-branch).

    1.7k GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check passed
  • Continue Spec

    karanhudia/borg-ui

    Continue a multi-phase engineering spec from its progress table.

    1.7k GitHub stars~592 tokensUpdated yesterday
    Auto-check: notes
  • Linear

    karanhudia/borg-ui

    Use Symphony's lineargraphql client tool for raw Linear GraphQL operations such as comment editing and upload flows.

    1.7k GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Push

What does Push do?

Push current branch changes to origin and create or update the corresponding pull request; use when asked to push, publish updates, or create pull request. Push is an agent skill from karanhudia/borg-ui. Push current branch changes to origin and create or update the corresponding pull request; use when asked to push, publish updates, or create pull request.

When should I use Push?

Push fits situations like: publish updates; create pull request.

How do I install Push in Claude Code?

Run `npx skills add karanhudia/borg-ui --skill push -a claude-code`. Or copy the skill folder (.codex/skills/push in karanhudia/borg-ui) into .claude/skills/push in your project. Claude Code loads it when a task matches its description.

How do I install Push in Codex?

Run `npx skills add karanhudia/borg-ui --skill push -a codex`. Or copy the skill folder (.codex/skills/push in karanhudia/borg-ui) into .agents/skills/push in your project. Codex loads it when a task matches its description.

Can I use Push in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add karanhudia/borg-ui --skill push -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/push, .gemini/skills/push, .github/skills/push and .opencode/skills/push in your project.

What does Push need to run?

Going by SKILL.md and its folder, Push needs the command-line tools its instructions call (gh, git, npm, rg, ruff and pytest).

Does Push access the network?

SKILL.md contains no URLs. Its commands use gh, git and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Push safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Push use?

Push is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Push use?

About 1.2k tokens (SKILL.md is roughly 5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Push?

Skills that share tags, products or a category with Push: Finishing a Development Branch (obra/superpowers, 296k stars), PR Babysitter (openinterpreter/openinterpreter, 69k stars), Check PR (onyx-dot-app/onyx, 32k stars) and Understand Diff Analysis (Egonex-AI/Understand-Anything, 86k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Push?

karanhudia (a GitHub user) maintains it in karanhudia/borg-ui, which has 1,656 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.

Source: karanhudia/borg-ui on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.