skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
rubenflamshepherd/ruben-agent-skills101 installs

soft-delete-git

Safely soft-delete a merged Git branch by switching to the default branch, pulling latest, and running `git branch -d`. Use when the user wants to clean up, remove, or delete a local branch after merging, or says "soft delete this branch" / "delete my branch". Escalates to the user instead of force-deleting if the branch is unmerged, except squash-merged PRs verified via `gh`.

How do I install this agent skill?

npx skills add https://github.com/rubenflamshepherd/ruben-agent-skills --skill soft-delete-git
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill defines a routine workflow for deleting merged Git branches using standard git and GitHub CLI commands. It includes safety checks for uncommitted changes and unmerged work.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

What does this agent skill do?

Soft Delete Git Branch Workflow

Invocation behavior

When this skill is invoked without an explicit branch name, target the currently checked-out branch. Invocation of the skill is authorization to begin the workflow immediately: inspect the working tree and determine the current branch without asking which branch to delete.

Only ask the user how to proceed when:

  • The working tree is dirty.
  • The current branch is the default branch.
  • Safe deletion fails and force deletion would require confirmation.

Do not ask the user to name or confirm the current branch before starting.

Steps:

  1. Check for uncommitted changes

    git status --porcelain
    

    If the working tree is dirty, stop and ask the user how to proceed (commit, stash, or discard) before switching branches.

  2. Get current branch name

    git branch --show-current
    

    If already on the default branch, there is no branch to delete — stop and ask the user which branch they meant.

  3. Determine the default branch

    git symbolic-ref --short refs/remotes/origin/HEAD
    

    This returns e.g. origin/main — the default branch is the part after origin/. If the ref is unset, fall back to main.

  4. Check out the default branch

    git checkout <default-branch>
    
  5. Pull latest changes

    git pull
    
  6. Soft delete the previous branch

    git branch -d <branch-name>
    
  7. If soft delete fails, check for a squash merge

    git branch -d fails for branches merged via GitHub's "Squash and merge", because the branch tip is never an ancestor of the default branch. Check whether the branch's PR was actually merged:

    gh pr view <branch-name> --json state,mergedAt
    
    • If the PR state is MERGED, confirm with the user, then delete with git branch -D <branch-name>.
    • Otherwise, escalate to the user rather than force-deleting.

Notes:

  • Uses lowercase -d for soft delete (safe delete that prevents deletion of unmerged branches)
  • Never use uppercase -D (hard delete) except in the verified-squash-merge case above, and only after confirming with the user
  • The workflow ensures the default branch is up to date before attempting the delete

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/rubenflamshepherd/ruben-agent-skills/soft-delete-git">View soft-delete-git on skillZs</a>