# Retrieval battery — phase 119 (task 06, D6) + phase 162 (task 04, D5),
# run against the 1,000-doc live replica:
#   uv run python -m scripts.eval_retrieval --from-file tests/fixtures/retrieval_battery.txt
#
# Gate (per the phase overview, post-phase measured numbers):
#   1-3. each name question's suggested top-5 contains its canonical doc:
#        gitea  -> deploy/Deployments/reeseapps/gitea/README.md (rank 4)
#        forgejo-> 5/5 forgejo-tree docs, README #1
#        gateway-> deploy/Deployments/reeseapps/gateway/README.md (rank 3)
#   4. the 2026-09-05 incident regression: a qwen3.8-27b quadlet stays in
#      the suggested top-5 (the digit-bearing prefix rule, unchanged).
#   5. deflection sanity: the out-of-KB question's gate verdict + fts
#      count match the pre-phase replica run (HIGH, fts_hits=5) — the
#      name-hit change must not move it.
#
# Phase 162 appends the Besta pair (the 2026-10-07 live miss). Gate: the
# suggested top-5 must contain the IKEA doc — ASCII filename
# `ikea_instructions/besta-frame-white__AA-1272068-11-100.pdf`, body that
# spells the product `BESTÅ` only — for BOTH spellings: the accented one
# needs the phase-162 question-side fold (D1) to bridge ASCII filename ←
# accented question, the ASCII one is the phase-119 path (regression).
# Either way ASCII `besta` documents must not outrank the doc that names
# the product.
#
#   SKIPPED LOUDLY on the local replica (the phase-140 precedent): the
#   2026-09-05 snapshot carries NO `ikea_instructions`-class source —
#   `grep -c -i ikea data/bor_live_kb_replica.dump.sql` = 0, and
#   `SELECT DISTINCT source FROM documents` after the restore lists the
#   sources without it (verify, don't assume). The two questions still
#   run and must behave like any out-of-KB ask (no crash, no false
#   grounding on a doc that never named the product); the gate on the
#   rank itself can only close on a KB that has the source (owner's live
#   KB). The fixture that DOES reproduce the miss end-to-end is
#   tests/e2e/test_search_recall_small_sources.py over
#   tests/fixtures/recallkb (pre-fix ranks measured there, both
#   directions).
How do I deploy gitea?
How do I deploy forgejo?
How do I set up the gateway?
Do you have notes on the qwen 3.8 27b model?
What is the capital of Mongolia?
How do I build a Besta?
How do I build the BESTÅ?
