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

# Node (MCP / TS port)
node_modules/
*.tsbuildinfo

# Env / secrets
.env
.env.*
!.env.example

# OS
.DS_Store

# EntitleBench: scenarios are regenerated deterministically from code; the eval
# split must never be committed (or casually inspected — contamination protocol)
bench/entitlebench/generated/

# scorekeeper runtime artifacts (the committed scoreboard is intentionally NOT ignored;
# only local/generated indices are)
.scorekeeper/index.sqlite
.scorekeeper/*.tmp

# EntitleBench raw run outputs are large and judge-noisy. Curated artifacts are
# committed explicitly (git add -f): the *-REPORT.md / *-PROGRESS.md write-ups
# and paired-evidence-*.json (classifier-verified). Everything else is local.
bench/results/run-*/results.json
bench/results/run-*/results.jsonl
bench/results/run-*/summary.md
bench/results/*.log

# local-only working drafts (launch copy, private notes)
drafts/
