The science was done. The tool was missing.

Every idea in here is published and years old. Making it something you can switch on, aim at your own work, change while it is running, and take apart.

Rough grey rocks dropping into a wide cobalt whirlpool that narrows into a small pot with a spout: many raw candidates funnelled down to the one that pours.

System map

One loop. A ladder when it stalls. A memory underneath.

Your dataset and the prompt you have now go in; a better prompt and a measured gain against the origin come out. What happens between is one loop, an escalation it climbs only when stuck, and every measurement it has ever taken.

  1. 01 Dataset in Your dataset and the prompt you have now.
  2. 02 Check-in Settles the framing and sets the origin: your current score, measured once, so every later claim is against a real number.
  3. 03 The loop · L1, every round Generate n candidates, score them on your dataset, critique what to fix. Losing candidates are cut early, and the round winner becomes the next parent. Then it goes again.
  4. 04 Best prompt out Prompt and pipeline params, with a measured gain against the origin. Your models are never touched.
When the loop stalls L2 refines the context and changes what L1 attends to. If that stalls too, L3 replans on a new strategic frame. Either one can rewind the lineage and regrow from an earlier round.
Underneath all of it Memory: every measurement, append-only. It feeds difficulty and axis knowledge back into every layer, and compounds across runs.
  • flows forward
  • loops back
  • escalates & rewinds
  • feeds every layer

L4: the optimizer can point at itself. Off‑map.

The last chapter made the case for the loop. This one is about living with one.

Most systems in this family never get that far. There is a name for where they stop: the valley of death, the gap between a result that works and a thing somebody can run. Most of this field is still down there, and not for lack of good ideas.

Crossing it was the work. Not the loop, not the statistics. The friction.

How you drive it

The map shows the machine. It does not show how you get at the machine, which is the half that matters once a run is actually going.

There are two ways in. The first is a conversation: the runner ships as a skill for Claude Code, so starting a campaign is asking for one. It picks the dataset, sets the thing up, and reports back in the chat as rounds land.

The second is visual. A campaign is a tree rather than a line, and you can walk it: every branch, every round, every candidate, and what each one actually answered.

Explainable AI, without the weights

This is a position, not a feature list. Nothing it does is hidden from you:

Many believe explainable AI runs through the weights: stare at the parameters long enough and the reasoning resolves. I would not bet a product on that arriving. Here the explanation is free, because the search never goes near the weights. It works on things that have names. A field, a rule, a branch, a number.

When it tells you why, it is reading back its own reasons rather than composing a story about them. Side effect: you get the write-up a data scientist would have produced, every round, without asking.

Two things fall out of that. The first is the ordering. Samples are not scored in the order you handed them over, they are scored hardest first, because the most discriminating questions separate winners from losers with the fewest asked. The useful accident is that this ranking is exactly the list you want to read yourself: your hardest cases, ranked, for free.

The second is the mask, and it is the one I would show first if I had to pick one. Change your mind about the criterion after the measurements are paid for, and the obvious fear is that you have just thrown the campaign away. The mask answers against the record you already have, re-running nothing: what still holds, what was contingent on the old criterion, and the exact point on each branch where the two part company.

That point is where you branch, and everything above it you keep. It works because a measurement and a judgement are kept apart. What a candidate answered on a sample is a fact and survives you changing your mind. The ranking built on top of it is an opinion, and does not have to.

A search that can go back is a search that can survive a dead end.

Five places friction lives

AlphaEvolve went generally available in July and it is excellent. It is also a platform you adopt. Every hour between reading about something and having it running is a reason for somebody useful to give up, and that is the whole mechanism by which good work goes unused.

Stage What it usually costs Here
Getting it in A project, a scoped evaluator, a process measured in days. It reads what you already run and starts there. An afternoon, most of it spent deciding what a good answer looks like.
Connecting it A different product for local, private and hosted. The machine holding your data, your own network, or across the internet to agents running elsewhere. Same thing, different address.
Extending it Fork it, then maintain the fork forever. A new backend, scorer or dataset is something you add. The extension points are the boring published kind.
Steering a run Submit it, wait, read the verdict at the end. Change the plan while it is running. Or send it back to round twelve and grow a different branch, keeping the one you have.
Changing the strategy A rewrite, so nobody tries a second idea. Swap the model that decides when to stop, re-run the same campaign, compare. Coffee-length.

The last row is the one I care most about, because my strategy is rough in places and nowhere near finished. What I want to be right is the frame: the thing that makes trying a different strategy cost an afternoon instead of a rewrite. Standards get built out of frames like that, not out of anybody’s clever inner loop.

A backbone for your own project

There is a second way to use this, and it is the one I would have wanted five years ago. Take it as the spine of something else you are building.

The unglamorous months are already spent. Sign-in and accounts. Every model call metered, so you know what a run cost and who spent it. A view in the browser that streams while the work happens, and the whole run kept afterwards. That is precisely the part of a side project that kills side projects, and it is done.

It is also deliberately lean, which matters more now that your coding agent is the one reading it. A small tree an agent can hold at once, boring seams, no clever indirection to get lost in. When a part is dead weight for what you are building, removing it is a delete rather than an excavation, so keeping the thing tidy is work an agent can actually do.

It gets cheaper every year

Every part of this is yours to replace except one. The loop is driven by a language model, which is in the project’s name, and that sets the economics as firmly as it sets the results. A campaign is mostly tokens, and tokens keep getting cheaper.

So the price falls on a schedule I do not set and do not pay for. It is already cheap. Next year the same campaign costs less and lands somewhere better, with nothing here rewritten.

Old parts, put together properly

The loop is old. The statistics are old. The tree is from 2017. The assembly is not, and that is the only thing I am claiming.

The shape outlasts the parts. Many candidates, a measurement, a decision, a branch to go back to. It will look like this long after every component inside has been replaced. Ideally by you, and ideally without asking me first.

Start the tutorial Read the source

Next: The loop is the floor, which is two drawings and almost no words: the shape as it stands, and everything that attaches to it without replacing it.

Previously: Simple but effective search, on why the loop is the thing worth betting on in the first place.