Model D vs Graphify · 12 full repositories, 285 real issues, no API

Finds the right file.
On fewer tokens.

Graphify turns a codebase into a knowledge graph that an AI can query. We indexed 12 whole repositories with both tools and asked them 285 real SWE-bench Lite issues. With its code scope, Model D listed the file the fix changed in its first five 176 times from the issue title, against 131 for Graphify, and handed the AI about 2.4× fewer tokens. The test plan was fixed before it ran.

176 vs 131of 285 real issues in 12 repositories, asked by their title: the fixed file was in the top five
183 vs 122the same issues, asked by their title plus the first 400 characters
2.4×fewer tokens handed to the AI per issue: about 650 against about 1,600

Results

Is the fixed file in the top five?

Each issue is a real bug from SWE-bench Lite, and the answer is the file its official fix changed. Both tools index the whole repository at SWE-bench Lite's snapshot: code, tests and docs. Model D's code scope leaves documentation out of the ranking. Its full scope, which ranks documentation too, is shown as well. Bars are drawn to scale, as a share of the 285 issues.

Model D 0.2.2, code scopeModel D, full scopeGraphify 0.9.87

Issue title

285 issues, asked the way an agent would ask

Model D, code scope176 of 285 · 62%
Model D, full scope117 of 285 · 41%
Graphify131 of 285 · 46%
0%50%100%

Title + 400 characters

The same issues, with the start of the issue text

Model D, code scope183 of 285 · 64%
Model D, full scope157 of 285 · 55%
Graphify122 of 285 · 43%
0%50%100%

Top one, three and five

QueryCode scopeFull scopeGraphify
Issue title80 / 154 / 17632 / 80 / 11778 / 115 / 131
Title + 40096 / 161 / 18364 / 129 / 15767 / 99 / 122

Hits in the top 1 / 3 / 5 of 285. In the top five on titles, the code scope finds 72 issues Graphify misses, and Graphify finds 27 it misses (exact McNemar p = 0.000007). On title + 400 it is 82 against 21.

Fixed before it ran

The full scope lost to Graphify on titles, because documentation filled about half its top five. We added the code scope for that, then fixed the plan before running it. The plan's five predictions, the runner and the scorer were hashed first. All five predictions held.

By repository, the code scope is ahead in 10 of 12 on each query. Graphify is ahead on seaborn (4 issues), on flask (3 issues, titles) and on xarray (5 issues, title + 400), and requests ties.

The plan · results · every row and script

Earlier, smaller tests

Model D 0.2.1, full scope, against Graphify 0.9.86. The Django set indexes only the django/ code package, so there was no documentation to crowd it.

SetModel DGraphify
Django package, title (114)54 / 74 / 8431 / 46 / 54
Django package, title + 400 (114)63 / 84 / 9339 / 53 / 53
FastAPI app, 100 questions32 / 61 / 7516 / 29 / 36

Tokens

Less to read, and the right file higher.

Tokens per issue are what each tool hands the AI to read: the length of its answer divided by four. Graphify's query answer runs up to its default 2,000-token budget. Model D's is a short ranked list of the places to look. In the earlier, smaller tests, it handed over 2.0–3.7× fewer tokens.

Model D, code scopeModel D, full scopeGraphify
Issue title · Model D, code scope~634 tokens
Issue title · Model D, full scope~524 tokens
Issue title · Graphify~1,520 tokens · 2.4×
Title + 400 · Model D, code scope~700 tokens
Title + 400 · Model D, full scope~620 tokens
Title + 400 · Graphify~1,652 tokens · 2.4×
01,0002,000 tokens

Where it's a tie

Memory over long conversations: level.

LOCOMO is the benchmark Graphify publishes for memory retrieval: find the dialogue turns that answer a question about a long conversation. Each harness has a strong baseline, hybrid search (BM25 plus embeddings, fused). Both tools land level with it, so we call it a tie, not a win.

Our harness · recall@10 · 1,536 questions0.657 vs 0.655

Model D, cold, against hybrid search. The difference is +0.002.

Graphify's published table · recall@100.497 vs 0.493

Graphify against hybrid search, in its own harness, which is not public. The difference is +0.004.

The two harnesses score BM25 differently, so raw numbers across them are not comparable; each tool is compared with its own harness's hybrid baseline. Model D's learning was not used: LOCOMO has no repeated questions.

Method

Same snapshot. Same questions. No model.

The code

Twelve Python repositories from SWE-bench Lite, from Django and sympy down to flask, each at the newest base commit its issues use. The whole repository is indexed. Of 300 issues, 285 are scored: those whose fixed file exists in the snapshot.

Graphify

Version 0.9.87, which includes our seed-order fix. graphify update <repo> --no-cluster builds the code graph (tree-sitter, no LLM), written outside the repository. Queries use the defaults: breadth-first, depth 2, a 2,000-token budget. Files count in the order it prints them.

Model D

Version 0.2.2. ocm build <repo> builds the index, and ask runs with "scope": "code", which leaves out the documentation files listed in ocm.units.DOCS, and with the full scope. Files count in rank order. Fully offline, with no API calls.

Strict, and corrected

Only files a tool returns as results count. One analysis, the shipped readout filtered to code files, was seen before the plan was fixed; the plan says so. An earlier run of ours left Graphify's output inside the repositories, where Model D indexed it. We rebuilt both tools' indexes and report only the clean run.

Limits

Where it doesn't win, and what this does not show.

Graphify does more than search. It builds graphs from docs, papers and images, draws them, finds communities, and serves them to agents over MCP. We compared one job: finding the file a fix changed.

Where Model D doesn't win

Its full scope, which ranks documentation too, lost on titles: 117 vs 131. With the code scope, top-1 on titles is about even, 80 vs 78. Graphify is ahead on three small repositories. All 12 repositories are Python.

Not tested

Graphify's LLM extraction of documents, papers and images. End-to-end answer quality with an agent on top of either tool.

Beyond finding files

And it learns.

Every Model D number above comes from its cold index: nothing learned yet. In use, each question Claude has to explore becomes a lesson: the question's vector attached to the code it cited. The next question that means the same thing, in any words, costs one read. These were measured on the Claude API against Claude working alone.

Learns

1,854 of 1,865 explorations left a lesson

Across every run that recorded it. Data

Reuses

A learned question costs $0.0005

84 of 114 reworded bug reports were answered by one read of learned code, and 81 were right. Data

Shares

A team's saving grew from 2.66× to 3.17×

Five roles, 100 questions, three runs: teammates' repeats cost 3.49× less. Plan

Stays safe

57 misleading lessons, 0 false reads

The cheap read never answered from a wrong lesson. Data

Back to Graphify

What we find goes upstream.

Graphify is open source under Apache-2.0, and the comparison turned up ways to improve its query. Both changes have shipped: one in Graphify 0.9.87, the other in 0.9.88.

Shipped in Graphify 0.9.87

Seed order, Graphify-Labs/graphify#4358

Orders the query's start nodes by how strongly they match, not alphabetically. On the earlier Django set (title + 400 characters) it lifted Graphify's top five from 53 to 63 of 114. The 285-issue comparison above runs on 0.9.87, with this fix in. Released on PyPI as graphifyy 0.9.87, commit d3f8687.

Shipped in Graphify 0.9.88

--seed, Graphify-Labs/graphify#4289

Lets graphify query start its traversal at nodes the caller names, so another tool's ranking can point Graphify at the right place. Released on PyPI as graphifyy 0.9.88.

Reproduce

Every number has a script.

The questions, the snapshots and the scoring are public. Model D is open source under Apache-2.0.