# Scratch / working dirs
tmp/

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

# Environments
.venv/
venv/
.env

# Tooling caches
.pytest_cache/
.ruff_cache/
.pyright/
.mypy_cache/
.hypothesis/

# uv
# (uv.lock is intentionally committed once we adopt it; nothing to ignore yet)

# OS / editor
.DS_Store
*.swp

# Local data (never commit datasets)
/data/
*.h5ad

# Claude Code local
.claude/scheduled_tasks.lock
# Transient agent worktrees (hardening-loop subagents run isolated here)
.claude/worktrees/

# Automated-scientist blind-eval artifacts — NEVER commit. The answer keys must be
# completely inaccessible to any test agent (which may have repo access), and the generated
# blind_test.h5ad datasets are large + regenerable. Keys live outside the repo entirely.
eval_cases/
eval_keys/
**/blind_test.h5ad
**/*answer_key*.json
