Skip to content

eval: correct two question-set expectations found wrong by hand-audit - #29

Merged
swati510 merged 1 commit into
masterfrom
eval/audited-question-expectations
Jul 30, 2026
Merged

eval: correct two question-set expectations found wrong by hand-audit#29
swati510 merged 1 commit into
masterfrom
eval/audited-question-expectations

Conversation

@swati510

Copy link
Copy Markdown
Contributor

precision@high was 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

Where does the repo scan stop itself from descending into nested git repositories?

Expected core/fs_walk.py. The tool answered core/workspace/scanner.py, which genuinely does this — "Stops descending once a .git boundary 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

Where does get_answer run its retrieval?

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

  • q030 — "how is a file assigned to a layer when the knowledge graph has none for it". generation/layers.py::infer_layer says verbatim it is "the fallback used when the knowledge graph has no layer for a file". The tool cited tool_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.
  • q047 — asked why a config-looking file is protected from the deletion-ready tier; the tool cited two actual config files and explained that they are entry points, rather than dead_code/risk_factors.py where the rule lives. Adjacent-but-wrong page, high confidence.
  • q082 — the answer names the expected file in its prose, with the right symbol, and cites two others. Retrieval found it; citation dropped it. The counter added in eval: keep the answer text, and count pages named in prose but not cited #28 is what makes this visible without a re-run; its "blocked directories" half is separately wrong, pointing at dead-code path globs rather than 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_*.py133 passed.

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.
@repowise-bot

repowise-bot Bot commented Jul 29, 2026

Copy link
Copy Markdown

✅ Health: 9.9 (unchanged)

📋 At a glance
1 hotspot touched. Scoped to tests.

🔎 More signals (1)

🔥 Hotspot touched (1)

  • tests/test_answer_eval_questions_file.py — 1 commits/90d, 0 dependents · primary owner: Swati Ahuja (100%)

📊 Full report · ⭐ Star Repowise · 📥 Install bot · Last updated 2026-07-29 17:35 UTC
Silence on a single PR with [skip repowise] in the title · Per-repo toggle on repowise.dev/settings?tab=bot

@swati510
swati510 merged commit dbee94d into master Jul 30, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant