neuralmind.uk / Does NeuralMind earn its place on your repo? Edit this page on GitHub ↗

Does NeuralMind earn its place on your repo?

Best for: anyone who installed NeuralMind a while ago and now has to say whether it’s helping, including the agent that installed it. Also teams being asked to keep paying for it.

Primary goal: an answer you could defend to a skeptical reviewer, built from your own past incidents and a read-only A/B of the synapse layer (v4.14.0+).

The easy way to judge a tool you chose yourself is to run a few queries, see the right symbols come back, and call it a win. A NeuralMind user did exactly that, then had a second agent review the claims adversarially. The verdict: the retrieval demos proved the mechanism, not the outcome. Token ratios were measured against pasting whole files, the easiest baseline there is. The “learns over time” claim rested on a store that had recorded 0 transitions in two months. And the agent grading the tool was the one that had installed it.

All fair. This walkthrough is the cheapest test that answers them.


1. Turn past incidents into gold questions

You already know the answers to your last few incidents: the OOM, the NaN loss, the worker that kept getting killed. Each one is a question with a known gold file. Write them down in .neuralmind.eval.yaml:

- q: worker gets killed under load with exit code 137
  gold: [worker/limits.py]
- q: eval loss is NaN while train loss looks fine
  gold: [train/data_split.py]
- q: out of memory computing the loss with a large vocabulary
  gold: [train/losses.py]

Two rules keep this honest:

Ten questions is a start, not a sample. Keep adding.

2. Score it

neuralmind eval .
NeuralMind eval — myrepo (10 questions, read-only)
  hit@1 40% · hit@5 70% · MRR 0.52
  avg context 1,240 tokens · 5.8× vs gold files · 940.2× vs all indexed code (1,165,812 tokens, measured)

(Illustrative numbers.) hit@5 is the fraction of incidents where the file that fixed it was in the top five the agent would have been given. That’s the outcome-adjacent number: if it’s low on your own incidents, a big token ratio doesn’t matter.

Compare it with what you’d have done without NeuralMind. For each question, run the grep you would actually have typed and see whether the gold file is in the first five files it lists. If grep finds them just as often, keep grep.

3. A/B the synapse layer

The synapse layer is the part that’s supposed to improve with use. Measure it instead of assuming it:

neuralmind eval . --synapse-ab
  synapse recall off: hit@1 30% · hit@5 70% · MRR 0.46
  synapse recall moved 2 question(s) up, 0 down, 8 unchanged · hit@5 0 won / 0 lost (exact McNemar p = 1.00)
  synapse layer read: 3,612 edges, seeded and learned (usage-learned: 0 LTP edges, 0 transitions)

(Illustrative.) Both runs use the same questions and the same index, and both are read-only. The only difference is that the second run switches synapse recall off (NEURALMIND_SYNAPSE_INJECT=0). How to read it:

4. Watch whether it compounds

Every --synapse-ab run is stored with the size of the layer it read. After a few weeks:

neuralmind eval . --report
Synapse recall on vs off (`--synapse-ab` runs; LTP edges and transitions are what usage taught it):

| Date       | Commit  | Edges | LTP | Transitions | hit@5 off → on | MRR off → on | Up / down | p (hit@5) |
|------------|---------|------:|----:|------------:|---------------:|-------------:|----------:|----------:|
| 2026-10-12 | a1b2c3d | 3,612 |   0 |           0 |      70% → 70% |  0.46 → 0.52 |     2 / 0 |      1.00 |
| 2026-11-09 | e4f5a6b | 5,980 | 118 |         214 |      70% → 80% |  0.48 → 0.61 |     4 / 1 |      0.50 |

(Illustrative.) “Compounding” is a claim about this table: the on-minus-off gap should grow as LTP edges and transitions grow, since those are what usage adds (the first row’s gap is the seeded structure’s). If they grow and the gap doesn’t, the learning isn’t paying for itself on your repo, and you can say so with numbers. Either way, you’ll have the evidence a reviewer would ask for.

5. Before trusting any answer, check the index is current

A stale index answers just as confidently as a fresh one. Two guards:

neuralmind init-hook .     # rebuild after commits (and pulls, merges, branch switches, v4.13.0+)
neuralmind health .        # exit 1 when the index is behind the files

Run health before the eval too: scoring a stale index measures the index, not NeuralMind.


What this doesn’t tell you

Even a good hit@5 on your incidents is still retrieval: the right file was in the window. It doesn’t measure whether the agent then fixed the bug faster, or whether a small window left out a caveat a whole file would have shown. A proper outcome test solves real tasks with and without NeuralMind and compares time and errors. Nobody has published one for NeuralMind yet, including us.

The potential use case: a running incident log that grades its own tools

Make “add the eval question” a step in your incident template, and run neuralmind eval . --synapse-ab in a weekly job. Over a quarter you get a pre-registered record of how often the retrieval layer pointed at the fix before anyone knew what it was. That is evidence for or against keeping any retrieval tool, not only this one.

If you’re willing to share what you find, good or bad, the field report form asks for the same numbers: stats, doctor and the --synapse-ab lines, not your code or your questions.

Related: Measure retrieval on your own repo · A/B-test a ranking change · Recover from a stale code graph · The honest public benchmark · Learning Guide: what trains which part · Release notes v4.14.0