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

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

# Unit test / coverage reports
.pytest_cache/
.coverage
.coverage.*
htmlcov/
coverage.xml
.mypy_cache/
.ruff_cache/

# Environments
.env
.venv
venv/
ENV/

# IDEs
.vscode/
.idea/
*.swp
*.swo

# uv
.python-version

# Live-probe artifacts (gitignored — kept local for diagnostics)
reports/
docs/_evidence/

# Claude Code per-machine state. Listed individually rather than ignoring
# .claude/ wholesale: shared config (settings.json, skills/) is meant to be
# committed, and a blanket rule would drop it silently.
.claude/settings.local.json
.claude/scheduled_tasks.lock

# OS
.DS_Store
Thumbs.db
