__pycache__/
*.pyc
.pytest_cache/
.ruff_cache/
.mypy_cache/
.coverage
coverage.xml
*.egg-info/
build/
dist/
.venv/
.venv-ci/
.env
launch/
docs/superpowers/
benchmarks/article.html
benchmarks/ARTICLE_DRAFT.md
benchmarks/PLAN-*.md
benchmarks/finetune/model*/
benchmarks/finetune/_ce_run/
calibration.json
.claude/
results/scale*/corpus/
results/scale*/.recall-synthetic
# Same rule for the latency-split benchmark: it generates a corpus per size (up to ~20k chunks),
# reproducible from its seed and not something to vendor. The SPLIT.md / splits.json written
# beside them ARE the artifacts and are committed.
results/store_latency*/**/corpus/
results/store_latency*/**/.recall-synthetic

# LOCOMO benchmark data — fetched on demand, not vendored (see recall/eval/locomo.py)
locomo10.json

# Head-to-head benchmark output (benchmarks/run.py). Every run writes a timestamped `.json` plus a
# `.partial.jsonl` sidecar here; the sidecar is per-run scratch that exists only so a crash does
# not lose paid-for work. A publishable artifact is copied out deliberately — it is not committed
# by whoever happened to run the benchmark last.
benchmarks/results/
# Benchmark run logs — transient. The JSON reports beside them are the artifact.
results/locomo/*.log

# LongMemEval data and the corpora converted from it — fetched/derived on demand, same rule as
# LOCOMO above. Not vendored for a hard reason as well as a tidiness one: the cleaned `_s`
# dataset is 265 MB, past GitHub's 100 MB per-file limit, so committing it would not fail at
# review — it would fail at push, for whoever pushes next.
longmemeval_*.json
s_out/
oracle_out/

# Ladder smoke/probe scratch — a published-artifact directory must not accumulate untracked
# scratch that could be swept into a later commit beside frozen results. The real artifacts are
# manifest*.jsonl / responses_*.jsonl / H1_VERDICT*; anything *_smoke is a throwaway.
results/ladder/*_smoke.jsonl
results/ladder/*.log

# Source control keeps result summaries, checksums, and compact JSON artifacts. Raw per-question
# payloads and logs belong in release assets or an external dataset archive, not in the library
# checkout.
results/**/*.jsonl
results/**/*.jsonl.gz
results/**/*.log
results/**/*.log.gz

# MTRAG generation artifacts. The uncompressed working copies are ~430 MB across six runs, and the
# gzipped pack is still 68 MB. Keep those payloads outside git and use the checksum index in
# results/mtrag_generation/runs/ when restoring an archived copy.
#
# A hash proves a restored artifact is unchanged. It is not a storage location. See runs/README.md.
results/mtrag_generation/*.predictions.jsonl
results/mtrag_generation/*.scored.jsonl
results/mtrag_generation/*.scoring.jsonl
results/mtrag_generation/*.fixed.jsonl
results/mtrag_generation/scored_*.jsonl
results/mtrag_generation/algorithmic/*.jsonl
# Generated by the CI `audit` job's `uv export` step, and by the local reproduction of that job
# documented in CONTRIBUTING.md. It is a throwaway on the CI runner; committing it would ship a
# second, silently-drifting copy of uv.lock.
requirements.lock.txt
