# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
dist/
*.egg-info/
.eggs/
.installed.cfg

# Environments
.venv/
venv/
env/
.env
!.env.example

# Tooling caches
.pytest_cache/
.ruff_cache/
.mypy_cache/
.hypothesis/
.coverage
.coverage.*
coverage.xml
htmlcov/
.tox/

# Jupyter
.ipynb_checkpoints/

# MLflow / experiment tracking
mlruns/
mlartifacts/
*.db

# Docs build
site/

# Data: never commit data payloads. See docs/guides/data-layout.md
data/raw/**
data/interim/**
data/processed/**
data/sources/**
!data/**/.gitkeep
!data/sources/MANIFEST.md
!data/sources/manifest.json

# Models
models/
*.pkl
*.joblib
*.onnx

# OS / editor
.DS_Store
Thumbs.db
*.swp
.idea/
.vscode/

# Third-party agent skills installed via `npx skills`. Kept local, not shared:
# they are 37 general-purpose skills, several TypeScript-specific, and one of
# them shadows Claude Code's built-in /code-review. The project's own skills
# under .claude/skills/{add-metric,refresh-data,release} ARE committed.
.agents/
.claude/skills/*
!.claude/skills/add-metric/
!.claude/skills/refresh-data/
!.claude/skills/release/
skills-lock.json

# Mutation testing workspace and cache
mutants/
.mutmut-cache
mutmut-stats.json
