Setup-Update 12.10.2026: 6 Verbesserungen
Ein Tag mit sechs gezielten Eingriffen in die Infrastruktur: von der Reparatur eines latenten Shell-Fehlers über eine neue Kontrolllogik für Modellparameter bis zur architektonischen Weichenstellung. Jede Maßnahme löst ein konkretes Problem – oder beweist, dass keins da ist.
Defekt im Modell-Drift-Wächter: grep -c plus || echo 0 produzierte zweizeilige Zahlen
Der Modell-Drift-Wächter brach im Gutfall mit „integer expression expected“ ab, obwohl der Alarm bei echten Treffern funktionierte. Ursache: grep -c gibt bei null Treffern bereits „0“ aus und beendet sich mit Status 1 – das angehängte || echo 0 feuerte daher zusätzlich, sodass die Variable "0\n0" trug.
Die Lösung ersetzt die Zeile durch … || dep_count=0, was den Status-Code statt der Ausgabe abfängt. Nach dem Fix melden zehn Anbieter saubere Zahlen („0 neue“, „11 neue“, „127 neue“), ohne Fehlerzeilen. Der Defekt betraf ausschließlich den Fall „keine veralteten Modelle“, blieb also einen Monat unsichtbar.
dieselbe Zählfalle an drei weiteren Stellen behoben
Ein systematischer Suchlauf förderte vier weitere Instanzen derselben Logik zu Tage: Zählbefehle mit angehängtem Null-Rückfall. Je nach Kontext brach der Vergleich ab, unterdrückte den Fehler stumm oder riss die Ausgabezeile in zwei Teile. Drei Stellen wurden korrigiert: der Wächter über die Außenablage, die Prüfung der Werkzeug-Konfiguration und der Wochenbericht der Codepflege. Eine fünfte Stelle im Synchronisationsskript blieb unberührt, da der Fehler dort durch die Bedingung unterdrückt ist und das Ergebnis zufällig stimmt. Die Fixes wurden mit null und zwei Treffern validiert, die betroffenen Skripte gespiegelt.
Positiv-Kontrolle für Modell-Parameter: Wirkung wird am Ergebnis gemessen
Ein Test mit einem frei erfundenen Parameter durchlief die Konfiguration stumm – die Einstellung zum Verwerfen unbekannter Parameter stand zwar an zwei Stellen, doch eine allein reicht nicht. Die Lösung ist ein Prüfwerkzeug, das je Modelleintrag die tatsächliche Wirkung belegt: abgeschaltetes Nachdenken muss zu null Denk-Token führen, abgelehnte Parameter dürfen keinen Fehler erzeugen. Zusätzlich wurde eine erste Fassung korrigiert: Über Tier-Namen ist die Parameter-Wirkung nicht messbar, da ein Tier mehrere Einträge umfasst und die Antwort nur den Tier-Namen nennt. Die finale Version prüft daher nur eindeutige Modellnamen und weist Tier-Namen als nicht prüfbar aus. Negativkontrollen bestätigen, dass nicht existierende Modellnamen abbrechen und nicht erreichbare Vermittlungen „nicht bestanden“ melden.
Baseline der Tier-Zuordnung: 87 % ohne Modellaufruf, 94 % an zwei Regeln
Ein Werkzeug zieht eine nach echtem Verkehr geschichtete Stichprobe aus dem Entscheidungsprotokoll und vergleicht sie mit der aktuellen Zuordnung. Die Auswertung von 9.427 Entscheidungen über sechs Monate ergab: 87 % wurden ohne jeden Modellaufruf getroffen, allein über Textmuster-Regeln. 94 % aller Fälle hängen an genau zwei Regeln (60,4 % und 29,1 %), mit einer Uneinigkeit von 2,95 % zwischen den beiden Pfaden. Damit ist die Zuordnung faktisch ein Zwei-Regel-Weichensteller. Die offene Frage lautet nicht „welches Modell ordnet besser zu“, sondern „ordnen diese zwei Textmuster richtig zu“. Das Werkzeug verweigert bewusst eine Zahl, solange zu wenige Fälle beurteilt sind, und bricht bei Tippfehlern im Soll-Wert ab. Mechanik und Abbruchbedingungen sind belegt.
Spezialisierte Entscheidungsmodelle: begründetes Nein
Mehrere Anbieter brachten Modelle heraus, die statt Fließtext eine typisierte Auswahl mit kalibrierter Wahrscheinlichkeit zurückgeben. Drei Gründe sprechen gegen den Einsatz: (1) Im eigenen Zuordnungspfad gibt es keinen Modellaufruf zu ersetzen – 94 % der Fälle entscheiden Textmuster in Bruchteilen einer Millisekunde, ein Modell mit ~39 ms Median wäre eine Verschlechterung um drei Größenordnungen. (2) Das günstigste Modell spricht ein fremdes Aufruf-Format und ist über die eigene Vermittlungsschicht nicht ansprechbar; ein Adapter würde alle fünf Kostenschutz-Schichten umgehen. (3) Die Relevanzbewertung im Newsletter-Ablauf ist Teil derselben Anweisung wie die Texterzeugung – es gibt nichts abzutrennen. Ein Reaktivierungs-Trigger wurde festgehalten: eine neue Stelle, an der ein Modell eine Auswahl aus festem Antwortraum trifft, oder der Befund, dass die zwei Textmuster schlecht zuordnen.
Dokumentierte Aussage über fremdes Werkzeug war veraltet
Die Projektanleitung behauptete, eine alternative Instruktionsdatei werde „nie“ gelesen. Tatsächlich wird sie gelesen, sobald im Arbeitsverzeichnis und darüber keine der drei eigenen Instruktionsdateien liegt – eingeführt in einer Version, die nineteen Releases hinter der installierten liegt. Für das aktuelle Verzeichnis bleibt die Folge richtig, aber die Begründung war falsch. In anderen Konstellationen wirken zwei Dateien mit 27 KB Instruktionen, die bisher als wirkungslos dokumentiert und nie unter dieser Annahme geprüft wurden. Die Anleitung und der Gedächtnis-Index wurden korrigiert, die Aussage durch eine Bedingung ersetzt.