# Python
__pycache__/
*.py[cod]
*$py.class
*.egg-info/
.eggs/
dist/
build/
.venv/
venv/
env/

# uv
.uv-cache/

# Test / coverage
.pytest_cache/
.coverage
.coverage.*
htmlcov/
.tox/
.mypy_cache/
.ruff_cache/
.pyright/

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

# Project-specific — secrets / session storage (NEVER commit)
auth/                  # any project-local auth dir
profile_*/             # Chromium persistent contexts (any name)
*.cookies.json         # exported cookie jars
storage_state.json     # Playwright storage_state output
secrets.json           # generic secrets file
.env                   # local env overrides (the .env.template IS committed)
.env.local
.env.*.local

# Generated outputs
out/
tmp/
*.mp4
*.png
!docs/**/*.png         # docs images are OK
!tests/fixtures/**/*.png
samples/*.captured.json # sandbox-recorded API exchanges may contain PII

# Claude Code worktrees and lock files
.claude/worktrees/
.claude/scheduled_tasks.lock
