Die drei Browser- und Abnahmeaufgaben in einem Wegwerf-Arbeitsverzeichnis
durchgespielt, mit Gegenproben aus absichtlich falschem Code. Gefunden:
- Task 13: Höhen wurden exakt verglichen, die Positionen liegen aber als
Float32 vor - die Tests wären auch mit richtigem Code rot gewesen.
- Task 13: Die Oberkante des Bordsteins lag auf y = 0 und verschwand damit
unter dem Gehwegbelag; auf welcher Seite sie liegt, war offen. Sie liegt
jetzt 1 cm über den Belägen, und die Seite kommt aus zwei Proben an der
Fahrbahn. Die Wand steht 1 cm in der Fahrbahn, sonst fällt sie
deckungsgleich auf die Lochwand der Bodenplatte.
- Task 13: Die Brückenmarkierung hatte weder Code noch Test; die Regel ist
jetzt "alle Eckpunkte auf der Brücke" statt "Schwerpunkt", sonst schwebt
der Rest einer halb aufliegenden Markierung über der Mulde.
- Task 14: Ein Laternentest wäre mit richtigem Code rot gewesen, ein
zweiter konnte nicht fehlschlagen, und die geforderte Laterne aus einem
Chunk im neuen Format hatte keinen Test.
- Task 14: Die Tönung ließ die grüne Parkfarbe aus Teil 1 fallen, die
Ersatzfarben fehlten, DECALS ist nicht exportiert, und die Markierung
sollte die oberste Versatzstufe bekommen, obwohl der Kommentar dort vor
genau diesem Wachstum warnt.
- Task 14: tests/placesSite.test.js stand nicht in der Dateiliste und
wäre gebrochen.
- Task 16: Die Erwartungszahlen stammten von vor dem Park, der vom Entwurf
verlangte Integrationstest fehlte, und das Entfernen des Skips hatte
keinen eigenen Schritt.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Vor dem Auftrag die Kette am echten Netz nachgemessen. Vier Fehler im Plan:
- Der Zuschnitt auf Chunks verwirft Stücke bis 0,5 m², ein Strich ist
0,3 m² - keiner der 4.363 Striche hätte überlebt. Markierungen bekommen
eine eigene Splittergrenze.
- _classified() stand in der Chunk-Schleife: 144 x 5,8 s, rund 14 Minuten.
- Der Entwurf setzt Palmen nach dem Straßenbau neu, der Plan nicht:
24 Palmen stünden auf der Fahrbahn.
- Der erste Test verglich einen Aufruf mit sich selbst.
Dazu Messskript und Erwartungen auf den Stand nach dem Flamingo Park.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Die Fahrbahn liegt überall 15 cm unter dem Boden, über Brücken also im
Inneren des Decks. Markierungen auf Brücken kommen deshalb auf Deckhöhe.
Dazu die Pflicht, den bis zur Abnahme übersprungenen Minimap-Test mit den
neu erzeugten Daten wieder scharf zu schalten.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Seit dem neuen Chunk-Format werfen overview.py und geometry.js, und props.js
setzt still keine einzige Laterne mehr. Die drei Aufgaben, die das reparieren,
bekommen den genauen Bruch und die Pflicht, ihre von Hand im alten Format
gebauten Fixtures mitzuziehen. Dazu der Docstring von _line() als Bedingung
statt als Tatsache.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Die Begruendung zur doppelten Mitte war selbst missverstaendlich: "jede Linie
frisst je die Haelfte des Achsabstands" ergibt woertlich gelesen null Luecke.
Jetzt steht die Rechnung ausgeschrieben da. Dazu tragen die Signaturen von
Task 9 nicht mehr object, sondern Polygon - sonst haette sich derselbe Fehler
in die naechste Aufgabe vererbt.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Der Kommentar nannte 10 cm Abstand der Mitten. Tatsächlich liegen die Achsen
20 cm auseinander, und erst die Pufferung lässt zwischen den gemalten Linien
die 10 cm entstehen, die der Entwurf verlangt. Dazu der zugesagte
Rückgabetyp statt object.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Der Entwurf nannte 0,18 km² Restfläche und 1,0-1,2 km² Fahrbahn. Gemessen
sind es 0,093 und 0,914 km²: Die Restfläche zählte den Gehweg doppelt, und
bei der Fahrbahn fehlte der Rückschnitt an 690 Kreuzungen. Dazu Gehweg
0,295 km² und Bordstein 120,3 km.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Die Fassung im Plan suchte je Kante den Grad über alle Kanten und begann
nach jedem Fund von vorn. Am echten Skelett mit rund 12.000 Rohästen wäre
das nicht langsam, sondern praktisch stehengeblieben. Jetzt wird der Grad
einmal gezählt und fortgeschrieben, ein Durchgang räumt alle Fransen auf
einmal weg, und ein Test mit über 1.500 Kanten nagelt es fest.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Schritt 4 von Task 2 verschob modular_sidewalk_curb_kit nach /tmp und zurück.
Bricht der Lauf dazwischen ab, liegt ein Ordner, der uns nicht gehört, im
Temp-Verzeichnis. CURB_KIT stellt den Pfad um, ohne etwas anzufassen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signatur von road_graph, eine wirkungslose Hilfsfunktion, eine Zusicherung
die der Vereinfachung widerspricht, ein doppelter Aufruf und ein sorted()
über Wörterbücher ohne Schlüssel.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
16 Aufgaben mit Tests zuerst. Aufgabe 1 misst das größte Risiko des
Entwurfs, bevor irgendetwas gebaut wird: ob der Browser eine Bodenplatte
mit 100 Löchern je Chunk in unter 50 ms trianguliert. Danach Graph,
Querschnitte, Kreuzungen, Mulde, Markierungen, Chunk-Format, Flamingo
Park, Pipeline, Browser, Minimap und die Abnahme.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>