# Python
__pycache__/
*.py[cod]
*.pyo
*.pyd
.Python
*.egg
*.egg-info/
dist/
build/
.eggs/
pip-wheel-metadata/
*.whl

# Virtual environments
.venv/
venv/
env/

# Test / coverage
.pytest_cache/
.coverage
coverage.xml
htmlcov/
.tox/

# Distribution / packaging
MANIFEST
.installed.cfg

# IDEs
.idea/
.vscode/
*.iml

# macOS
.DS_Store

# Tooling directories — personal session config stays local; published assets
# (e.g. .claude/skills/, .cursor/skills/) remain tracked.
.claude/settings*.json
.claude/todos/
.claude/history/
.claude/implementation-template.md
.cursor/settings*.json
.cursor/todos/
.cursor/history/

# Generated corpus data (large; tracked via corpus_meta.json instead)
corpus/corpus.jsonl

# Experiment results (generated). Ignore by default, but the files backing a
# published claim are tracked explicitly — a reviewer of ARRAY-D-26-02236 found
# that the bootstrap CIs and transformer baseline were cited in the paper but
# absent from the repository, because a blanket ignore here meant they were
# never added. Anything the Data Availability statement names belongs below.
experiments/results/*
!experiments/results/sweep_results_both.jsonl
!experiments/results/sweep_results_v2.jsonl
!experiments/results/sweep_results_v3.jsonl
!experiments/results/latency_results.json
!experiments/results/bootstrap_ci.json
!experiments/results/baseline_comparison.json
!experiments/results/baseline_eval.jsonl
!experiments/results/baseline_latency.json
!experiments/results/person_breakdown.json
!experiments/results/live_demo.json
!experiments/results/surface_form_probe.json
