DocuMind — Evaluation-First RAG
Retrieval-augmented generation treated as a measured system, not a demo: a 100-question hand-validated golden dataset (71 single-hop · 14 multi-hop · 15 unanswerable), a three-metric evaluation harness, and a CI gate that fails any pull request that regresses retrieval. Multi-hop retrieval started at 0.36 recall@10 — tracing every miss showed the right passage was always retrieved, just ranked below the cutoff — so I added a FlashRank cross-encoder reranker fused with the dense ranking (RRF), lifting multi-hop to 0.57 while single-hop held at 0.97. Naive reranking hurt single-hop; rank fusion is what kept both.