Git Workflow And Versioning
shashankswe2020-ux/whoop-mcp
Structures git workflow practices. An agent skill from shashankswe2020-ux/whoop-mcp.
Analyzes and safely cleans up local Git branches. An agent skill from gotalab/skillport.
$ npx skills add gotalab/skillport --skill git-branch-cleanup -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gotalab/skillport git-branch-cleanup --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/gotalab/skillport.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.skills/experimental/git-branch-cleanup .claude/skills/git-branch-cleanup && rm -rf skills-srcUse ~/.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/
Install the "git-branch-cleanup" agent skill from https://github.com/gotalab/skillport/tree/main/.skills/experimental/git-branch-cleanup into .claude/skills/git-branch-cleanup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-branch-cleanup", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/gotalab/skillport/tree/main/.skills/experimental/git-branch-cleanupType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add gotalab/skillport --skill git-branch-cleanup -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gotalab/skillport git-branch-cleanup --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gotalab/skillport.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.skills/experimental/git-branch-cleanup .agents/skills/git-branch-cleanup && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "git-branch-cleanup" agent skill from https://github.com/gotalab/skillport/tree/main/.skills/experimental/git-branch-cleanup into .agents/skills/git-branch-cleanup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-branch-cleanup", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gotalab/skillport --skill git-branch-cleanup -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gotalab/skillport git-branch-cleanup --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gotalab/skillport.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.skills/experimental/git-branch-cleanup .cursor/skills/git-branch-cleanup && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "git-branch-cleanup" agent skill from https://github.com/gotalab/skillport/tree/main/.skills/experimental/git-branch-cleanup into .cursor/skills/git-branch-cleanup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-branch-cleanup", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/gotalab/skillport.git --path .skills/experimental/git-branch-cleanup--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add gotalab/skillport --skill git-branch-cleanup -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gotalab/skillport git-branch-cleanup --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gotalab/skillport.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.skills/experimental/git-branch-cleanup .gemini/skills/git-branch-cleanup && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "git-branch-cleanup" agent skill from https://github.com/gotalab/skillport/tree/main/.skills/experimental/git-branch-cleanup into .gemini/skills/git-branch-cleanup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-branch-cleanup", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install gotalab/skillport git-branch-cleanupInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add gotalab/skillport --skill git-branch-cleanup -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/gotalab/skillport.git skills-src && mkdir -p .github/skills && cp -r skills-src/.skills/experimental/git-branch-cleanup .github/skills/git-branch-cleanup && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "git-branch-cleanup" agent skill from https://github.com/gotalab/skillport/tree/main/.skills/experimental/git-branch-cleanup into .github/skills/git-branch-cleanup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-branch-cleanup", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gotalab/skillport --skill git-branch-cleanup -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gotalab/skillport git-branch-cleanup --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gotalab/skillport.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.skills/experimental/git-branch-cleanup .opencode/skills/git-branch-cleanup && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "git-branch-cleanup" agent skill from https://github.com/gotalab/skillport/tree/main/.skills/experimental/git-branch-cleanup into .opencode/skills/git-branch-cleanup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-branch-cleanup", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
git-branch-cleanupAnalyzes and safely cleans up local Git branches. An agent skill from gotalab/skillport.
Git Branch Cleanup is an agent skill from gotalab/skillport. Analyzes and safely cleans up local Git branches. Categorizes branches by merge status, staleness, and remote tracking. Provides interactive selection with safety guards. Use when the user wants to clean up branches, delete old branches, organize Git branches, or asks about which branches can be safely deleted.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Requires git 2.17+ (for worktree support). Git 2.22+ recommended for git branch --show-current.
It sits in Development, covering Git workflow. It works with Model Context Protocol. The repository describes itself as: Bring Agent Skills to Any AI Agent and Coding Agent — via CLI or MCP. Manage once, serve anywhere. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 51334ae. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Requires git 2.17+ (for worktree support). Git 2.22+ recommended for `git branch --show-current`.
From compatibility in the SKILL.md frontmatter.
Git Branch Cleanup loads about 2k tokens when it runs. Until then it costs about 83 tokens; SKILL.md has 279 words of instructions outside code blocks.
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.
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.
The full file from gotalab/skillport at commit 51334ae, republished under its MIT licence (© gotalab). 279 words, ~1,980 tokens.
.claude/skills/git-branch-cleanup/SKILL.md (or your agent's skills folder).Safely organize and clean up local Git branches. Categorizes branches by merge status, staleness, and remote tracking, then guides users through safe deletion.
Collect information with these commands:
# Decide base branch (prefer auto-detect; fallback to main)
BASE_BRANCH="$(
git symbolic-ref --quiet --short refs/remotes/origin/HEAD 2>/dev/null | sed 's@^origin/@@'
)"
[ -n "$BASE_BRANCH" ] || BASE_BRANCH=main
# List all branches with last commit date
git for-each-ref --sort=-committerdate refs/heads/ \
--format='%(refname:short)|%(committerdate:relative)|%(upstream:trackshort)|%(contents:subject)'
# Merged branches (against base)
git branch --merged "$BASE_BRANCH"
# Unmerged branches
git branch --no-merged "$BASE_BRANCH"
# Branches whose upstream is gone (remote deleted)
git branch -vv | grep -F ': gone]' || true
# List worktrees (branches with '+' prefix in git branch -v have worktrees)
git worktree list
# Branches with worktrees ('+' prefix indicates worktree association)
git branch -v | grep '^+' || true
# Branches ahead of upstream (have unpushed commits)
git for-each-ref refs/heads \
--format='%(refname:short) %(upstream:trackshort)' \
| grep '>' || trueCategorize branches by safety level:
| Category | Description | Safety |
|---|---|---|
| Merged (Safe) | Already merged to base branch | Safe to delete |
| Gone Remote | Remote branch deleted | Review recommended |
| Stale | No commits for 30+ days | Needs review |
| Has Worktree | Branch checked out in a worktree (+ prefix in git branch -v) | Remove worktree first |
| Ahead of Upstream | Has unpushed commits | ⚠️ Do not delete |
| Unmerged | Active work in progress | Use caution |
Note: 30 days is a reasonable default for stale detection. Adjust based on team's sprint cycle if needed (e.g., 14 days for 2-week sprints).
## Branch Analysis Results
### Safe to Delete (Merged)
- feature/login (3 weeks ago) - Add login feature
- fix/typo (2 months ago) - Fix typo in readme
### Remote Deleted
- feature/old-api (1 month ago) - Remote branch no longer exists
### ⚠️ Ahead of Upstream (DO NOT DELETE)
- feature/wip (1 day ago) - Has 3 unpushed commits
### Stale Branches (30+ days)
- experiment/cache (2 months ago) - Unmerged
### Active (Unmerged)
- feature/new-dashboard (2 days ago) - Work in progress
---
Which categories would you like to delete?
1. Merged only (safest)
2. Merged + remote deleted
3. Select individuallyNever delete these branches:
mainmastertrunkdevelopdevelopmentAlways confirm before deletion:
The following branches will be deleted:
- feature/login
- fix/typo
Continue? (y/N)# After confirmation
git branch -d <branch-name> # For merged branches
git branch -D <branch-name> # Force delete (unmerged)For branches with worktrees, remove the worktree first:
# Check if branch has a worktree
git worktree list | grep "\\[$branch\\]"
# Remove worktree before deleting branch
git worktree remove --force /path/to/worktree
git branch -D <branch-name>Bulk delete [gone] branches with worktree handling:
# Process all [gone] branches, handling worktrees automatically
git branch -v | grep '\[gone\]' | sed 's/^[+* ]//' | awk '{print $1}' | while read branch; do
echo "Processing branch: $branch"
# Find and remove worktree if it exists
worktree=$(git worktree list | grep "\\[$branch\\]" | awk '{print $1}')
if [ ! -z "$worktree" ] && [ "$worktree" != "$(git rev-parse --show-toplevel)" ]; then
echo " Removing worktree: $worktree"
git worktree remove --force "$worktree"
fi
# Delete the branch
echo " Deleting branch: $branch"
git branch -D "$branch"
done# Bulk delete merged branches (excluding protected branches and current branch)
# Notes:
# - Uses for loop + case for bash/zsh compatibility (avoids `while IFS= read` issues in zsh).
# - Uses case statement for exact-name matching (avoids grep regex edge cases).
# - Always exclude the current branch to prevent accidental self-deletion.
BASE_BRANCH="$(git symbolic-ref --quiet --short refs/remotes/origin/HEAD 2>/dev/null | sed 's@^origin/@@')"
[ -n "$BASE_BRANCH" ] || BASE_BRANCH=main
CURRENT_BRANCH="$(git branch --show-current)"
for branch in $(git branch --merged "$BASE_BRANCH" | sed 's/^[* ]*//'); do
case "$branch" in
main|master|trunk|develop|development|"$CURRENT_BRANCH"|"") continue ;;
*) git branch -d "$branch" ;;
esac
done
# Prune remote-tracking references (requires network access)
# Note: This may fail if offline or remote is unreachable.
# If it fails, skip this step - branch analysis still works with cached remote data.
git fetch --prune || echo "Warning: Could not reach remote. Using cached data."
# List oldest branches (30+ days)
git for-each-ref --sort=committerdate refs/heads/ \
--format='%(committerdate:short) %(refname:short)' | head -20
# Worktree commands
git worktree list # List all worktrees
git worktree remove /path/to/worktree # Remove a worktree
git worktree remove --force /path/to/worktree # Force remove (even if dirty)
git worktree prune # Clean up stale worktree refsPreview deletions without executing:
# Preview only
BASE_BRANCH="$(git symbolic-ref --quiet --short refs/remotes/origin/HEAD 2>/dev/null | sed 's@^origin/@@')"
[ -n "$BASE_BRANCH" ] || BASE_BRANCH=main
CURRENT_BRANCH="$(git branch --show-current)"
for branch in $(git branch --merged "$BASE_BRANCH" | sed 's/^[* ]*//'); do
case "$branch" in
main|master|trunk|develop|development|"$CURRENT_BRANCH"|"") ;;
*) echo "$branch" ;;
esac
doneTrigger dry-run mode if user says "--dry-run", "preview", or "just show me".
Before deletion, verify:
# Show "ahead/behind" vs upstream for each local branch
git for-each-ref refs/heads \
--format='%(refname:short)|%(upstream:short)|%(upstream:trackshort)|%(committerdate:relative)|%(contents:subject)' \
--sort=-committerdate
# For a specific branch, confirm it's not ahead of upstream (if upstream exists)
# (Empty output => nothing unpushed)
git log --oneline @{u}..HEAD 2>/dev/null || echo "No upstream configured for this branch"
# Check if a branch has an associated worktree
# ('+' prefix in git branch -v output indicates worktree)
git branch -v | grep "^+" | awk '{print $2}'
# Find worktree path for a specific branch
git worktree list | grep "\\[branch-name\\]"© gotalab, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .skills/experimental/git-branch-cleanup of gotalab/skillport.
Open the folder on GitHubat commit 51334ae
Git Branch Cleanup 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Git Branch Cleanup this skillgotalab/skillport | 414 | — | ~2k | Automated safety check: Pass | MIT | |
| Git Workflow And Versioningshashankswe2020-ux/whoop-mcp | 165 | 3 repos | ~2.6k | Automated safety check: Notes | MIT | |
| Cut Releasespiculedata/saiku | 1.3k | — | ~502 | Automated safety check: Pass | Apache-2.0 | |
| Release NotesGlitterKill/sdl-mcp | 491 | — | ~925 | Automated safety check: Pass | Custom licence | |
| E2b Sandboxagent-sandbox/agent-sandbox | 218 | — | ~2.6k | Automated safety check: Pass | Apache-2.0 | |
| GitHubswarmclawai/swarmclaw | 688 | — | ~820 | Automated safety check: Pass | MIT |
shashankswe2020-ux/whoop-mcp
Structures git workflow practices. An agent skill from shashankswe2020-ux/whoop-mcp.
spiculedata/saiku
Cut a Saiku release via Gitflow — version bump, release branch, PR to main, tag, back-merge, and post-release chores.
GlitterKill/sdl-mcp
Generate a CHANGELOG.md entry from git history since the last tag, categorized by type (features, fixes, security, breaking changes).
agent-sandbox/agent-sandbox
Create, manage, and use E2B sandboxes — run commands, manage files, use git, persist state, and configure networking.
swarmclawai/swarmclaw
GitHub operations via gh CLI: issues, PRs, CI runs, code review, API queries.
Goldziher/basemind
Drives the basemind code-intelligence tool from the command line for symbol search, callers, git history and blame, document search and web crawling, sharing its cache with the MCP server.
gotalab/skillport
Migrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5.
gotalab/skillport
Evaluates agent skills against Anthropic's best practices. An agent skill from gotalab/skillport.
Works with
Categories
Analyzes and safely cleans up local Git branches. An agent skill from gotalab/skillport. Git Branch Cleanup is an agent skill from gotalab/skillport. Analyzes and safely cleans up local Git branches.
Git Branch Cleanup fits situations like: the user wants to clean up branches; delete old branches; organize Git branches; asks about which branches can be safely deleted.
Run `npx skills add gotalab/skillport --skill git-branch-cleanup -a claude-code`. Or copy the skill folder (.skills/experimental/git-branch-cleanup in gotalab/skillport) into .claude/skills/git-branch-cleanup in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gotalab/skillport --skill git-branch-cleanup -a codex`. Or copy the skill folder (.skills/experimental/git-branch-cleanup in gotalab/skillport) into .agents/skills/git-branch-cleanup in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gotalab/skillport --skill git-branch-cleanup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/git-branch-cleanup, .gemini/skills/git-branch-cleanup, .github/skills/git-branch-cleanup and .opencode/skills/git-branch-cleanup in your project.
Going by SKILL.md and its folder, Git Branch Cleanup needs the command-line tools its instructions call (git). Compatibility (from SKILL.md): Requires git 2.17+ (for worktree support). Git 2.22+ recommended for `git branch --show-current`..
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Git Branch Cleanup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Git Branch Cleanup: Git Workflow And Versioning (shashankswe2020-ux/whoop-mcp, 165 stars), Cut Release (spiculedata/saiku, 1.3k stars), Release Notes (GlitterKill/sdl-mcp, 491 stars) and E2b Sandbox (agent-sandbox/agent-sandbox, 218 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
gotalab (a GitHub user) maintains it in gotalab/skillport, which has 414 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on June 24, 2026.
Source: gotalab/skillport on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.