# Python
__pycache__/
*.py[cod]
.venv/
venv/
*.egg-info/
.pytest_cache/
.ruff_cache/
.mypy_cache/

# Environment / secrets — never commit (but keep the *.example templates)
.env
.env.*
!.env.example
!.env*.example
*.pem
*.key

# Data & databases (client data never enters the repo)
data/
backups/
orchestrator/harness/results/
*.lbug
*.sqlite
*.db
*.archive.gz
*.snapshot

# OS / editor
.DS_Store
.idea/
.vscode/

# Claude Code local overrides
.claude/settings.local.json

# Parallel-session worktrees. Claude Code already adds this to
# .git/info/exclude when it first creates one, but that file is local and
# unversioned — on a fresh clone the rule would not exist, and a worktree
# created there is a whole second checkout sitting untracked inside this one.
# Cheap insurance, so it is stated here too.
.claude/worktrees/
