# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# Virtual environments
.venv/
venv/
env/
ENV/

# uv.lock is COMMITTED on purpose. Every dependency is declared with >=, so
# without a lock two people get different versions and a benchmark that claims
# reproducible comparison cannot deliver one.

# IDE
.vscode/
.idea/
*.swp
*.swo

# Jupyter
.ipynb_checkpoints/
*.ipynb_meta

# OS
.DS_Store
Thumbs.db

# Testing / coverage
.pytest_cache/
.coverage
htmlcov/
.tox/
.mypy_cache/
.ruff_cache/

# AdmitPerf-specific
data/traces/*
data/# Scratch runs at the repo root. Anchored, so it does not also swallow the
# results that live inside an experiment folder.
/results/

# Experiment folders keep their own results. The per-request logs are large and
# regenerable; the records a paper cites — what was run, what came out, on which
# commit — are small and are committed, so a cited number can always be traced.
experiments/*/results/**/decisions.jsonl
experiments/*/results/**/outcomes.jsonl
experiments/*/results/**/trace.jsonl*
data/cache/*
!data/traces/.gitkeep
!data/# Scratch runs at the repo root. Anchored, so it does not also swallow the
# results that live inside an experiment folder.
/results/

# Experiment folders keep their own results. The per-request logs are large and
# regenerable; the records a paper cites — what was run, what came out, on which
# commit — are small and are committed, so a cited number can always be traced.
experiments/*/results/**/decisions.jsonl
experiments/*/results/**/outcomes.jsonl
experiments/*/results/**/trace.jsonl.gitkeep
!data/cache/.gitkeep

# Modal / cloud logs
.modal/
modal_logs/

# Secrets
.env
.env.*
!.env.example

# Roadmap intentionally outside this repo — do not commit if placed here by mistake
Roadmap.md

# AdmitPerf session state
.admitperf/
# Scratch runs at the repo root. Anchored, so it does not also swallow the
# results that live inside an experiment folder.
/results/

# Experiment folders keep their own results. The per-request logs are large and
# regenerable; the records a paper cites — what was run, what came out, on which
# commit — are small and are committed, so a cited number can always be traced.
experiments/*/results/**/decisions.jsonl
experiments/*/results/**/outcomes.jsonl
experiments/*/results/**/trace.jsonl

# Spec-dev drafts stay local
.spec-dev/

# Everything AdmitPerf writes lands in experiments/<experiment>/<policy>/r<n>.jsonl.
# Runs are outputs, not source: they are large, machine-written, and reproducible from
# the command that made them.
experiments/
