Testlauf 14.09.2026 - nach den Kategorievorschlaegen in der PIM-Bereinigung ========================================================================== Node v24.20.0, ausgefuehrt in website/tools/shared. Die Dateiliste wird eingelesen (readdirSync), nicht abgetippt - so faellt keine Testdatei still aus der Zaehlung. 45/45 tests-artdaten.js 40/40 tests-diagnose.js 23/23 tests-garden-llm.js 14/14 tests-garden.js 48/48 tests-ki-extraktion.js 18/18 tests-lead-agent.js 20/20 tests-lead.js 41/41 tests-passt-das.js 63/63 tests-pim-llm.js <- 39 im Vorlauf 24/24 tests-pim.js 23/23 tests-smarthome.js 41/41 tests-wissensbasis.js 44/44 tests-zapier.js ----- 444 von 444 bestanden Geaendert seit dem Lauf vom 06.09.2026: rules-pim.js, rules-pim-llm.js, tests-pim-llm.js, produkte.js, prompts/pim-beschreibung.txt und prompts/validierung-beschreibung.txt - alles am 13.09.2026. Die Aenderung ist der Kategorievorschlag: Das Modell darf fuer einen Artikel ohne Kategorie eine bestehende Kategorie zuordnen und, wenn keine passt, bis zu drei neue vorschlagen - getrennt gefuehrt, mit Begruendung, nie in der normalen Vorschlagsliste. Die Fallzahl steigt von 39 auf 63. Die 24 neuen Faelle sind: 21 Kategorien: Nachpruefung gegen die bestehenden Kategorien, die Obergrenze von drei neuen, Doppelnennungen, fehlende Begruendung, die eigene Herkunftsspalte bei Freigabe und die getrennte Zaehlung im Report. 3 Nebenbefunde derselben Aenderung: zwei Luecken an einem Artikel werden einzeln beantwortet, ein Verzicht ohne Feldangabe wird abgelehnt, eine gepflegte Angabe wird als Rohdaten ausgewiesen. Zwei bestehende Faelle heissen anders, weil die Einheit nicht mehr der Artikel ist, sondern die einzelne Luecke: "dieselbe SKU zweimal wird abgelehnt" ist jetzt "dieselbe Luecke zweimal wird abgelehnt". Geprueft wird dasselbe, nur an der Stelle, an der jetzt entschieden wird. Kein Testfall ist fehlgeschlagen, keiner wurde angepasst, bis er passt. Abgleich der Aufzeichnungen --------------------------- Die Seiten blenden eine aufgezeichnete Modellantwort stillschweigend aus, wenn die Beispieldaten seither abweichen - das faellt in keinem Testfall auf, weil kein Test die Aufzeichnung gegen die Beispieldaten haelt. Deshalb von Hand nachgeprueft, mit diesem Ergebnis: PIM "voll" und "rand": das Feld "datensatz" in der Aufzeichnung ist zeichengleich mit produkte.js (1179 bzw. 889 Zeichen). "rand" ist am 13.09.2026 von sechs auf acht Artikel gewachsen (B2007 Wanderkarte, B2008 Reparaturservice, beide ohne Kategorie) - beide Aufzeichnungen sind am selben Tag neu erstellt worden und passen wieder. Fuer "kaputt" gibt es keine Aufzeichnung und soll es keine geben: Dort fehlt eine Pflichtspalte, es kommt gar nicht zu einem Aufruf. Garden Alle drei Faelle: "anfragetext" zeichengleich, die live berechneten offenen Themen stimmen mit "offene_themen" ueberein (3/3, 10/10, 0/0), Formatpruefung ohne Befund. "vollstaendig" traegt bewusst modell: null - kein Thema offen, also kein Aufruf. Uebrige Lead-Agent (1 Lauf), Belegpruefung (4 Laeufe), Workflow (2 Laeufe), Zapier (4 Laeufe): vollstaendig vorhanden. Damit liegt zu jedem Beispiel, zu dem eine Modellantwort gehoert, auch eine auf. Aufruf ------ cd website/tools/shared node --input-type=module -e " import { readdirSync } from 'node:fs'; const S = readdirSync('.').filter(f=>f.startsWith('tests-')&&f.endsWith('.js')).sort(); let o=0,f=0; for (const p of S) { const {TESTS} = await import('./'+p); for (const [n,fn] of TESTS) { let r; try { r = fn()===true } catch(e) { r=false } r ? o++ : (f++, console.log('FEHLGESCHLAGEN: '+p+' :: '+n)) } } console.log(o+' von '+(o+f)+' bestanden');" Dieselbe Zaehlung erzeugt auch die Kennzahl "Testfaelle" auf /diese-seite - sie wird von skripte/zahlen-auszaehlen.py durch Ausfuehren ermittelt, nicht durch Zaehlen von Quelltextzeilen.