Scope-Guard
Codex darf nur Dateien aus einer Allowlist anfassen — ein Diff, der ausschert, wird verworfen, bevor er überhaupt gemessen wird.
evolab mutiert Frontend-Code mit Codex und misst jeden Schritt mit Lighthouse. Übernommen wird eine Änderung nur, wenn sie messbar verbessert — ohne eine andere Metrik zu opfern.
evolab — evolutionäre Optimierung mit objektivem Fitness-Signal.
Privates Repository. Mechanik und Ergebnisse sind hier öffentlich dokumentiert — der Code bleibt geschlossen, ein Walkthrough ist auf Anfrage möglich.
Ein Agent, der seinen eigenen Output bewertet, ist ein schwacher Richter — er neigt dazu, sich selbst recht zu geben. Die Frage hinter evolab war: Was passiert, wenn die Bewertung von außen kommt, messbar und unbestechlich?
evolab stellt Codex die Aufgabe, eine Oberfläche zu verbessern, und überlässt das Urteil komplett Lighthouse. Performance und Accessibility werden gemessen — nicht behauptet.
Das Ergebnis ist ein evolutionärer Loop: mutieren, messen, selektieren, wiederholen. Übernommen wird nur, was den Test der Gegenseite besteht — und das ist überraschend oft eben nicht der Fall.
Der Kern ist ein genetischer Loop mit einem ungewöhnlichen Mutations-Operator: einem Sprachmodell. Codex erzeugt eine Variante, Lighthouse misst sie, und eine harte Selektionsregel entscheidet, ob sie bleibt.
Die Selektion ist hart: Eine Mutation muss mindestens eine Metrik echt verbessern UND darf keine andere unter die Toleranz drücken. Wähle ein Szenario, um zu sehen, wie entschieden wird.
a11y regrediert (98→93) — eine gehaltene Performance rettet das nicht. Genau der reale loop-short-Iter-2.
Die Zahlen stammen aus echten Läufen gegen das DCO-Dashboard, nicht aus einer Demo. Inklusive der Schritte, die verworfen wurden — die machen die Disziplin erst sichtbar.
3 akzeptierte Mutationen über 10 Iterationen — 4 Codex-Timeouts ehrlich mitgezählt. a11y stieg dabei von 98 auf 100. Stand 06/2026.
Im loop-short-Lauf wurden zwei Mutationen verworfen: eine, weil sie Accessibility opferte (98→93), eine, weil sie Performance kostete (85→84). Und im fresh-Lauf scheiterten zwei Kandidaten mit Performance 86 an der Jitter-Toleranz — 86 lag nicht weit genug über dem Bestwert 85, um als echter Fortschritt statt Messrauschen zu zählen.
Ein Agent, der selbst Code schreibt und sich selbst bewertet, braucht Leitplanken — sonst optimiert er ins Leere oder ins Unsichere. evolab zieht diese Grenzen explizit.
Codex darf nur Dateien aus einer Allowlist anfassen — ein Diff, der ausschert, wird verworfen, bevor er überhaupt gemessen wird.
Die Selektion rechnet mit Messrauschen: tol = max(1, jitter). Eine Mutation muss über das Rauschen hinaus verbessern, nicht nur knapp darüber.
Der Codex-Aufruf läuft kontrolliert in einem abgegrenzten Work-Verzeichnis, nicht frei auf dem Zielsystem.
Output sind nur Reports und ein best-ref zum menschlichen Review — die Maschine schreibt nichts ins Ziel-Repo.
Die eigentliche Ausbeute ist nicht der Lighthouse-Optimierer, sondern das Prinzip dahinter — übertragbar auf jeden Agenten, der sich selbst verbessern soll.
Ein Agent, der sich selbst bewertet, ist ein schwacher Richter. Ein externes Messsignal ist unbestechlich.
Eine einzige Zahl zu optimieren erzeugt Kollateralschaden an allen anderen. Zwei Dimensionen mit No-Regress-Regel verhindern das.
Reale Messungen schwanken. Wer das ignoriert, akzeptiert Zufall als Fortschritt.
Lighthouse ist nur ein Signal von vielen. Wenn dich interessiert, wie sich das Prinzip auf andere messbare Ziele übertragen lässt, schreib mir — ein Walkthrough ist möglich.