Code-QA-Bench
A fully automated repository-level code understanding benchmark. Closed-book, code-only, and documented conditions separate genuine code reading from documentation recall and pretraining memorization. The paper reports 528 code-derivable and 100 doc-dependent tasks across ten pinned Python repositories.
- Release status
- Released
- Domain
- Code & Repo Agents
- Total tasks
- 628
- Models evaluated
- 4
- Primary metric
- Normalized mean / 100
Leaderboard
The default view is the paper's primary metric: normalized mean score on 528 code-derivable tasks in the code-only condition. Every value shown comes from paper v1.
Tasks & Verification
This section answers two questions: what the model receives, and how its answer is judged. The leaderboard above aggregates this Task × Verify contract.
628 public tasks
Code-derivable
528 tasks (84%)
Doc-dependent
100 tasks (16%)
528 code-derivable primary tasks and 100 doc-dependent diagnostics across ten pinned Python repository commits.
Each answer is compared with the gold answer and rubric, then scored 0–5 on Accuracy, Completeness, and Specificity.
The primary leaderboard averages code-only scores over 528 code-derivable tasks; 4 models currently span 77.2–89.2.
Back to leaderboardWhere does `ipartfrac` get called, and how does its data flow through `migcdex`, `igcdex`, and `gcdext`?
Where does `ipartfrac` get called, and how does its data flow through `migcdex`, `igcdex`, and `gcdext`?
- 1Identify that ipartfrac is called in cos._eval_rewrite_as_sqrt, not directly in the sin implementation.
- 2Explain that ipartfrac uses functools.reduce with a multiplication function to compute the denominator product.
- 3Explain that complement values are constructed with denom // x and passed to migcdex.
The judge compares each model answer with the gold answer and rubric, scores Accuracy, Completeness, and Specificity from 0–5, then normalizes the result into the leaderboard above.
How does pytest handle finalizer failures during fixture teardown, and how are multiple exceptions from different teardown stages combined?
How does pytest handle finalizer failures during fixture teardown, and how are multiple exceptions from different teardown stages combined?
- 1Explain that FixtureDef.finish() runs all finalizers even when some fail and collects exceptions.
- 2Identify that finalizers are popped in LIFO order.
- 3Identify that multiple failures are wrapped in a BaseExceptionGroup with the exception list reversed.
The judge compares each model answer with the gold answer and rubric, scores Accuracy, Completeness, and Specificity from 0–5, then normalizes the result into the leaderboard above.
What is the role and architecture of `_normalize_path` in xarray's backend system, and where is it used across the codebase?
What is the role and architecture of `_normalize_path` in xarray's backend system, and where is it used across the codebase?
- 1Describe the three overload signatures and the implementation accepting os.PathLike | str | T.
- 2Describe the os.fspath and local-path expansion transformations.
- 3Explain that is_remote_uri detects remote URIs and leaves them unchanged.
The judge compares each model answer with the gold answer and rubric, scores Accuracy, Completeness, and Specificity from 0–5, then normalizes the result into the leaderboard above.
Why is `ogrinspect` split into a public function and a private `_ogrinspect` generator, and how does the management command exploit that design?
Why is `ogrinspect` split into a public function and a private `_ogrinspect` generator, and how does the management command exploit that design?
- 1Explain that _ogrinspect yields model-definition lines while ogrinspect joins them into a string.
- 2Explain why the management command calls _ogrinspect directly before appending the mapping dictionary.
- 3Identify get_func_args(_ogrinspect) as the mechanism used to filter accepted CLI options.
The judge compares each model answer with the gold answer and rubric, scores Accuracy, Completeness, and Specificity from 0–5, then normalizes the result into the leaderboard above.
Analysis
Use score distribution and evidence coverage to show what current results support, and state what they cannot establish yet.
Three experimental conditions
Code-derivable · 528 tasks
Three experimental conditions
Doc-dependent · 100 tasks
Primary-set category scores
Code-derivable · 528 tasks
Data Card
A concise account of what the dataset measures, how it is verified and scored, and whether it can be reused. Exact run parameters live in the technical record.
Code-QA-Bench
A repository-level Python code understanding dataset that separates memorization, source reading, and documentation use through three context conditions.
- Tasks & scale
- 628 repository-level QA tasks
- Coverage
- Python · 10 public repositories
- Verification
- Gold answer + rubric
- Leaderboard metric
- Code-only mean · 0–100
- Public licenses
- Repository MIT · paper CC BY 4.0
- Current version
- Paper v1 · 2026-05-28
528 code-derivable primary tasks + 100 doc-dependent diagnostics
Each repository is pinned to a reproducible commit snapshot
GPT-5.4 scores Accuracy, Completeness, and Specificity
Normalized mean over 528 code-derivable tasks
Task files ship with the repository; no separate task license is declared
Repository snapshot d615139
Four steps summarize how tasks are built, verified, and turned into leaderboard scores.
- 1
Answer first
A documentation chunk sets the topic; a tool-equipped agent explores real source and writes a code-evidenced gold answer before deriving the question and rubric.
- 2
Code-only audit
AST and tokenize remove docstrings, comments, and documentation files, followed by an audit of whether each gold answer remains code-recoverable.
- 3
Three conditions
Each task runs closed-book, code-only, and documented to separate memorization, code reading, and documentation use.
- 4
Three-axis judge
GPT-5.4 scores Accuracy, Completeness, and Specificity from 0-5; normalized per-task scores are averaged equally.