feat(iace): GT-Bremse coverage — 59 expert measures + 7 hazard patterns

Systematic gap analysis of the Bremse ground-truth file (60 entries,
100 unique expert measures) revealed only ~5% library coverage. This
commit closes the documented gaps with concrete, norm-anchored
mitigations.

Library additions (M481-M539, 59 entries):
- M481-M482  Low-voltage isolation (>= 2,0 / 2x1,0 / 1,0 MOhm +
             IP2X/IPXXB per EN 60204-1 Ziff. 6.2/8.2.3) — primary
             trigger of this work
- M483-M485  Pneumatic safety (component pressure rating, hose
             retention, depressurization per EN ISO 4414)
- M486-M490  Robot-cell access (tool-secured fence, dual-channel
             door monitor, intentional restart, anti-trap inside
             opening, HMI sight line per ISO 10218-2)
- M491-M493  Teach mode (key/password mode selector, safe reduced
             speed <= 250 mm/s, hold-to-run with 3-stage enabler
             per ISO 10218-1)
- M494-M500  Geometry constants (Safe Limited Position, reach-over
             250 mm @ 2250 mm fence, conveyor opening >= 850 mm,
             25 mm finger gap, band speed <= 100 mm/s per
             EN ISO 13857 / EN 619)
- M501-M507  Enclosure load rating, gripper fail-safe, centring
             gripper stop on door, MWF nozzle integration, floor
             load capacity per DIN 1055-3
- M508-M517  Electrical cabling + PE protection (environment-rated,
             drag chain, strain relief, 10 mm² Cu PE, dual PE,
             monitoring, continuity check, class-II equipment,
             SELV/PELV per EN 60204-1)
- M518-M522  RCD, cable cross-section, overcurrent in each active
             conductor, IP22 water ingress, lockable main switch
- M523-M539  Teach-locked door, WZM door interlock, dual-channel
             door switch, machining-doors-closed for aerosol
             retention, post-NOTHALT release, >25 kg lifting aid
             (DGUV 208-016), 95-120 cm control height, ergonomic
             conveyor height, SDS/PSA reference, BA instructions
             for depressurization/clamp release/max weight/pinch
             warning/slip warning/dead-state cleaning

New hazard patterns (HP1710-HP1717):
floor overload, gripper failure throw, compressed-air injury in
machining cell, manual handling load + awkward posture, MWF skin
contact, live-cabinet cleaning short, pneumatic stored-energy.

Existing patterns rewired to the new measures: HP1600, HP1602-1606,
HP1610-1612, HP1620-1622, HP1630/1631/1633, HP1640/1641, HP1660/1661,
HP1675, HP1685, HP1688, HP1689, HP1698-1704.

Tooling:
- scripts/gt_measure_gap_analysis.py: 4-signal fuzzy matcher
  (Jaccard, token recall, substring containment, norm-reference
  overlap). Outputs markdown + JSON.
- gt_coverage_test.go: 23 expert-validated (GT-Nr, pattern, measure)
  triples + a norm-reference presence test for every new expert
  measure (no generic 'do X safely' entries allowed).
- .gitea/workflows/ci.yaml: new iace-gt-coverage job enforces
  MIN_COVERAGE_PCT (70%) on Strong+Weak GT coverage; never lower
  without explicit decision.

Coverage shift: 5% Strong -> 30% Strong, 0% -> 72% Strong+Weak.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-05-16 13:08:52 +02:00
parent bf9d8a5ed3
commit 4d1e0a7f8e
10 changed files with 812 additions and 25 deletions
@@ -87,5 +87,12 @@ func getSupplementaryMeasures() []ProtectiveMeasureEntry {
// Gap: GT-Benchmark 2.10 (KSS-Leckage fuehrt zu Brand)
// ══════════════════════════════════════════════════════════════
{ID: "M480", ReductionType: "design", SubType: "fluid_safety", Name: "Druckfeste Auslegung von KSS-Leitungen", Description: "Schlaeuche, Dichtungen, Verbindungsstuecke und Befestigungen des Kuehlschmierstoffsystems werden auf den Nenndruck der jeweiligen Komponente ausgelegt und gegen Abspringen gesichert.", HazardCategory: "mechanical", Examples: []string{"Druckschlaeuche auf maximalen Betriebsdruck dimensionieren", "Schlauchbruchsicherungen an kritischen Verbindungen"}, NormReferences: []string{"IEC 60204-1 Ziff. 11.3", "EN ISO 4414"}},
// ══════════════════════════════════════════════════════════════
// Niederspannungs-Isolation (konkrete Werte vom Fachmann)
// Gap: GT-Benchmark 2.2 (Elektrischer Schlag durch direktes Beruehren)
// ══════════════════════════════════════════════════════════════
{ID: "M481", ReductionType: "design", SubType: "electrical_safety", Name: "Verstaerkte oder doppelte Isolation niederspannungsfuehrender Teile", Description: "Elektrische Ausruestung im Niederspannungsbereich wird wahlweise verstaerkt isoliert (Isolationswiderstand >= 2,0 MOhm), doppelt isoliert (>= 2 x 1,0 MOhm) oder einfach isoliert (>= 1,0 MOhm) in Kombination mit einem PE-geschuetzten Gehaeuse gegen Zugriff ausgefuehrt.", HazardCategory: "electrical", Examples: []string{"Verstaerkte Isolation Niederspannungsteile >= 2,0 MOhm", "Doppelte Isolation >= 2 x 1,0 MOhm", "Einfache Isolation >= 1,0 MOhm mit PE-geschuetztem Gehaeuse"}, NormReferences: []string{"EN 60204-1 Ziff. 6.2", "EN 60204-1 Ziff. 8.2.3", "EN 61140"}},
{ID: "M482", ReductionType: "protection", SubType: "electrical_protection", Name: "Fingersichere werkzeuggesicherte Einhausung niederspannungsfuehrender Teile (IP2X/IPXXB)", Description: "Gehaeuse um niederspannungsfuehrende Teile werden fingersicher und nur mit Werkzeug zu oeffnen ausgefuehrt. Mindestschutzart IP2X bzw. IPXXB nach IEC 60529.", HazardCategory: "electrical", Examples: []string{"Schaltschrank mit Tuerverriegelung und Werkzeugzugang", "Klemmenabdeckung mit IPXXB Fingerschutz"}, NormReferences: []string{"EN 60204-1 Ziff. 6.2.2", "IEC 60529 — IP2X/IPXXB"}},
}
}