Nyyon · Blog

The self-improving system is just a coworker who grades their own review

A self-improving loop is a coworker who edits and grades their own work at machine speed. What makes it safe is the management structure you build around it before you hand over the keys.

Andrej Karpathy described the pattern for autonomous software improvement cleanly: give a model a frozen evaluation harness, a bounded artifact it can edit, a plain-language description of what better means, and a ratchet that accepts an improvement and rejects a regression. Run it over and over. Keep the gains. The whole thing turns on one rule inside it: the model does not get to rewrite the benchmark. That rule reads like an engineering constraint, but it is a management rule. It is the same one every decent manager runs on a new hire. You grade against a standard you did not set, and you do not get to move the goalposts to make your numbers look good.

The autonomous improvement loop cycling through edit, evaluate, and ratchet against a frozen benchmark.

What Karpathy drew is an org chart, written in code. A worker who can act, a standard the worker cannot touch, and a rule that keeps those two things apart.

The self-improving loop compared to a manager governing a new hire, both keeping benchmark control out of the worker's hands.

I want to follow that argument the whole way down, because there is a recent engineer's write-up about tuning one of these loops that reads, if you squint, exactly like a manager's diary. The lessons in it look like they are about corpora and hold-out sets. Underneath, they are about what it takes to let anything, a person or a system, grade its own work without lying to you.

The confession underneath the write-up

The most honest line in that whole post is the author admitting his loop had a problem: it kept improving against the benchmark without clearly improving the underlying task. The score went up. The work stayed where it was.

That is the oldest failure in the workplace, and it has a face everyone recognizes. The support rep who closes tickets fast by closing them wrong. The salesperson whose pipeline looks incredible while revenue does not move. The employee who nails every number on their review while the actual job goes undone. In each case the number improved, the number was the wrong number, and the person optimized it because that is what you measured them on.

A system that can edit itself and score itself does the same thing, faster and without any guilt about it. Give it a benchmark that is easy to game and it will game it. There is no malice in it. From inside the loop, gaming the benchmark and doing the job look identical, so the loop cannot tell them apart. Telling them apart is your job. Skip that and the loop will improve forever while the work quietly rots.

So every fix that engineer made after that confession reads as a manager solving an employee problem, dressed up in code.

Four engineering fixes reframed as management moves: define done, hide the test, protect invariants, and require sign-off.

Every fix in that post is a manager move in disguise

He moved the metric closer to the user's promise. The original benchmark scored whether the final artifact compiled and passed structural checks. He moved it earlier, to whether the system correctly understood what the user actually asked for. He had been reviewing his employee on the wrong thing the whole time.

"Did you produce something plausible" is a proxy. "Did you understand what the customer needed" is the job. Every operator who has written a review has learned this the hard way: measure the proxy, get the proxy, and the real work goes missing while the dashboard stays green. What he really did was rewrite what done means, before the work started. That is the single most important thing a manager defines, and the single thing most teams skip.

He stopped letting the system see the test. He built a shadow partition. New examples spend time as unseen verification cases before they are ever allowed to influence optimization. When a change improves the main set but fails the shadow slice, that is specialization dressed up as improvement. That is cramming for the exam.

Any manager who has watched someone perform brilliantly on the exact scenarios they trained on and fall apart on a live customer knows this move by heart. You evaluate on the thing they have not seen, because the job is the thing they have not seen. He turned "keep some questions off the study guide" into corpus design.

He protected the things that are not allowed to regress. He added anchor examples: invariants that cannot get worse just because the global average got better. A loop can lift its mean by quietly sacrificing a category that matters disproportionately in real life.

Translate it to people. You do not earn a good review by improving your average while dropping the one account that pays the bills. Every job has parts that are non-negotiable regardless of how good the aggregate looks, and a manager's job is to name them and defend them. He named them. He called them anchors.

And the one that carries the whole thing: he separated evidence from acceptance. Some changes the loop is allowed to accept automatically. Others only produce reviewable evidence that a human signs off on. The production-feedback loop turns real usage into governed evidence rather than raw self-modification. The system gathers the evidence and a human still decides what to do with it.

That is the entire argument in one design choice. He built, in code, the exact boundary you would draw around a new employee: you can act, you can propose, you can show me what you found, and the sign-off on the things that matter has a human name next to it.

A trust boundary showing the system gathers evidence below a line, and a human holds acceptance above it.

So what did he actually build

Strip the vocabulary, corpus admission gates, shadow-first admission, rotating hold-outs, anchor invariants, evidence versus acceptance, and here is what is left.

He hired a very fast employee who could edit their own work and grade their own work. Then he spent months building the thing that stands between that employee and the business: a definition of done written before the work starts, a test the employee does not get to see in advance, a set of results that are not allowed to slip no matter how good the average looks, and a human who signs on anything that cannot be safely automatic.

All of that adds up to a management structure. He drew an org chart for a coworker who happens to be software, and it works for the same reason it works with people: the employee never gets to define what good means, never gets to see the test early, and never gets to accept their own most important output.

The ratchet everyone quotes, accept improvement and reject regression, gets all the attention. The part that actually matters is that the model does not get to touch the benchmark. That single rule is a manager standing between an employee and their own performance review. Take it away and you are left with a very confident coworker marking themselves excellent every quarter while the work quietly falls apart.

The three questions to answer before you ship a self-improving anything

Every operator is about to be sold an agent, a loop, a system that gets better on its own. The pitch is autonomy. The thing they leave out of the pitch is the management structure that makes autonomy safe, because that part is not a product. It is a decision, and it is yours.

Before you turn one of these on, answer the three questions you would ask about any new hire, in this order.

What does done actually mean here? Not what is easy to measure. What the customer was actually promised. When your metric is a proxy, it compiled, it ran, the token cost dropped, the system will optimize the proxy and the real work will go missing behind a green dashboard. Write down what done means, in terms of the user's promise, before you let anything grade itself against it.

Who checks that it is not gaming its own review? There has to be a test the system never trained on, and results that are not allowed to slip no matter how good the average gets. When every example the loop learns from is also an example it is scored on, you have an employee writing their own performance review straight off the study guide.

Who owns the outcome when the score says great and the work is wrong? That day is coming, and when it comes, "the system decided" is not an answer anyone can act on. Some outputs are safe to accept automatically. The ones that matter need a human name between the evidence and the acceptance. If you cannot name that human, the system is not ready to run unattended, no matter how clean the loop looks.

A self-improving system is a coworker with no manager and no conscience, running a thousand times faster than a person. That is either the best hire you ever made or an employee optimizing the wrong number at machine speed while you admire the chart. The difference comes down to whether you did the management work before you handed over the keys.

Karpathy's rule was never really about software. It is the oldest rule there is: you do not get to grade your own review. Build that in first. Everything else is tuning.


← All articles