Help us improve
Share bugs, ideas, or general feedback.
From git
Analyze project structure and create or update .gitignore file with appropriate patterns for the detected tech stack
npx claudepluginhub tarqd/skills --plugin gitHow this skill is triggered — by the user, by Claude, or both
Slash command
/git:gitignoreExploreThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Intelligently analyze the current directory structure and create or update an appropriate `.gitignore` file based on detected project type, tech stack, and existing patterns.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Intelligently analyze the current directory structure and create or update an appropriate .gitignore file based on detected project type, tech stack, and existing patterns.
Check for language/framework-specific files in the current directory and subdirectories:
Node.js/JavaScript:
package.jsonpackage-lock.jsonyarn.lockpnpm-lock.yamlPython:
requirements.txtpyproject.tomlsetup.pyPipfileRust:
Cargo.tomlCargo.lockGo:
go.modgo.sumJava:
pom.xmlbuild.gradlebuild.gradle.ktsRuby:
GemfileGemfile.lockPHP:
composer.json.NET/C#:
*.csproj*.slnSwift:
Package.swiftUse appropriate commands to identify patterns to ignore:
# Find common directories that should be ignored
find . -type d -name "node_modules" -o -name "dist" -o -name "build" -o -name ".venv" -o -name "__pycache__" 2>/dev/null | head -20
# Find common files that should be ignored
find . -name "*.log" -o -name ".DS_Store" -o -name ".env" -o -name "*.tmp" 2>/dev/null | head -20
# Check for IDE/editor directories
ls -a | grep -E "^\.vscode$|^\.idea$|^\.fleet$"
Identify:
dist/, build/, target/, out/, .next/, _site/node_modules/, vendor/, .venv/, venv/, env/.vscode/, .idea/, .fleet/, *.swp, .DS_Store.env, .env.local, .env.*.local*.log, logs/.cache/, __pycache__/, .pytest_cache/, .parcel-cache/tmp/, temp/, *.tmp, *.temp.DS_Store, Thumbs.db, desktop.ini# Check if .gitignore exists
ls -la .gitignore 2>/dev/null
If .gitignore exists:
If .gitignore does not exist:
Organize patterns into logical sections with comments:
# Dependencies
node_modules/
vendor/
# Build outputs
dist/
build/
*.js.map
# Environment variables
.env
.env.local
.env.*.local
# Logs
*.log
logs/
# OS-specific
.DS_Store
Thumbs.db
# IDE/Editor
.vscode/
.idea/
*.swp
*~
# Cache
.cache/
__pycache__/
*.pyc
# Temporary files
tmp/
*.tmp
.gitignore if it doesn't exist.gitignore by merging standard patterns with custom entries# Check what's currently tracked that should be ignored
git ls-files -ci --exclude-standard
# Show the new/updated .gitignore
cat .gitignore
Report to user:
git rm --cached <file>For detailed language-specific gitignore patterns, see the reference files:
User: "Create a .gitignore for this project"
Expected behavior:
package.json → Node.js projectnode_modules/ and dist/ directories.gitignore with Node.js patterns:# Dependencies
node_modules/
# Build outputs
dist/
build/
*.js.map
# Environment variables
.env
.env.local
# Logs
npm-debug.log*
yarn-debug.log*
*.log
# OS-specific
.DS_Store
Thumbs.db
# IDE/Editor
.vscode/
.idea/
*.swp
*~
# Testing
coverage/
.nyc_output/
User: "Update my .gitignore"
Existing .gitignore:
node_modules/
dist/
# My custom pattern
secret-notes.txt
Expected behavior:
secret-notes.txt# Dependencies
node_modules/
# Build outputs
dist/
build/
# Environment variables
.env
.env.local
# Logs
*.log
npm-debug.log*
# OS-specific
.DS_Store
Thumbs.db
# IDE/Editor
.vscode/
.idea/
*.swp
# Testing
coverage/
# Custom
secret-notes.txt
User: "Create gitignore"
Detected files:
package.json (Node.js)requirements.txt (Python)Expected behavior:
Create .gitignore with both Node.js and Python patterns:
# Dependencies - Node.js
node_modules/
# Dependencies - Python
venv/
.venv/
env/
# Build outputs
dist/
build/
# Python bytecode
__pycache__/
*.py[cod]
*.so
# Environment variables
.env
.env.local
# Logs
*.log
# OS-specific
.DS_Store
Thumbs.db
# IDE/Editor
.vscode/
.idea/
*.swp
# Testing
coverage/
.pytest_cache/
htmlcov/
Report: "Created .gitignore for Node.js and Python project"
User: "Update gitignore"
After updating .gitignore:
# Check for tracked files matching .gitignore patterns
git ls-files -ci --exclude-standard
Output:
.env
debug.log
Report to user:
Updated .gitignore successfully.
⚠️ Warning: The following tracked files match .gitignore patterns:
- .env
- debug.log
To remove them from git tracking (keeps local files):
git rm --cached .env debug.log
git commit -m "chore: remove ignored files from tracking"
If no clear project type is found:
# Build outputs
dist/
build/
target/
out/
# Dependencies
node_modules/
vendor/
# Environment variables
.env
.env.local
# Logs
*.log
logs/
# OS-specific
.DS_Store
Thumbs.db
desktop.ini
# IDE/Editor
.vscode/
.idea/
.fleet/
*.swp
*.swo
*~
# Cache
.cache/
# Temporary files
tmp/
temp/
*.tmp
If existing .gitignore already covers all necessary patterns:
If multiple project types detected:
If existing .gitignore is very large (>200 lines):
If large binaries or generated files are tracked:
*.log is better than * in most casesgit ls-files -ci --exclude-standard after updating❌ DO NOT:
*.json or *.yaml✅ DO: