Research · Preprint, September 2026

Where Do Context-Engine Gains Come From?

A Component-Level Decomposition of Repository Retrieval Under Matched Baselines and Audited Exposure

Aayam Bansal, Ishaan Gangwani

Synthetic Sciences

Abstract

Context engines that index a repository and return files to a coding agent report large gains over lexical baselines, but the gains are rarely decomposed: how much is a learned reranker that would help any candidate pool, how much is the engine's own candidate generation, and how much was selected on the evaluation data? We answer this for one open-source engine, Delphi, with a protocol that records for every evaluation case whether development could have seen it, builds a ladder of conventional retrievers from the same embedding model with Delphi's own rerankers and query expansion attached, varies candidate generation and learned reranking factorially, and ablates Delphi's candidate branches one at a time on a fresh, never-scored draw. On three SWE-bench Verified draws that development never saw (62, 98, and 60 instances; sizes fixed before scoring), Delphi's advantage over the full conventional stack lies in its candidate pool: before any reranking its candidates lead by +0.19 MRR and +0.07 Recall@20; the shared rerankers add +0.34 MRR to conventional candidates but +0.19 to Delphi's, so after reranking the MRR gap closes to a tie while the recall gap (+0.09) persists; pooled over the three draws, Delphi's yield-metric leads (+0.06 to +0.09) exclude zero at a three-look-adjusted level and its MRR lead (+0.065) at 95% only. A branch-level ablation on the fresh draw attributes the candidate-pool advantage mostly to Delphi's chunking and index (+0.15 MRR for the same two-branch fusion) and its vector-heavy weighting (+0.06), with the four structural branches adding +0.06 jointly and no single branch more than 0.03. On a repository-disjoint commit-to-files set the pattern inverts: Delphi's pool has lower recall than two-branch fusion and the rerankers add nothing to either pool, so the reading “the reranker does the work” holds only for issue queries. Matched output contracts turn an apparent hosted-engine lead on documentation into a four-way tie; re-indexing a corpus from scratch reproduced Delphi's ordered top-20 on 1 of 18 cases; and a preregistered executable pilot (62 instances, two trajectories each) resolves no seed effect and audits its own seed. We release code, per-case artifacts, agent trajectories, and the exposure ledger.

1What the protocol does

A margin over BM25 does not say whether an engine's design or a learned reranker that would help any candidate pool produced it, nor how much of it was selected on the evaluation data. The protocol separates these by

Every number is generated from persisted run artifacts by scripts in the released repository, and failed or invalidated runs are kept for the audit trail.

2Findings

Measured on three SWE-bench Verified draws that development never saw (62, 98, and 60 instances; sizes fixed before scoring) and one repository-disjoint commit-to-files set.

The paper claims no state of the art; several findings are null or negative for the engine we built, and they are reported with the same prominence as the positive ones.

3Artifacts

ArtifactWhere
PaperPDF, 30 pages
Code and resultsaayambansal/delphi-benchmark: protocols, every run artifact, the harness, the exposure ledger, journals, and the paper source
Agent trajectoriesHugging Face dataset: 620 mini-SWE-agent runs with every model call, harness verdicts and logs, and a browsable index
Evaluated engineDelphi at revision 91d76c1

Repository corpora (58 repositories, 425 snapshots) are re-cloned from public GitHub at the recorded commits by a script in the repository rather than redistributed. The trajectories, results, and analyses are released under CC BY 4.0.

Citation

@article{bansal2026contextengine,
  title   = {Where Do Context-Engine Gains Come From? A Component-Level Decomposition of
             Repository Retrieval Under Matched Baselines and Audited Exposure},
  author  = {Bansal, Aayam and Gangwani, Ishaan},
  year    = {2026},
  url     = {https://trydelphi.ai/research},
  note    = {Preprint}
}