Agent im Loop (Teil 7): Größere Schleifen
Das Finale: von der Unit- zur Acceptance-Schleife mit einer echten CLI, wann man den Agenten nicht autonom an die Schleife lässt – und wie sich die Rolle des Menschen zum Spec-Owner und Reviewer verschiebt.
ls -lt posts/
Über Systeme, Tooling und das gelegentliche Yak-Shaving.
Das Finale: von der Unit- zur Acceptance-Schleife mit einer echten CLI, wann man den Agenten nicht autonom an die Schleife lässt – und wie sich die Rolle des Menschen zum Spec-Owner und Reviewer verschiebt.
Eine 5.000-Zeilen-Funktion schreibt das Regelbuch von Atlantis PbeM als HTML. Teil 6 portiert sie Kapitel für Kapitel gegen die Referenz – und landet bei 230.407 Bytes, die sich bis auf das Datum nicht vom Original unterscheiden.
Coverage zeigt, welcher Code ausgeführt wurde – nicht, ob Tests kleine Verhaltensänderungen bemerken. Mutation Testing baut kontrolliert Fehler ein und prüft, ob die Tests darauf reagieren.
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.