## What changed ## Why ## How I verified ## Notes for future me ## Pre-merge checklist - [ ] All tests pass locally (`pytest -v`) - [ ] If retrieval params changed, I re-ran the smoke set and noted the precision@k - [ ] If the prompt changed, I tested it against an "answer not in docs" case to verify it abstains - [ ] No secrets or API keys committed