From liam
Use when creating or editing a .gitignore file, initializing a new project, setting up a repository, or when the user asks about what to ignore in git. Triggers on git init, project scaffolding, .gitignore creation, or questions about gitignore patterns for any project type.
How this skill is triggered — by the user, by Claude, or both
Slash command
/liam:gitignoreThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate well-structured `.gitignore` files that separate user-level from project-level concerns, cover all common blind spots, and follow community best practices.
Generate well-structured .gitignore files that separate user-level from project-level concerns, cover all common blind spots, and follow community best practices.
~/.gitignore_global # User: OS files, your editor, your AI tools
.gitignore # Project: build output, deps, secrets, caches
.git/info/exclude # Local one-offs: not shared, not committed
Setup: git config --global core.excludesFile ~/.gitignore_global
git rm --cachedThese apply to virtually every project regardless of language:
# Secrets & environment
.env
.env.local
.env.*.local
!.env.example
*.pem
*.key
# OS artifacts (safety net for devs without global gitignore)
.DS_Store
Thumbs.db
# Logs
*.log
# AI coding tools — local/personal overrides
CLAUDE.local.md
Some directories contain a mix of team-shared and personal files. Use the ignore-then-unignore pattern:
# ref: github/gitignore/blob/main/Global/VisualStudioCode.gitignore
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
# ref: code.claude.com/docs/en/settings
.claude/*
!.claude/settings.json
!.claude/CLAUDE.md
!.claude/agents/
!.claude/rules/
CLAUDE.local.md
# ref: cursor.com/docs/context/ignore-files
.cursor/*
!.cursor/rules/
.editorconfig, .prettierrc, .eslintrc*, tsconfig.json, lock files, .nvmrc, mise.toml, .husky/, .devcontainer/.pnpm-lock.yaml, package-lock.json, yarn.lock, Cargo.lock, poetry.lock.*.local convention: Many tools use .local suffix for personal overrides (.env.local, CLAUDE.local.md, mise.local.toml, docker-compose.override.yml). Always ignore these.# ref: comments linking to the relevant github/gitignore template or official docs for non-obvious patterns..env.*.local variants (.env.development.local, .env.test.local)docker-compose.override.yml — this is Docker's local override mechanism.editorconfig or .prettierrc — these are team standards, not personal preference.gitignore after it's already tracked — must run git rm --cached <file> first* that accidentally hide important filesFor the complete categorized list of 80+ common paths with recommendations (editors, AI tools, OS, secrets, version managers, build tools, testing, containers, Python, git hooks, infra, logs), see references/gitignore-catalog.md.
https://github.com/github/gitignore/tree/main — official templates for languages, frameworks, and global patterns. Always cross-reference when setting up a new project type.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub isoscelesxyz/liam-claude-plugin --plugin liam