Claude-skill-registry gitignore-hygiene
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/gitignore-hygiene" ~/.claude/skills/majiayu000-claude-skill-registry-gitignore-hygiene && rm -rf "$T"
manifest:
skills/data/gitignore-hygiene/SKILL.mdsource content
Gitignore Hygiene
Maintains gitignore patterns and cleans cached files from git tracking.
Trigger Conditions
Invoke when:
- After making commits
- New file types appear (build artifacts, logs)
- Before pushing to remote
- User says "check gitignore", "clean git"
Also invoke explicitly with:
/gitignore-hygiene- "clean up gitignore"
- "check for unwanted files"
Procedure
Step 1: Scan for Unwanted Files
Check for common patterns that should be ignored:
# Check for tracked files that should be ignored git ls-files | grep -E '\.(log|env|pem|key)$' git ls-files | grep -E '^(node_modules|dist|build|coverage)/'
Step 2: Check Current Gitignore
Read .gitignore and identify missing patterns:
| Category | Patterns to Check |
|---|---|
| Dependencies | node_modules/, .pnpm-store/, vendor/ |
| Build | dist/, build/, .svelte-kit/, .next/, .nuxt/ |
| Test | coverage/, test-results/, playwright-report/ |
| IDE | .idea/, .vscode/, *.swp |
| OS | .DS_Store, Thumbs.db |
| Environment | .env, .env.local, .env.*.local |
| Logs | .log, npm-debug.log |
| Cache | .cache/, .turbo/, .eslintcache |
| Credentials | *.pem, *.key, credentials.json |
Step 3: Detect Project Type
Adjust patterns based on detected stack:
Node.js / TypeScript:
node_modules/ dist/ .turbo/
Svelte / SvelteKit:
.svelte-kit/ build/
Next.js:
.next/ out/
Python:
__pycache__/ *.pyc .venv/ .pytest_cache/
Rust:
target/ Cargo.lock # for libraries
Step 4: Report Findings
If issues found:
Gitignore hygiene check: Missing patterns: + coverage/ (test artifacts) + playwright-report/ (test artifacts) + .turbo/ (cache) Tracked files that should be ignored: - coverage/lcov.info - test-results/results.xml Recommended actions: 1. Add missing patterns to .gitignore 2. Remove cached files from tracking Run: git rm -r --cached coverage/ test-results/
If no issues:
Gitignore hygiene check: All clear No unwanted files tracked. All common patterns present.
Step 5: Apply Fixes (With Confirmation)
Add missing patterns:
echo "coverage/" >> .gitignore echo "test-results/" >> .gitignore
Remove cached files:
git rm -r --cached coverage/ git rm -r --cached test-results/
Commit the cleanup:
git add .gitignore git commit -m "chore: update gitignore patterns Added: - coverage/ - test-results/ - playwright-report/ Removed from tracking: - coverage/lcov.info - test-results/results.xml Co-Authored-By: Claude <noreply@anthropic.com>"
Pattern Categories
Always Include
These patterns should be in every project:
# OS files .DS_Store Thumbs.db # IDE .idea/ .vscode/ *.swp *.swo # Environment .env .env.local .env.*.local # Logs *.log
Language-Specific
Node.js:
node_modules/ .pnpm-store/ npm-debug.log* yarn-debug.log* yarn-error.log*
TypeScript:
dist/ *.tsbuildinfo
Testing:
coverage/ .nyc_output/ test-results/ playwright-report/
Framework-Specific
SvelteKit:
.svelte-kit/ build/
Next.js:
.next/ out/
Vite:
dist/ .vite/
Dangerous Patterns
Never ignore these (warn if present):
| Pattern | Risk |
|---|---|
| Ignoring source code |
| Ignoring all TypeScript |
| Ignoring manifest |
| Recursive ignore |
Skill Chaining
After Commits
Run hygiene check after commits to catch:
- Accidentally committed build artifacts
- Missing patterns for new file types
Before Push
Run hygiene check before pushing:
- Ensure no credentials are tracked
- Verify build artifacts are ignored
With project-init
project-init creates comprehensive .gitignore. This skill maintains it over time.
Terminal Chain
After any commit session: repo-hygiene (final cleanup)
Rationalizations (Do Not Skip)
| Rationalization | Why It's Wrong | Required Action |
|---|---|---|
| "Just one file" | One file becomes many | Add pattern |
| "I'll clean later" | Later is never | Clean now |
| "It's not sensitive" | Build artifacts bloat repo | Remove from tracking |
| "Gitignore is fine" | Projects evolve | Verify regularly |
Example Session
/gitignore-hygiene Scanning project... Found issues: 1. Missing patterns: + .turbo/ (detected turbo usage) + playwright-report/ (detected playwright) 2. Tracked files to remove: - .turbo/cache/abc123 - playwright-report/index.html Actions: [1] Add patterns to .gitignore [2] Remove cached files [3] Skip > 1 Updated .gitignore with: + .turbo/ + playwright-report/ > 2 Removed from tracking: - .turbo/cache/ (42 files) - playwright-report/ (15 files) Ready to commit? [y/n]
Notes
- Never modifies .git directory
- Preserves existing .gitignore structure
- Warns about potentially dangerous patterns
- Creates backup before modifying
- Works with both root and package gitignores in monorepos