Agent im Loop (Teil 6): Den Loop härten
Mehr Signale in die Schleife: Type Hints mit mypy, Ruff, Coverage und Claude-Code-Hooks. Schnelle Checks laufen nach Änderungen, die volle Suite vor dem Stopp – nebenbei kommt der Reroll dazu.
ls -lt posts/
Über Systeme, Tooling und das gelegentliche Yak-Shaving.
Mehr Signale in die Schleife: Type Hints mit mypy, Ruff, Coverage und Claude-Code-Hooks. Schnelle Checks laufen nach Änderungen, die volle Suite vor dem Stopp – nebenbei kommt der Reroll dazu.
Nahrung steht in der Rule of 3 weit hinten – und gerade deshalb lohnt kein riskantes Pflanzenexperiment. Was Into the Wild über Kalorien, Foraging und falsche Sicherheit lehrt.
5.166 Zeilen C++-Tabellen, vier Enums, die nur per Position dazu passen, und ein Regelwerk, das alles in place umbaut. Teil 5 zeigt, wie die Spieldaten aus der Referenz gedumpt, generiert und gegen sie geprüft werden – und was eine -2 in den Fixtures verriet.
Beispieltests prüfen, woran Du gedacht hast. Hypothesis erzeugt Testdaten aus Strategien, sucht Gegenbeispiele und schrumpft Fehler auf kleine, nachvollziehbare Fälle.
Explodierende Würfel und Vorteil/Nachteil zeigen, wie grüne Tests täuschen können: Overfitting, geschwächte Tests, unvollständige Semantik und Hänger. Property-Based Testing macht die Schleife robuster.
Die ersten portierten Zeilen: der Zufallsgenerator, der in Python exakt dieselben Zahlen liefern muss wie in C++. Teil 4 zeigt, warum die Testvektoren aus der Referenz kommen, was Seeds 0, 1 und INT_MAX gemeinsam haben und was Python-Zufall an Laufzeit kostet.
Recursive Descent ist die zugänglichste Art, einen Parser zu bauen: eine Funktion pro Grammatikregel, Präzedenz fällt aus der Verschachtelung. Gezeigt an einem kleinen Taschenrechner.
Der naive String-Zerteiler stößt bei 4d6kh3 an seine Grenzen. Wir trennen Tokenizer, Parser und Evaluator – unter Testschutz, der Regressionen sichtbar macht, aber nicht jede ungetestete Änderung erkennen kann.
Wasser, so weit das Auge reicht – und kein Tropfen trinkbar. Warum Meerwasser tödlich ist, wie eine Solardestille funktioniert und warum Regen Dein bester Freund auf See ist.
Bevor die erste Zeile portiert wird, braucht der Port einen Richter: ein Harness, das die C++-Referenz auf festen Szenarien spielt und Verhalten statt Formatierung vergleicht. Teil 3 zeigt, wie es entsteht und warum es sich erst gegen die Referenz selbst beweisen muss.