# Dotfiles are opt-in, as a category: a new secret-bearing dotfile (.env,
# .envrc, .pypirc, .netrc) is ignored before anyone has to remember it.
/.*
!/.gitignore
!/.gitattributes
!/.github/

# Personal, per-machine overrides: never committed, never packaged (the
# manifest excludes them too -- a dotfile pattern does not match these names).
*.local.*

# Agent configs / private notes, for nested occurrences the rule above cannot
# reach. `.agents` is slashless on purpose: it is usually a symlink, which a
# directory-only `.agents/` would not match.
.agents
CLAUDE*
.claude

# Virtualenvs
.venv*/
.pyvenv/
venv/
env/

# Byte-compiled / optimized
__pycache__/
*.py[cod]
*$py.class

# Distribution / packaging
build/
dist/
*.egg-info/
*.egg
.eggs/

# Test / coverage / type-check caches
.pytest_cache/
.hypothesis/
.mypy_cache/
.ruff_cache/
.coverage*
htmlcov/
.tox/

# Docs site build output
/site/

# Editors / OS
.vscode/
.idea/
*.swp
.DS_Store
