run 5, nine recorded runs
What it measured
Twelve questions, answered by three arms, counted in approximate tokens.
The harness does no sampling, no model calls and no randomised ordering, so all token counts, byte counts, call counts and derivability flags are byte-identical across run 4's four recorded runs and run 5's five — nine in all, including one after rm -rf node_modules dist && npm ci, and five taken across run 5's work with the later ones after each fix landed. The spread on the score is exactly zero by construction. That rules out flakiness in the harness. It rules out nothing about the world.
the headline
3,486 against 16,495, at 12 of 12 derivable
Against a scripted agent using native tools, a 78.9% reduction. Against the cheapest possible native sequence — an oracle handed the answer in advance, which is a floor rather than a competitor — 64.0%. Charge the 2,000-token session preamble the native arms never pay and it is 5,486, still under both.
Derivability is not the arm's own assertion. Each scenario declares ground-truth anchors as a file plus a substring, resolved to a line number against the committed fixture at run time; an arm scores only if every anchor's line reached context with its file and line number attached, and the treatment's claimed ranges are re-read from the fixture and checked.
| scenario | baseline | oracle | DaiVELOPER | vs baseline |
|---|---|---|---|---|
| def-format-currency | 1,567 | 52 | 132 | −91.6% |
| decoy-disambiguation | 1,567 | 109 | 132 | −91.6% |
| last-declaration-of-long-file | 1,068 | 96 | 91 | −91.5% |
| exports-of-long-file | 7,789 | 6,851 | 957 | −87.7% |
| module-exports-ledger | 448 | 448 | 97 | −78.3% |
| declined-charge-behaviour | 680 | 120 | 221 | −67.5% |
| call-chain-checkout | 1,592 | 1,000 | 628 | −60.6% |
| interface-shape-settlement-report | 191 | 84 | 76 | −60.2% |
| return-type-reconcile-settlement | 540 | 392 | 341 | −36.9% |
| error-to-status-mapping | 532 | 303 | 382 | −28.2% |
| callers-of-post-ledger-entry | 291 | 103 | 234 | −19.6% |
| cross-module-usage-audit | 230 | 119 | 195 | −15.2% |
| total | 16,495 | 9,677 | 3,486 | −78.9% |
the composition
The aggregate hides its own composition
95.2% of the margin over the native floor comes from one scenario of twelve. Remove exports-of-long-file and the remaining eleven total 2,529 against the floor's 2,826 — 10.5% under it before the preamble, and above it once the preamble is charged. Against the baseline the concentration is milder and still real: one scenario is 52.5% of the win and three are 74.6% of it.
So: decisively cheaper than an agent grepping and reading files. Whether it is cheaper than the best possible native sequence rests, on this benchmark, on a single question — and a twelve-scenario benchmark with one dominant term is a thin base for a general claim.
six of twelve
Where it loses to the floor
Against the baseline, nowhere: all twelve scenarios are negative, from −15.2% to −91.6%. Against the oracle, six are positive. The pattern is legible — it wins where structure cannot be recovered from text, and loses where the answer is one line and the questioner already knows its exact shape.
- def-format-currency, +153.8%
- The oracle greps
^export function formatCurrency\(and gets one line.find_symbolreturns three declarations, marks the near-miss and states what it scanned. It costs 80 more tokens to rule the decoys out than an oracle spends knowing in advance there is nothing to rule out. - callers-of-post-ledger-entry, +127.2%
- Grep is genuinely good at a well-chosen call-site pattern. What
find_callersadds is the enclosing function per site and an auditable count of what it excluded. Unchanged since run 2 and probably close to irreducible. - declined-charge-behaviour, +84.2%
- The oracle does not search at all: it reads eight lines at an offset it was told. Nothing that has to find the branch can compete with that, which is precisely why the oracle is a floor and not a competitor.
- cross-module-usage-audit, +63.9%
- The same shape as the callers scenario, against a narrower glob. Structure costs what structure costs.
- error-to-status-mapping, +26.1%
- The one remaining two-call sequence: one call to locate, one to read. A combined locate-and-read would remove the first response. Named as the most likely remaining win in run 3 and not done.
- decoy-disambiguation, +21.1%
- The same call as
def-format-currency. The oracle's grep has to be wider here, so the gap nearly closes.
Not '78.9% cheaper'. 78.9% cheaper than an agent that has to search, and structurally capable of things no grep can do, at a small premium over a grep that already knows the answer. That second condition is the oracle's defining privilege, and no real agent has it.
what the machine pays
The tokens are the model's cost, not the whole cost
The treatment opens more files than the baseline and spends four times the wall clock, because prefilter-then-parse has to read every candidate file in order to rule it out. That is the trade the project makes on purpose: milliseconds of local CPU for thousands of tokens of model context. At 118 ms for twelve scenarios it is invisible; on a repository two orders of magnitude larger it might not be.
| arm | file opens | bytes off disk | wall clock |
|---|---|---|---|
| baseline | 552 | 872,530 | 28.5–29.7 ms |
| oracle | 197 | 373,497 | 9.3–9.8 ms |
| DaiVELOPER | 588 | 830,331 | 116.1–118.3 ms |
| repository | cold | warm | speedup |
|---|---|---|---|
| bench/fixture, 45 files · run 5 | 22.7 ms | 4.4 ms | — |
| bench/fixture, 45 files · run 4 | 26.9 ms | 4.20 ms | 6.4× |
| unrelated repo, 120 files · run 4 | 97.7 ms | 6.64 ms | 14.7× |
Run 5 made the warm index slower and says so. Storing each file's import and re-export bindings — the thing that makes call attribution possible — grew the cache from 56 KiB to 75 KiB, and the warm path is dominated by reading that file: a 7.5–10.5× warm speedup across run 5's five runs, against run 3's 17.7–19.1×. Cold build 8.7–9.6 ms, warm 0.9–1.2 ms, on 45 files.
End to end through a fresh server process, where grammar compilation dominates, that regression is invisible — which is the table above. Both are on this page because quoting whichever one flatters is the thing this site is trying not to do.
threats to validity
Written trying to break the result
- the scenarios chose themselves
- Twelve questions, written by the people building the thing that answers them, against a fixture written by the same people. No held-out set, and no third party wrote a single question. RESULTS.md calls this the largest threat and does not resolve it. The one declared control —
module-exports-ledger, where no win was expected — came in at −78.3%. - the fixture was built to be hard to grep
formatCurrencyon 64 lines across 21 files, a 605-line file with its answer last, a four-hop call chain and two decoys, all asserted by the generator. The properties are documented up front rather than discovered afterwards, and the token numbers have still only ever been measured on this one repository.- a proxy tokenizer stands in for the real one
- Every count is
o200k_base, which is not Claude's tokenizer. Ratios measured the same way are meaningful; absolute values are not. The byte ratio, −78.0%, tracks the token ratio closely enough that the conclusion does not hinge on it — which does not eliminate the concern. - no model was in the loop
- The metric is whether the evidence reached context, not whether a model reading that context answers correctly. A structured response could in principle be harder to read than raw file text and this benchmark would not notice. The live A/B has never run: the CLI in that container returns Not logged in.
In order: scenarios written by someone else against a repository nobody here chose; a live A/B with a real model and real usage counts; the benchmark run on a second repository; an adversarially-tuned baseline, which PROJECT.md explicitly invites and nobody has taken up.
Until at least the first two exist, the defensible claim is narrow: on twelve questions of its own choosing over a fixture of its own construction, DaiVELOPER delivered the same evidence as a scripted native-tool agent for 21% of the approximate tokens, and did so reproducibly.