# ── Virtual Environments ──────────────────────────────────────────────────────
.venv/
venv/
env/

# ── UV ────────────────────────────────────────────────────────────────────────
# uv.lock is intentionally committed for reproducible installs

# ── Python ────────────────────────────────────────────────────────────────────
__pycache__/
*.py[cod]
*.pyo
*.pyd
*.so
*.egg
*.egg-info/
dist/
build/
.eggs/

# ── CUTIP Runtime State ───────────────────────────────────────────────────────
# .cutip/ is runtime-only (logs, cache, run state, locks)
.cutip/

# ── Environment Files ─────────────────────────────────────────────────────────
.env
.env.*
!.env.example

# ── Testing & Coverage ────────────────────────────────────────────────────────
.pytest_cache/
.coverage
coverage.xml
htmlcov/

# ── MkDocs ────────────────────────────────────────────────────────────────────
# site/ is a build artifact produced by `mkdocs build`.
# It is deployed automatically by the docs workflow; never commit it.
site/

# ── IDE & Editor ──────────────────────────────────────────────────────────────
.vscode/
.idea/
*.swp
*.swo
.DS_Store

# ── Claude Code ───────────────────────────────────────────────────────────────
# settings.json and memory/ are committed for portability across machines.
# settings.local.json is machine-specific (user overrides) — never commit it.
.claude/settings.local.json
# Git worktrees created by Claude Code live here; never commit them.
.claude/worktrees/

# ── Jenkins AI Reports ────────────────────────────────────────────────────────
# claude-reports/ is written at runtime by .jenkins/scripts/* and archived as
# Jenkins build artifacts. Never commit it.
claude-reports/
