feat(iace): generic cross-domain leak gates + norm vocab reconciliation
- Domain-gate ~15 foreign machine classes (pool, amusement, paint booth, tank farm, reactor, lathe/chips, saw, film/carton, robot, mobile cab, asbestos, playground swing) in pattern_domain_gates.go so ungated hazard patterns stop leaking into unrelated machines; matching emit keywords added in keyword_dictionary.go (gate+emit share one vocabulary). - Extend the cross-domain precision guard to 6 machine classes (press, cobot, motor, welding + the 2 GTs) with per-case homeDomains, so a machine's own domain terms are never flagged. GT coverage stays 100%. - Reconcile the fine-grained norm machine-type vocabulary (455 keys) with the 68 canonical dropdown keys via canonicalMachineType() family folding in matchNorm — welding 0->17, robotics_cobot 0->6, press 8->13, circular_saw 1->35 machine-specific C-norms. Pattern gating left strict. - Fix initialize?force=true summary index-shift that mislabeled counts (reported matched-patterns as "hazards"); now uses named step vars. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -79,6 +79,48 @@ var domainGateTerms = map[string]string{
|
||||
// Fitness / Kraftgeraet
|
||||
"gewichtstapel": "dom_fitness", "langhantel": "dom_fitness", "bankdrueck": "dom_fitness",
|
||||
"kniebeug": "dom_fitness", "kraftstation": "dom_fitness",
|
||||
// Schwimmbad / Aquatik (Entrapment, Nassbereich-Strom, Beckenrand)
|
||||
"schwimmbecken": "dom_aquatic", "schwimmbad": "dom_aquatic", "schwimmhalle": "dom_aquatic",
|
||||
"beckenumrandung": "dom_aquatic", "beckenrand": "dom_aquatic", "massageduese": "dom_aquatic",
|
||||
"badegaeste": "dom_aquatic", "sprungturm": "dom_aquatic", "schwimmbadtechnik": "dom_aquatic",
|
||||
// Fahrgeschaeft / Vergnuegungspark
|
||||
"karussell": "dom_amusement", "fahrgeschaeft": "dom_amusement", "riesenrad": "dom_amusement",
|
||||
"achterbahn": "dom_amusement",
|
||||
// Mobile Maschine mit Fahrerstand (Ganzkoerpervibration etc.)
|
||||
"fahrersitz": "dom_mobile_cab", "fahrerkabine": "dom_mobile_cab", "fahrerstand": "dom_mobile_cab",
|
||||
"fahrerhaus": "dom_mobile_cab",
|
||||
// Lackieren / Beschichten (Loesemittel, ESD-Zuendung Lackierzone)
|
||||
"lackier": "dom_coating", "loesemitteldampf": "dom_coating", "pulverbeschicht": "dom_coating",
|
||||
"spritzlackier": "dom_coating",
|
||||
// Ex-Prozessanlage / Tanklager
|
||||
"tanklager": "dom_exproc", "raffinerie": "dom_exproc", "tankfarm": "dom_exproc",
|
||||
// Chemie-Reaktor / Mischanlage
|
||||
"reaktor": "dom_chem", "mischbereich": "dom_chem", "exotherme reaktion": "dom_chem",
|
||||
"ruehrkessel": "dom_chem",
|
||||
// Sauerstoff-/Gasversorgungsanlage
|
||||
"sauerstoffanreicherung": "dom_o2", "sauerstoff-versorgung": "dom_o2",
|
||||
// Drehmaschine / Zerspanung (Spannfutter, Spaeneflug, Spindelumgebung)
|
||||
"drehfutter": "dom_cnc", "spannfutterbacke": "dom_cnc", "spannbacke": "dom_cnc",
|
||||
"spaeneflug": "dom_cnc", "spanflug": "dom_cnc", "spindelumgebung": "dom_cnc",
|
||||
"werkzeugmaschine": "dom_cnc",
|
||||
// Roboter / Cobot (ungated Roboterzellen-Hazards)
|
||||
"roboterzelle": "dom_robot", "roboterarm": "dom_robot", "roboter-arbeitsraum": "dom_robot",
|
||||
"schwenkbereich roboter": "dom_robot", "knickarmroboter": "dom_robot", "teach-zone": "dom_robot",
|
||||
// Saege (Bandsaege, Gattersaege)
|
||||
"bandsaege": "dom_sawing", "saegeband": "dom_sawing", "gattersaege": "dom_sawing",
|
||||
// Folien-/Karton-Konfektionierung (Wickler, Trennmesser)
|
||||
"folienwickler": "dom_converting", "folieneinlauf": "dom_converting", "wickelachse": "dom_converting",
|
||||
"folientrennbereich": "dom_converting", "kartonschneider": "dom_converting",
|
||||
// Kunststoff Blasformen (ergaenzt dom_plastics)
|
||||
"blasformwerkzeug": "dom_plastics", "blasstation": "dom_plastics", "blasform": "dom_plastics",
|
||||
// Textil-Zuschnitt / Konfektionierung (ergaenzt dom_textile)
|
||||
"stoffauflage": "dom_textile", "konfektionierung": "dom_textile", "schneidkopfbereich": "dom_textile",
|
||||
// Abgelegener / untertage Einzelarbeitsplatz (kein Notruf-Empfang)
|
||||
"kein empfang": "dom_remote", "unterirdisch": "dom_remote", "untertage": "dom_remote",
|
||||
// Asbest-Altanlagen
|
||||
"asbest": "dom_asbestos",
|
||||
// Spielplatz-Schaukel (ergaenzt dom_playground: Kettenglied-Fingerfang)
|
||||
"schaukelkette": "dom_playground", "nestschaukel": "dom_playground", "schaukelsitz": "dom_playground",
|
||||
}
|
||||
|
||||
// applyDomainGates appends a domain capability tag to every pattern whose own
|
||||
|
||||
Reference in New Issue
Block a user