agentsclimarketplace

Git hygiene

Skill claude-hangar/claude-hangar/core/skills/git-hygiene

Git repository hygiene check. Stale branches, large files, commit conventions. Use when: "git cleanup", "git hygiene", "clean up branches", "git-hygiene", "stale branches", "git cleanup".From its SKILL.md

Install
npx -y skills add claude-hangar/claude-hangar --skill git-hygiene

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 6 commands, including `git for-each-ref --sort=committerdate --format='%(refname:short) %(committerdate:relative)' refs/heads/` and 5 more.

SKILL.md

4.5 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it

<!-- AI-QUICK-REF ## /git-hygiene — Quick Reference - **Modes:** scan (all), branches, history, commits - **Checks:** Stale branches, large files, conventional commits, .gitignore, unmerged branches, orphaned worktrees - **Output:** Report with findings per category - **Non-destructive:** Read-only, changes nothing -->

/git-hygiene — Git Repository Hygiene

Checks a Git repository for hygiene issues: stale branches, large files, inconsistent commits.

Modes

ModeArgumentChecks
scan/git-hygiene (default)All 6 checks
branches/git-hygiene branchesStale + unmerged branches only
history/git-hygiene historyLarge files in history only
commits/git-hygiene commitsConventional commit check only

Checks

1. Stale Branches

Branches with no commits for >30 days:

git for-each-ref --sort=committerdate --format='%(refname:short) %(committerdate:relative)' refs/heads/
  • 30 days: WARNING

  • 90 days: Deletion candidate

  • Exclude master/main/develop
  • Finding: GIT-01: Branch {name} — last commit {N} days ago

2. Large Files in History

Top 10 largest objects in Git history:

git rev-list --objects --all | git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' | awk '/^blob/ {print $3, $4}' | sort -rn | head -10
  • 5MB: WARNING (remove via git filter-branch or BFG)

  • 50MB: ERROR

  • Finding: GIT-02: {file} is {size}MB in history

3. Conventional Commits

Check last 20 commits:

git log --oneline -20

Valid prefixes: feat:, fix:, docs:, style:, refactor:, test:, chore:, perf:, ci:, build:, revert:

  • Commit without valid prefix: WARNING
  • Calculate compliance rate (X/20)
  • Finding: GIT-03: Commit {hash} has no conventional commit prefix

4. .gitignore Completeness

Check for important entries:

EntryRequiredContext
node_modules/If package.json existsNode.js
.envAlwaysSecrets
.env.localAlwaysSecrets
.env.productionAlwaysSecrets
dist/If build tool presentBuild artifacts
build/If build tool presentBuild artifacts
.DS_StoreAlwaysmacOS
Thumbs.dbAlwaysWindows
  • Finding: GIT-04: .gitignore missing entry {entry}
  • Finding: GIT-05: No .gitignore present

5. Unmerged Branches

Branches not merged into master/main:

git branch --no-merged master 2>/dev/null || git branch --no-merged main
  • List with last commit date
  • Finding: GIT-06: Branch {name} is not merged (last commit: {date})

6. Orphaned Worktrees

Worktree entries that point to missing directories, or worktrees whose branches have been deleted. Relevant when using superpowers:using-git-worktrees for feature isolation — worktrees can become orphaned after branch cleanup.

git worktree list --porcelain
# Look for worktrees where the branch no longer exists or the path is missing
git worktree prune --dry-run
# Shows what would be cleaned up
  • Worktree path no longer exists: WARNING
  • Worktree branch has been deleted: WARNING
  • git worktree prune --dry-run reports entries: WARNING
  • Finding: GIT-07: Orphaned worktree detected at {path} (branch: {branch})
  • Fix: git worktree remove {path} or git worktree prune

Output Format

## Git Hygiene: [Project Name]

### 1. Stale Branches
   WARNING: 2 stale branches
   - GIT-01: feature/old-login — last commit 45 days ago
   - GIT-01: hotfix/temp — last commit 120 days ago (deletion candidate)

### 2. Large Files
   OK: No files >5MB in history

### 3. Conventional Commits
   OK: 18/20 commits compliant (90%)
   - GIT-03: abc1234 "quick fix" — no prefix
   - GIT-03: def5678 "update stuff" — no prefix

### 4. .gitignore
   WARNING: 1 missing entry
   - GIT-04: .gitignore missing entry .env.production

### 5. Unmerged Branches
   OK: All branches merged

### 6. Orphaned Worktrees
   OK: No orphaned worktrees

---
Result: 6 checks, 4 OK, 2 WARNING, 0 ERROR

Rules

  • Read-only — does not delete branches, changes nothing
  • Works with any Git repository
  • Check remote branches only if origin is reachable
  • No force-push recommendations without explicit request

What ships with it: 1 file

376 B alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.