Benjamin Admin
77a497d930
feat(iace): Sprint 3A — Operational State Graph + fix(ucca) flaky keyword sort
...
State Graph:
- 9 Standard-Betriebszustaende (startup, homing, automatic_operation, manual_operation, teach_mode, maintenance, cleaning, emergency_stop, recovery_mode)
- 20 State-Transitions als gerichteter Graph
- OperationalStates + StateTransitions Felder in HazardPattern, MatchInput, PatternMatch
- patternMatches() filtert Patterns nach Betriebszustand (nil = feuert immer)
- Narrative-Parser extrahiert States aus Maschinenbeschreibung (22 Keywords + 4 Transition-Keywords)
- 27 bestehende Patterns mit State-Einschraenkungen annotiert (10 operational, 15 maintenance, 2 cobot)
- MatchReason um operational_state + state_transition Typen erweitert (Explainability)
- 6 neue Tests: NilFiresAlways, MaintenanceFilter, StateTransition, MatchReasons, Count, TransitionValid
UCCA fix:
- Stabiler Tiebreaker (Pattern-ID aufsteigend) bei gleichem Keyword-Score in MatchByKeywords
- Behebt flaky TestControlPatternIndex_MatchByKeywords (1/10 Failure-Rate durch Go map iteration order)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-10 08:05:02 +02:00
Benjamin Admin
85e82d0dfa
feat: IACE 28 operational hazard patterns (HP066-HP093)
...
Fault Clearing (HP066-HP072): Jammed parts releasing, hose bursts,
unexpected restart, stored energy, intervention in running machine,
material jam, falling parts during fault clearing
Maintenance (HP073-HP079): Missing LOTO, falls from platforms,
hot parts contact, hazardous substances, electric shock, ergonomic
access, uncontrolled hydraulic lowering
Setup/Changeover (HP080-HP085): Crushing during tool change, burns
from hot tools, heavy tool drops, unintended stroke in setup mode,
wrong parameters, test cycle hits personnel
Transport/Install/Decommission (HP086-HP090): Machine tipping,
crushing during installation, uncontrolled commissioning movement,
residual media, sharp edges
Cleaning (HP091-HP093): Slipping, chemical exposure, draw-in
Lifecycle keywords expanded: werkzeugwechsel, stoerung, fehlersuche,
klemm, blockier, stau → trigger fault_clearing phase patterns
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-05 17:42:38 +02:00
Benjamin Admin
d4b7943d54
feat: IACE deterministic narrative parser + library extensions
...
Library Extensions:
- 15 new components (C121-C135): knee lever, hydraulic ram, lubrication
system, extraction system, vibrating plate, die tooling, transfer system,
hoist, chute, oil drip tray, pressure relief valve, die space, flywheel,
bin changeover station, inspection scale
- 8 new tags: person_under_load, two_hand_control_required,
thermal_accumulation, mechanical_transmission, oil_mist_risk,
rapid_energy_release, gravity_suspended_load, bypass_risk
- 14 new patterns (HP045-HP058): ram drop, die space crushing, oil mist
inhalation, hot workpiece burns, suspended load, transfer draw-in,
ejection fall, accumulator pressure release, impact noise, flywheel
residual energy, guard bypass, two-hand misoperation, oil leakage,
ergonomic bin changeover
Deterministic Parser (NO LLM):
- keyword_dictionary.go: ~100 entries mapping DE/EN keywords to
component IDs, energy source IDs, and tags
- narrative_parser.go: ParseNarrative() extracts components, energy
sources, lifecycle phases, roles, tech specs, and context tags from
free-text machine descriptions via keyword matching + regex
- Tech spec regex: extracts kN, V, °C, bar, kW, rpm values and
derives energy sources + severity tags automatically
- iace_handler_parser.go: POST /projects/:id/parse-narrative endpoint
chains parser → pattern engine → hazard suggestions
Test: Paste Kniehebelpresse description → should detect 10+ components,
15+ hazards, all deterministically without LLM.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-05 00:29:18 +02:00