# Virtualenvs & caches
.venv/
venv/
__pycache__/
.pytest_cache/
.ruff_cache/
.mypy_cache/
*.pyc
*.egg-info/
build/
dist/

# data/ holds regenerable artifacts (synthetic fixtures, sqlite DBs) — ignore its
# contents, but KEEP the directory present and force-track the version-controlled
# golden evaluation sets. NOTE: this must be `data/*` (ignore contents), not `data/`
# (ignore the dir) — git won't descend into a wholesale-excluded directory, so a bare
# `!data/golden/` would have no effect.
data/*
!data/golden/
!data/.gitkeep

# Claude Code: share project settings, ignore local/personal overrides
.claude/settings.local.json
.claude/*.local.json

# Generated docs (API ref, symbol/dependency indexes) — script-produced, regenerable.
# Ignore contents but keep the directory present, mirroring the data/ rule above.
docs/generated/*
!docs/generated/.gitkeep

# Built static doc site (make docs → pdoc API reference); regenerable, nginx-served.
docs/site/

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

# Local tooling artifacts (eval scratch output)
.jbeval/
