Skip to content
cccskills
FreePublished on GitHub

clean-gone-branches

Delete local git branches whose remotes are gone, after verifying via gh CLI that each was actually merged.

The English summary is being prepared. Showing the original description.

Works withGitHub
See how to install

Files included (1)

  • SKILL.md2.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

What I do

Clean up orphaned local branches (those whose remote tracking branch is [gone]) by:

  1. Running git fetch --prune to sync remote state.
  2. Listing all local branches with [gone] remote tracking refs.
  3. Verifying each branch's PR status via gh pr list --state all to confirm it was merged (or closed).
  4. Showing the user a summary table with PR state and merge date.
  5. Asking for confirmation before deleting.
  6. Force-deleting confirmed branches with git branch -D.

When to use me

  • After a sprint or a batch of PRs land and you want to clean up stale local branches.
  • Any time git branch -vv shows several [gone] entries.
  • Before switching repos or doing a clean checkout.

Workflow

Step 1: Fetch and prune

git fetch --prune

Step 2: Find orphaned branches

git branch -vv | grep ': gone]'

If nothing found, report "No orphaned branches found." and stop.

Step 3: Verify PR status via gh CLI

For each orphaned branch, run:

gh pr list --head "<branch>" --state all --json state,mergedAt,title \
  --jq '.[0] | "\(.state) | merged: \(.mergedAt // "N/A") | \(.title)"'

Build a summary table:

BranchPR StateMerged AtPR Title

Flag any branches that are not MERGED (e.g. OPEN or CLOSED without merge) — these need user attention before deletion.

Step 4: Confirm with user

Show the table and ask:

  • "Delete all MERGED branches now?"

If any branch has no PR or is not merged, exclude it from the default delete list and call it out explicitly:

  • "These branches have no merged PR — skip them or confirm to force-delete anyway?"

Step 5: Delete

git branch -D <branch1> <branch2> ...

Report each deleted branch with its last commit hash.


Behavior rules

  • Never delete without explicit user confirmation.
  • Always use git branch -D (force) since git's merge check is against the local default branch, not the remote — remote deletion already confirms the work is done.
  • If gh is not available or returns no results, warn the user and do not auto-delete.
  • Prefer deleting all confirmed-merged branches in one command rather than one-by-one.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Implement comprehensive error handling for Python code paths to keep services resilient and user-friendly. Use when failures are currently silent or exceptions leak through.

The English summary is being prepared. Showing the original description.

Unique-AG/ai5Updated Oct 19, 2026

Tabular and numerical data analysis with descriptive statistics and insights. Use when the user provides data, tables, CSVs, or numbers and wants analysis.

The English summary is being prepared. Showing the original description.

Unique-AG/ai5Updated Oct 19, 2026

Financial factsheet analysis with key metrics extraction and investment rationale

The English summary is being prepared. Showing the original description.

Unique-AG/ai5Updated Oct 19, 2026

ci-fix

Free

Diagnose and fix CI failures without leaving your editor.

The English summary is being prepared. Showing the original description.

Unique-AG/ai5Updated Oct 19, 2026

Reproduce ai-repo PR checks locally with Poe and CI scripts, including per-package typecheck and coverage behavior. Use when validating changes before push or when user asks which local commands match CI.

The English summary is being prepared. Showing the original description.

Unique-AG/ai5Updated Oct 19, 2026

Ask clarifying questions before implementing to ensure Python requirements are understood. Use when a task lacks detail, dependencies are unclear, or multiple interpretations are possible.

The English summary is being prepared. Showing the original description.

Unique-AG/ai5Updated Oct 19, 2026

See all skills by Unique-AG

Report a problem with this skill