agentsclimarketplace

Git hygiene

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

Production-grade configuration management for Claude Code. Hooks, agents, skills, multi-project orchestration.

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.

One thing 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.

What its author says it does

Copied from the file, not written here

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".

SKILL.md

4.5 KB, 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

Keep looking

Skills are one crate of 328,083. 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.