eval: correct two question-set expectations found wrong by hand-audit - #29
Merged
Merged
Conversation
Read every confident answer that scored zero recall. Two of them were the question set being wrong, not the tool. q002 asked where 'the repo scan' stops descending into nested git repos and expected the file walk. The workspace scanner also stops at a .git boundary, and that is what the tool answered. One question, two correct files, one expected path. It now names the walk option, which only the file walk has. q015 asked where get_answer runs its retrieval and expected the re-ranking module - whose own docstring says it operates on hits 'after the hybrid-retrieval stages in _answer_pipeline'. The tool answered with the pipeline and was scored wrong for being right. It now asks for what the expected module actually does. Both corrections are pinned in a test with the reason next to the text, so a later edit cannot quietly restore either original. The other confident misses audited in the same pass are genuine and are left alone: two answers cite an adjacent page and explain it instead of the mechanism asked for, and one names the right file in prose while citing two others.
|
✅ Health: 9.9 (unchanged) 📋 At a glance 🔎 More signals (1)🔥 Hotspot touched (1)
📊 Full report · ⭐ Star Repowise · 📥 Install bot · Last updated 2026-07-29 17:35 UTC |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
precision@highwas 0.937 — four of 63 confident answers had no expected page in front of them. That figure is only worth quoting once someone has read those four, so I read all of them (five, in fact: the two runs disagree on one question each, so the union is q002, q015, q030, q047, q082).Two of the five are the question set being wrong, not the tool. Those are corrected here. The other three are genuine and are deliberately left alone.
q002 — one question, two correct files
Expected
core/fs_walk.py. The tool answeredcore/workspace/scanner.py, which genuinely does this — "Stops descending once a.gitboundary is found (no nested repos)". One scan walks a repo's files, the other discovers repos in a workspace; both stop at.git, and the question named neither. Reworded to ask for the walk option (prune_nested_git), which only the file walk has.q015 — marked wrong for being right
Expected
tool_answer/retrieval.py, whose own docstring opens: "These operate on the candidate hit list after the hybrid-retrieval stages in_answer_pipeline". The tool cited_answer_pipeline.py. It was correct and scored zero. Reworded to ask for what the expected module actually does — the domain penalty and intersection boost.Left alone as genuine misses
generation/layers.py::infer_layersays verbatim it is "the fallback used when the knowledge graph has no layer for a file". The tool citedtool_context/kg.py::_find_layer_for_file, which only looks a file up in the graph's layers, and hedged in the prose ("presumably", "the full source body is not provided") while still returning high in one run.dead_code/risk_factors.pywhere the rule lives. Adjacent-but-wrong page, high confidence.LanguageRegistry.blocked_dirs.Tests. Both corrections are pinned by a parametrised test carrying the reason next to the corrected text, so a later edit cannot quietly restore either original. Reverting only the JSONL fails both; with it,
tests/test_answer_eval_*.py→ 133 passed.