test(ai-sdk): GT #3 (commercial dishwasher) + fix Drehtisch keyword mislabel

Add ground_truth_warewashing.json + TestWarewashing_GTCoverage. The test runs
the UC-M narrative through the SAME chain as production (ParseNarrative ->
engine -> relevance + cyber filter), so keyword/gating fixes are measured on
the real hazard set, and false positives show up as "extra".

Class A (generic keyword hygiene): spuelarm/spuelfeld no longer map to library
component C004 ("Drehtisch" / rotary table) — that mislabelled the spray arm.
Keep the rotating_part tag. Removes the bogus "Drehtisch" hazard.

GT #3 baseline -> after Class A: recall 80% (unchanged), one false positive
(Drehtisch) removed. Kistenhub 97.1% and Bremse pinned mappings unchanged.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-06-24 21:51:26 +02:00
parent 79ad95e244
commit cf86dc241b
3 changed files with 384 additions and 1 deletions
@@ -0,0 +1,233 @@
{
"machine_name": "Gewerbliche Untertisch-Geschirrspuelmaschine (Winterhalter UC-M)",
"machine_description": "Untertisch-Gewerbespuelmaschine, vernetzt (Connected Wash), Heisswasser-Boiler, Spuelpumpe mit rotierenden Spuelfeldern, Tuer mit Sicherheitsschalter, Reiniger-/Klarspueler-Dosierung.",
"source": "Selbstbewertung GT #3 (Fachmann-Erwartung, EN 60335-2-58 + EN ISO 12100)",
"version": "1.0",
"entries": [
{
"nr": "1.1",
"hazard_group": "Thermische Gefährdungen",
"hazard_group_applicable": true,
"hazard_type": "Verbrühung durch Heißwasser und Dampf",
"hazard_cause": "Beim Öffnen der Tür während oder kurz nach dem Spülgang tritt heißes Wasser und Wrasen (Dampf) aus der Spülkammer aus und trifft Gesicht, Hände und Arme",
"lifecycle_phases": ["Betrieb", "Reinigung"],
"component_zone": "Tür und Beschickungsöffnung der Spülkammer",
"risk_in": {"f": 4, "w": 3, "p": 2, "s": 3, "r": 27},
"measures": ["Türverriegelung beendet Spülgang vor dem Öffnen", "Wrasen-/Dampfreduzierung", "Warnhinweis heißer Dampf"],
"measure_type": "KM",
"risk_out": {"f": 2, "w": 1, "p": 1, "s": 2, "r": 8},
"norm_references": ["EN 60335-2-58"],
"sufficient": true
},
{
"nr": "1.2",
"hazard_group": "Thermische Gefährdungen",
"hazard_group_applicable": true,
"hazard_type": "Verbrennung an heißen Oberflächen",
"hazard_cause": "Berührung heißer Oberflächen von Boiler, Tankheizkörper oder Spülkammerwänden bei Reinigung, Entkalkung oder Wartung",
"lifecycle_phases": ["Reinigung", "Instandhaltung"],
"component_zone": "Boiler, Tankheizkörper, Spülkammerwände",
"risk_in": {"f": 3, "w": 2, "p": 2, "s": 2, "r": 14},
"measures": ["Temperaturbegrenzung zugänglicher Oberflächen", "Warnhinweis heiße Oberfläche"],
"measure_type": "KM",
"risk_out": {"f": 1, "w": 1, "p": 1, "s": 2, "r": 6},
"norm_references": ["EN ISO 13732-1"],
"sufficient": true
},
{
"nr": "1.3",
"hazard_group": "Thermische Gefährdungen",
"hazard_group_applicable": true,
"hazard_type": "Verbrennung an heißem Spülgut",
"hazard_cause": "Geschirr und Gläser sind nach der Heißwasser-Nachspülung sehr heiß, beim Entladen kommt es zu Verbrennungen an den Händen",
"lifecycle_phases": ["Betrieb"],
"component_zone": "Spülkammer, Entnahmebereich, Korb",
"risk_in": {"f": 3, "w": 3, "p": 2, "s": 2, "r": 16},
"measures": ["Abkühl-/Trocknungszeit", "Warnhinweis heißes Spülgut"],
"measure_type": "BI",
"risk_out": {"f": 1, "w": 1, "p": 1, "s": 2, "r": 6},
"norm_references": ["EN 60335-2-58"],
"sufficient": true
},
{
"nr": "2.1",
"hazard_group": "Gefährdungen durch Materialien und Substanzen",
"hazard_group_applicable": true,
"hazard_type": "Verätzung von Haut und Augen durch Reiniger-/Klarspüler-Konzentrat",
"hazard_cause": "Direkter Kontakt mit dem ätzenden Reiniger- bzw. Klarspüler-Konzentrat beim Nachfüllen, Sauglanzenwechsel oder bei Leckage des Dosiergeräts",
"lifecycle_phases": ["Betrieb", "Instandhaltung"],
"component_zone": "Dosiergerät, Reiniger- und Klarspüler-Gebinde, Sauglanzen",
"risk_in": {"f": 3, "w": 3, "p": 2, "s": 3, "r": 24},
"measures": ["Geschlossenes Dosiersystem mit Sauglanzen", "PSA Augen-/Hautschutz", "GHS-Kennzeichnung und Sicherheitsdatenblatt"],
"measure_type": "KM",
"risk_out": {"f": 1, "w": 1, "p": 1, "s": 3, "r": 9},
"norm_references": ["Verordnung (EG) Nr. 1272/2008", "TRGS 500"],
"sufficient": true
},
{
"nr": "2.2",
"hazard_group": "Gefährdungen durch Materialien und Substanzen",
"hazard_group_applicable": true,
"hazard_type": "Reizung der Atemwege durch Reinigungs-Aerosole und Dämpfe",
"hazard_cause": "Einatmen von Aerosolen und Dämpfen der Reinigungschemie beim Öffnen kurz nach dem Spülgang oder bei der Entkalkung mit Säure",
"lifecycle_phases": ["Betrieb", "Instandhaltung"],
"component_zone": "Atemzone vor der Spülkammer, Aufstellbereich",
"risk_in": {"f": 2, "w": 2, "p": 2, "s": 2, "r": 12},
"measures": ["Be-/Entlüftung", "geschlossene Haube", "Warnung vor Vermischen von Reiniger und Säure"],
"measure_type": "BI",
"risk_out": {"f": 1, "w": 1, "p": 1, "s": 2, "r": 6},
"norm_references": ["TRGS 500"],
"sufficient": true
},
{
"nr": "3.1",
"hazard_group": "Elektrische Gefährdungen",
"hazard_group_applicable": true,
"hazard_type": "Elektrischer Schlag in Nassumgebung",
"hazard_cause": "Berührung spannungsführender Teile bei unzureichendem IP-Schutz, defekten Kabeldurchführungen oder Feuchtigkeit im Steuerungsgehäuse",
"lifecycle_phases": ["Betrieb", "Reinigung", "Instandhaltung"],
"component_zone": "Steuerungsgehäuse, Kabelübergänge, Antriebsgehäuse",
"risk_in": {"f": 3, "w": 2, "p": 3, "s": 4, "r": 32},
"measures": ["IP-Schutz gegen eindringendes Wasser", "Fehlerstrom-Schutzeinrichtung (RCD)"],
"measure_type": "KM",
"risk_out": {"f": 1, "w": 1, "p": 1, "s": 4, "r": 12},
"norm_references": ["IEC 60335-1"],
"sufficient": true
},
{
"nr": "3.2",
"hazard_group": "Elektrische Gefährdungen",
"hazard_group_applicable": true,
"hazard_type": "Kurzschluss und Brand bei Reinigung am Schaltschrank",
"hazard_cause": "Reinigung ohne vorherige Freischaltung oder mit Hochdruckreiniger am elektrisch aktiven Schaltschrank führt zu Kurzschluss und Brand",
"lifecycle_phases": ["Reinigung", "Instandhaltung"],
"component_zone": "Schaltschrank, elektrisch aktive Komponenten",
"risk_in": {"f": 2, "w": 2, "p": 2, "s": 3, "r": 18},
"measures": ["Netztrenneinrichtung", "Warnhinweis Reinigung nur spannungsfrei, kein Hochdruckreiniger"],
"measure_type": "KM",
"risk_out": {"f": 1, "w": 1, "p": 1, "s": 3, "r": 9},
"norm_references": ["IEC 60204-1"],
"sufficient": true
},
{
"nr": "3.3",
"hazard_group": "Elektrische Gefährdungen",
"hazard_group_applicable": true,
"hazard_type": "Motorüberlast mit Überhitzung",
"hazard_cause": "Blockierter oder überlasteter Pumpenmotor überhitzt, Wicklungsbrand und Rauchentwicklung",
"lifecycle_phases": ["Betrieb"],
"component_zone": "Motorgehäuse, Umgebung",
"risk_in": {"f": 2, "w": 2, "p": 2, "s": 2, "r": 12},
"measures": ["Überstromschutz", "Motorschutzschalter"],
"measure_type": "KM",
"risk_out": {"f": 1, "w": 1, "p": 1, "s": 2, "r": 6},
"norm_references": ["IEC 60204-1"],
"sufficient": true
},
{
"nr": "4.1",
"hazard_group": "Mechanische Gefährdungen",
"hazard_group_applicable": true,
"hazard_type": "Ausrutschen auf nassem Boden",
"hazard_cause": "Aus der Spülmaschine austretendes Wasser durch Leckage oder beim Öffnen macht den Boden im Aufstellbereich rutschig, Person rutscht aus und stürzt",
"lifecycle_phases": ["Betrieb", "Reinigung", "Instandhaltung"],
"component_zone": "Aufstell- und Bedienbereich der Spülmaschine",
"risk_in": {"f": 3, "w": 3, "p": 2, "s": 2, "r": 16},
"measures": ["Rutschhemmender Bodenbelag", "Bodenablauf bzw. Leckagewanne"],
"measure_type": "KM",
"risk_out": {"f": 1, "w": 1, "p": 1, "s": 2, "r": 6},
"norm_references": ["ASR A1.5/1,2"],
"sufficient": true
},
{
"nr": "4.2",
"hazard_group": "Mechanische Gefährdungen",
"hazard_group_applicable": true,
"hazard_type": "Quetschen der Finger an der Tür/Haube",
"hazard_cause": "Beim Schließen der Tür bzw. Absenken der Haube werden Finger zwischen Tür/Haube und Gehäuse gequetscht",
"lifecycle_phases": ["Betrieb"],
"component_zone": "Tür- und Haubenkante, Schließbereich",
"risk_in": {"f": 3, "w": 2, "p": 2, "s": 1, "r": 7},
"measures": ["Geringe Schließkraft, Einklemmschutz", "Abgerundete Türkanten"],
"measure_type": "KM",
"risk_out": {"f": 1, "w": 1, "p": 1, "s": 1, "r": 3},
"norm_references": ["EN ISO 12100"],
"sufficient": true
},
{
"nr": "4.3",
"hazard_group": "Mechanische Gefährdungen",
"hazard_group_applicable": true,
"hazard_type": "Kontakt mit rotierendem Spülarm bei geöffneter Tür",
"hazard_cause": "Eingreifen in die Spülkammer bei noch nachlaufendem rotierendem Spülarm/Spülfeld nach dem Öffnen der Tür",
"lifecycle_phases": ["Betrieb", "Reinigung"],
"component_zone": "Spülkammer, Spülarm und Spülfeld",
"risk_in": {"f": 2, "w": 2, "p": 2, "s": 1, "r": 6},
"measures": ["Türverriegelung stoppt Spülarm beim Öffnen"],
"measure_type": "KM",
"risk_out": {"f": 1, "w": 1, "p": 1, "s": 1, "r": 3},
"norm_references": ["EN ISO 12100"],
"sufficient": true
},
{
"nr": "5.1",
"hazard_group": "Ergonomische Gefährdungen",
"hazard_group_applicable": true,
"hazard_type": "Belastung des Bewegungsapparats durch wiederholte Be- und Entladung",
"hazard_cause": "Wiederholtes Heben und Bücken beim manuellen Be- und Entladen der Spülkörbe am Untertischgerät",
"lifecycle_phases": ["Betrieb"],
"component_zone": "Be- und Entladestelle, Spülkorb",
"risk_in": {"f": 4, "w": 3, "p": 2, "s": 1, "r": 9},
"measures": ["Ergonomische Arbeitshöhe", "Be-/Entladung auf günstiger Greifhöhe"],
"measure_type": "KM",
"risk_out": {"f": 2, "w": 1, "p": 1, "s": 1, "r": 4},
"norm_references": ["EN 1005-2"],
"sufficient": true
},
{
"nr": "5.2",
"hazard_group": "Ergonomische Gefährdungen",
"hazard_group_applicable": true,
"hazard_type": "Zwangshaltung durch ungünstige Bedienelement-Position",
"hazard_cause": "Bedienelemente am HMI außerhalb der ergonomisch günstigen Reichweite führen bei dauerhafter Bedienung zu Zwangshaltung",
"lifecycle_phases": ["Betrieb"],
"component_zone": "Bedienstand HMI, Steuerpult",
"risk_in": {"f": 3, "w": 2, "p": 1, "s": 1, "r": 6},
"measures": ["Bedienelemente in ergonomisch günstiger Höhe"],
"measure_type": "KM",
"risk_out": {"f": 1, "w": 1, "p": 1, "s": 1, "r": 3},
"norm_references": ["EN 894-3"],
"sufficient": true
},
{
"nr": "6.1",
"hazard_group": "zusätzliche Gefährdungen",
"hazard_group_applicable": true,
"hazard_type": "Verlust einer Sicherheitsfunktion durch Steuerungs- oder Softwarefehler",
"hazard_cause": "Steuerungs- oder Softwarefehler der eigenen Maschinensteuerung führt zu unkontrolliertem Verhalten oder Verlust einer Sicherheitsfunktion",
"lifecycle_phases": ["Betrieb", "Instandhaltung"],
"component_zone": "Gesamte Maschine, Steuerung",
"risk_in": {"f": 2, "w": 2, "p": 2, "s": 3, "r": 18},
"measures": ["Sichere Fehlerbehandlung", "Sichere Software-Fallbacks", "Watchdog"],
"measure_type": "KM",
"risk_out": {"f": 1, "w": 1, "p": 1, "s": 3, "r": 9},
"norm_references": ["EN ISO 13849-1"],
"sufficient": true
},
{
"nr": "6.2",
"hazard_group": "zusätzliche Gefährdungen",
"hazard_group_applicable": true,
"hazard_type": "Verlust der Sicherheitsfunktion nach fehlerhaftem Software-Update",
"hazard_cause": "Korrupte oder inkompatible Firmware nach fehlerhaftem Update über die USB-Schnittstelle lässt die Steuerung undefiniert verhalten oder Sicherheitsfunktion verlieren",
"lifecycle_phases": ["Instandhaltung"],
"component_zone": "Gesamte Maschine, Steuerung, Update-Schnittstelle",
"risk_in": {"f": 2, "w": 2, "p": 2, "s": 3, "r": 18},
"measures": ["Atomares Update mit Rückfall auf lauffähige Version", "Kompatibilitätsprüfung vor Update"],
"measure_type": "KM",
"risk_out": {"f": 1, "w": 1, "p": 1, "s": 3, "r": 9},
"norm_references": ["EN ISO 13849-1"],
"sufficient": true
}
]
}