Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

review_replay: optional judged recall over the credited hits

Open
#291 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
34/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
python

Research direction

Start by reading contract §4.5 and §9, then trace how repo compare reads metrics and how dokimi.llm makes judge calls. The proposal also depends on grade.json details.matches from a separate change, so check that data is available before implementing. Done means the command writes hits_judged.json per cell with a fake LLM in tests, repo compare reads recall_judged, and both contract sections explain its limits.

Written by the indexing model from the issue text.

Description

Problem

dokimi:review_replay credits a human review thread to the nearest finding on the same file within window lines, one to one. It checks location only, on purpose: the grader is deterministic and runs on the image's standard-library python3 (contract §4.5). So a finding that merely sits near a thread gets credit.

The dokimi report on a replay of IntelPython/dpnp#3099 (26 tasks, 156 runs, 210 credited thread hits) quoted credited threads as evidence of what the guidance catches. An audit read the pairs behind them:

  • pr3098-t2: the thread asks to add a TODO. The credited findings complain that the TODO is repeated five times and has no issue URL. pr3055-t9 and pr3128-t1 look similar.
  • pr3066-t1: one of its two credited findings is about something else (deprecating before removing).

Chance credit also grows with the number of findings. The guidance arm reported more findings (5.26 vs 4.37 per review), so location-only recall can favour it. A list of "threads the guidance made the agent catch" needs each pair read.

Proposal

An optional step after grading, outside the grader, for example dokimi repo hits judge <batch> --judge-model <id> --judge-provider <p>:

  • Input: for every credited pair it reads the thread's comment and the finding's text. They come from grade.json details.matches, which a separate change adds.
  • Judgment: a judge model labels each pair same point, related or unrelated. The call goes through dokimi.llm, as the architecture requires.
  • Output: a hits_judged.json per cell, with each label and recall_judged: the threads whose pair is same point, over all gold threads. repo compare reads it as a measure, for example --metric judge:recall_judged, next to recall.
  • What it can and can't fix: only credited pairs are rescored. So recall_judged ≤ recall, and a finding outside the window that does raise the thread's point stays uncredited.
  • Cost on that batch: 210 pairs, roughly $0.5 with a small judge or $3 with a mid-size one.

Open questions

  • Judge model: a different family from the model under test, as novelty requires? (arms run does not check.)
  • Calibration: a person labels a sample of pairs, and the step reports agreement before any judged figure is quoted. How large a sample?
  • Uncredited findings: should near-misses (a finding on the same file outside the window) be judged too, so judged recall can also rise?
  • Ties: three labels or two?

Done when

The command runs over a batch with a fake LLM in the tests and writes hits_judged.json per cell. repo compare reads recall_judged. The docs (contract §4.5 and §9) say what judged recall is and what it is not.

Dominant language
Python
Stars
9
Forks
9
Avg merge
1d 7h
Merged PRs (30d)
249

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from intel/dokimi

All issues in intel/dokimi

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.