---
name: eae-performance-analyzer
description: >
Prevents event storms in EcoStruxure Automation Expert applications through
static analysis of event propagation, CPU load estimation, queue depth
prediction, and anti-pattern detection. Analyzes IEC 61499 artifacts to
identify cascading events before deployment.
license: MIT
compatibility: Designed for EcoStruxure Automation Expert 25.0+, Python 3.8+, PowerShell (Windows)
metadata:
version: "1.0.0"
model: claude-opus-4-5-20251101
domain: industrial-automation
standard: IEC-61499
eae_version: "25.0+"
timelessness_score: 9/10
user-invocable: true
platform: EcoStruxure Automation Expert
---
# EAE Performance Analyzer - Event Storm Prevention
Prevents catastrophic event storms in EcoStruxure Automation Expert applications through comprehensive static analysis. Identifies cascading event patterns, predicts queue overflow, estimates CPU load, and detects anti-patterns before deployment.
**Critical Problem**: Event storms cause Error Halt states, event loss, I/O glitches, and cross-communication failures in production EAE systems. Current detection is reactive (runtime monitoring) rather than proactive (design validation).
**Solution**: Multi-dimensional static analysis at design time calculates event multiplication factors, predicts queue depths, estimates CPU utilization, and flags explosive patterns with actionable recommendations.
---
## Quick Start
**Analyze entire application**:
```bash
Analyze my EAE application for event storm risks
```
**Analyze specific resource**:
```bash
Check Resource1 in my EAE application for performance issues
```
**Generate visual event flow diagram**:
```bash
Analyze my EAE application and show me the event flow visualization
```
---
## Triggers
This skill activates on:
- "Analyze my EAE application for event storms"
- "Check for performance issues in my EAE project"
- "Detect event cascade problems in EcoStruxure Automation Expert"
- "Validate event flow before deployment"
- "Predict event storm risks"
---
## Quick Reference
| Analysis Dimension | Metric | Safe Threshold | Warning Threshold | Critical Threshold |
|--------------------|--------|----------------|-------------------|-------------------|
| **Event Multiplication** | Single event → N events | <10x | 10-20x | >20x |
| **Queue Depth** | Peak events in queue | <100 | 100-500 | >500 |
| **CPU Load** | Resource utilization % | <70% | 70-90% | >90% |
| **Anti-Patterns** | Detected issues | 0 | Minor patterns | Severe patterns |
| Risk Level | Deployment Recommendation | Typical Action |
|------------|--------------------------|----------------|
| **SAFE** | Deploy with confidence | No action needed |
| **CAUTION** | Review before deployment | Optional optimization |
| **WARNING** | Deploy with monitoring | Address high-priority issues |
| **CRITICAL** | Do not deploy | Fix severe issues first |
---
## How It Works
### 4-Dimensional Analysis
The skill performs parallel analysis across 4 independent dimensions:
```
Parse EAE Application (.fbt, .cfg, .xml)
│
├─→ [Event Flow Analysis] → Multiplication factors, cascade paths
├─→ [CPU Load Estimation] → Algorithm complexity, execution time
├─→ [Queue Depth Prediction] → External/internal queue modeling
└─→ [Pattern Detection] → Known storm anti-patterns
│
▼
Synthesis → Integrated risk assessment + recommendations
│
▼
Reports (JSON, Markdown, Graphviz) + Deployment decision
```
### Event Multiplication Factor (Primary Metric)
The **event multiplication factor** quantifies how many downstream events result from a single event source:
- **1.0x**: No multiplication (1 event → 1 event) - Ideal
- **5.0x**: Low multiplication (1 event → 5 events) - Safe
- **15.0x**: Moderate multiplication - Monitor
- **30.0x**: High multiplication - Warning
- **50.0x+**: Explosive multiplication - Critical storm risk
**Example**: An I/O change event triggers 3 FBs, each generating 2 output events that trigger 4 more FBs → 1 event becomes 26+ events (26x multiplication).
---
## Commands
### Basic Analysis
```bash
# Analyze entire application
Analyze c:/Projects/MyEAEApp for event storm risks
# Analyze with custom output location
Analyze c:/Projects/MyEAEApp and save report to c:/Reports/performance.md
```
### Resource-Specific Analysis
```bash
# Analyze single resource (faster iteration)
Analyze Resource_PLC1 in c:/Projects/MyEAEApp
# Compare multiple resources
Analyze c:/Projects/MyEAEApp and compare performance across resources
```
### Advanced Options
```bash
# Include event flow visualization
Analyze c:/Projects/MyEAEApp with event flow diagram
# Specify target platform for calibrated thresholds
Analyze c:/Projects/MyEAEApp for soft-dpac platform
# Custom load scenario
Analyze c:/Projects/MyEAEApp under worst-case load scenario
```
---
## Scripts
This skill includes 4 autonomous Python scripts for fully agentic operation:
### 1. `analyze_event_flow.py` - Event Cascade Analysis
**Purpose**: Traces event propagation through FBNetworks, calculates multiplication factors, identifies explosive patterns.
**Usage**:
```bash
python scripts/analyze_event_flow.py --app-dir c:/Projects/MyEAEApp --output results.json
python scripts/analyze_event_flow.py --app-dir c:/Projects/MyEAEApp --visualize --output flow.dot
python scripts/analyze_event_flow.py --app-dir c:/Projects/MyEAEApp --resource Resource1
```
**Exit Codes**:
- `0`: No issues (multiplication <10x)
- `10`: Moderate risk (10-20x multiplication)
- `11`: High risk (>20x multiplication)
- `1`: Error (parsing failure, invalid files)
**Output**: JSON with multiplication factors, cascade paths, explosive patterns, resource breakdown
---
### 2. `estimate_cpu_load.py` - CPU Utilization Analysis
**Purpose**: Analyzes ST algorithm complexity, estimates execution time, aggregates resource CPU load.
**Usage**:
```bash
python scripts/estimate_cpu_load.py --app-dir c:/Projects/MyEAEApp --output cpu_load.json
python scripts/estimate_cpu_load.py --app-dir c:/Projects/MyEAEApp --platform hard-dpac-m262
python scripts/estimate_cpu_load.py --app-dir c:/Projects/MyEAEApp --resource Resource1
```
**Exit Codes**:
- `0`: Low load (<70%)
- `10`: Moderate load (70-90%)
- `11`: High load (>90%)
- `1`: Error (parsing failure)
**Output**: JSON with per-FB execution estimates, per-resource CPU load percentages, bottleneck identification
**Note**: Execution time estimates are approximate (±50% margin) due to platform variance and compiler optimizations.
---
### 3. `predict_queue_depth.py` - Queue Overflow Prediction
**Purpose**: Models event queue behavior, predicts peak depths under various load scenarios.
**Usage**:
```bash
python scripts/predict_queue_depth.py --app-dir c:/Projects/MyEAEApp --event-flow-results results.json
python scripts/predict_queue_depth.py --app-dir c:/Projects/MyEAEApp --event-flow-results results.json --scenario worst-case
python scripts/predict_queue_depth.py --app-dir c:/Projects/MyEAEApp --event-flow-results results.json --resource Resource1
```
**Exit Codes**:
- `0`: Safe (<100 events)
- `10`: Moderate (100-500 events)
- `11`: Overflow risk (>500 events)
- `1`: Error (missing dependencies)
**Output**: JSON with queue depth predictions (normal/burst/worst-case), event source contributions, overflow warnings
**Requires**: Output from `analyze_event_flow.py` (JSON file path via `--event-flow-results`)
---
### 4. `detect_storm_patterns.py` - Anti-Pattern Detection
**Purpose**: Rule-based detection of known event storm anti-patterns from SE Application Design Guidelines.
**Usage**:
```bash
python scripts/detect_storm_patterns.py --app-dir c:/Projects/MyEAEApp --output patterns.json
```
**Exit Codes**:
- `0`: No anti-patterns
- `10`: Minor anti-patterns (INFO/WARNING)
- `11`: Severe anti-patterns (CRITICAL)
- `1`: Error (parsing failure)
**Output**: JSON with detected patterns, severity levels, source locations, pattern-specific recommendations
**Detected Anti-Patterns**:
- **TIGHT_EVENT_LOOP** (CRITICAL): Event loops back to source within 2 hops
- **UNCONTROLLED_IO_MULTIPLICATION** (WARNING): Single I/O event triggers >30 events
- **CASCADING_TIMERS** (WARNING): Multiple fast timers on same resource
- **HMI_BURST_AMPLIFICATION** (INFO): HMI events trigger >10 downstream events
- **CROSS_RESOURCE_AMPLIFICATION** (WARNING): Cross-resource events trigger >15 events
---
## Validation
### Pre-Analysis Validation
Before analysis begins:
- ✅ Verify EAE application directory exists and contains .fbt/.cfg/.xml files
- ✅ Parse all XML files for well-formedness
- ✅ Resolve all FB references (check for missing library FBs)
- ✅ Validate resource mappings (FBs assigned to valid resources)
### Analysis Validation
During analysis:
- ✅ Event multiplication factor ≥0 (sanity check)
- ✅ Queue depth predictions ≥0 (sanity check)
- ✅ CPU load estimates 0-100% (sanity check)
- ✅ All cascade paths terminate (no infinite loops in graph traversal)
### Post-Analysis Validation
After synthesis:
- ✅ Every WARNING/CRITICAL issue has at least one recommendation
- ✅ Overall risk assessment matches worst individual dimension
- ✅ Deployment recommendation justified by specific metrics
- ✅ All requested output formats generated successfully
---
## Anti-Patterns
| Avoid | Why | Instead |
|-------|-----|---------|
| **Runtime-only monitoring** | Too late - storms discovered in production cause downtime | Static analysis at design time |
| **Single-metric focus** (CPU only) | Event storms are multi-dimensional | 4-dimensional analysis (events, CPU, queues, patterns) |
| **Blocking deployment without override** | Tool has false positives, engineer judgment paramount | Recommend but allow override with confirmation |
| **Perfect accuracy claims** | Algorithm timing is approximate due to platform variance | Communicate uncertainty (±50% margin) |
| **Ignoring resource boundaries** | Distributed apps have different characteristics | Per-resource analysis + cross-resource modeling |
| **Raw metrics without fixes** | Engineers need "how to fix" not just "what's wrong" | Every issue includes actionable recommendation |
| **Slow, complex analysis** | Won't be used in iterative workflow | Fast (<2 min), minimal setup |
---
## Verification Criteria
After running analysis, verify:
- [ ] Analysis completed in <2 minutes for large applications (1000+ FBs)
- [ ] All 4 scripts returned exit codes 0, 10, or 11 (not 1=error)
- [ ] JSON reports parse successfully and contain expected fields
- [ ] Multiplication factors are numeric and ≥0
- [ ] Queue depth predictions are numeric and ≥0
- [ ] CPU load estimates are 0-100%
- [ ] Every WARNING/CRITICAL issue has recommendation
- [ ] Overall risk level matches worst individual dimension
- [ ] Deployment recommendation is one of: SAFE TO DEPLOY, DEPLOY WITH CAUTION, DO NOT DEPLOY
- [ ] If event flow visualization requested, .dot file generated
---
## Integration with EAE Skills
| Skill | Integration Point | How Performance Analyzer Helps |
|-------|------------------|-------------------------------|
| **eae-basic-fb** | After Basic FB creation | Analyzes event generation patterns, warns if high multiplication potential |
| **eae-composite-fb** | After Composite FB creation | Checks FBNetwork complexity, identifies cascade risks |
| **eae-cat** | After CAT creation | Validates cross-communication patterns, HMI event loads |
| **eae-adapter** | After adapter creation | Analyzes bidirectional event flow impact |
| **eae-skill-router** | Orchestration | Automatically suggests performance analysis after artifact creation |
---
Deep Dive: Event Multiplication Analysis
## Event Multiplication Mechanics
### IEC 61499 Execution Model
EAE follows the IEC 61499 event-driven execution model with dual queues per resource:
1. **External Queue**: Events from outside the resource (I/O, HMI, cross-communication) - FIFO
2. **Internal Queue**: Events generated by FBs within the resource
**Critical Processing Order**:
1. Pop event from external queue
2. Execute target FB
3. FB generates output events → pushed to internal queue
4. **Process ALL internal events until queue empty** (cascade completes)
5. Return to step 1 (next external event)
**Storm Trigger**: If step 4 generates more events than step 1 consumes, queues grow unbounded.
### Multiplication Factor Calculation
For each event source `S`:
```
Multiplication Factor = Total Events Generated / 1 Event from S
Example:
I/O Change Event "DI_Start"
→ Triggers ControllerFB (generates 2 events)
→ Each triggers 2 ProcessFBs (4 events total)
→ Each triggers LoggerFB (4 events total)
Total: 1 + 2 + 4 + 4 = 11 events
Multiplication Factor: 11 / 1 = 11.0x
```
### Event Sources Modeled
| Source Type | Frequency | Characteristics |
|-------------|-----------|-----------------|
| **I/O Changes** | Bus cycle dependent (10-100ms) | State-driven, bursty |
| **HMI Interactions** | Operator-driven (1-10 Hz) | Unpredictable, can burst |
| **Timers (E_CYCLE)** | Fixed (1ms - 1s) | Constant, predictable |
| **Cross-Communication** | Application-driven | Network latency (10-100ms) |
| **Internal Logic** | Event-driven cascade | Multiplication dependent |
### Cascade Path Tracing
The script uses **Breadth-First Search (BFS)** to enumerate all paths from event source to leaf FBs:
```
Source: INIT event on MainFB
Path 1: MainFB → ProcessFB1 → LoggerFB (3 hops, 3 events)
Path 2: MainFB → ProcessFB2 → AlarmFB (3 hops, 3 events)
Path 3: MainFB → ProcessFB2 → TrendFB (3 hops, 3 events)
Multiplication: 9 events / 1 source = 9.0x
```
Paths are color-coded in visualizations:
- Green: <10x (safe)
- Yellow: 10-20x (caution)
- Red: 20-50x (warning)
- Dark Red: >50x (critical)
Deep Dive: CPU Load Estimation
## Algorithm Complexity Analysis
### ST Code Metrics
The script analyzes Structured Text (ST) algorithms using simplified metrics:
| Metric | Description | Weight |
|--------|-------------|--------|
| **Cyclomatic Complexity** | Branches (IF/CASE) + Loops (FOR/WHILE) + 1 | High impact |
| **Operation Count** | Arithmetic, logic, function calls | Medium impact |
| **Data Access** | Variable reads/writes, array indexing | Low impact |
**Formula**:
```
Execution Time ≈ (Complexity × 10μs) + (Operations × 1μs) + (DataAccess × 0.5μs)
```
**Platform Factors**:
- Soft dPAC (Windows): 1.0x baseline
- Soft dPAC (Linux): 0.9x (slightly faster)
- Hard dPAC M251: 1.5x (slower embedded CPU)
- Hard dPAC M262: 1.2x (faster embedded CPU)
### Limitations
**IMPORTANT**: Execution time estimates are **heuristic-based** and vary ±50% due to:
- Compiler optimizations (loop unrolling, inlining)
- Cache effects (data locality, cache hits/misses)
- Operating system scheduling (preemption, interrupts)
- Instruction-level parallelism (CPU pipelining)
- Platform-specific instruction sets (SSE, AVX on x86)
**Treat estimates as order-of-magnitude indicators**: 50μs vs 500μs vs 5ms, not precise timings.
### Resource CPU Load Aggregation
For each resource:
```
CPU Load % = (Σ FB Execution Times × Event Frequency) / Available CPU Time × 100
Example Resource1:
FB1: 100μs × 10 Hz (I/O events) = 1000μs/s = 0.1% load
FB2: 500μs × 100 Hz (timer events) = 50000μs/s = 5.0% load
FB3: 200μs × 5 Hz (HMI events) = 1000μs/s = 0.1% load
Total: 5.2% load
Headroom: 94.8%
```
**Thresholds**:
- <70%: SAFE (ample headroom)
- 70-90%: CAUTION (monitor under load)
- 90-95%: WARNING (minimal headroom)
- >95%: CRITICAL (insufficient headroom for bursts)
Deep Dive: Queue Depth Prediction
## Queue Behavior Modeling
### Dual Queue System
Each EAE resource maintains two event queues:
```
External Queue (from outside resource)
← I/O events
← HMI events
← Cross-communication events
← Timer events (E_CYCLE)
Internal Queue (from FBs in resource)
← FB output events
← Algorithm-generated events
← Cascaded events
```
**Processing**: External queue feeds internal queue, internal queue processes until empty before next external event.
### Load Scenarios
| Scenario | Description | Event Rates |
|----------|-------------|-------------|
| **Normal** | Average operating conditions | 1× baseline rates |
| **Burst** | Operator interaction spike | 2× baseline rates, 5s duration |
| **Worst-Case** | All sources simultaneous + timers aligned | 5× baseline rates, all timers fire together |
### Prediction Formula
```
Peak Queue Depth = (Event Generation Rate × Burst Duration) - (Processing Rate × Burst Duration)
If Peak Depth > Threshold:
Overflow Risk = HIGH
```
**Example**:
```
Normal:
Generation: 100 events/s
Processing: 200 events/s
Queue Depth: 0 (steady state)
Burst:
Generation: 200 events/s (2× normal)
Processing: 200 events/s
Queue Depth: 0 (just keeping up)
Worst-Case:
Generation: 500 events/s (5× normal, all aligned)
Processing: 200 events/s
Queue Depth: (500 - 200) × 5s = 1500 events (OVERFLOW)
```
### Event Source Contributions
The report breaks down which sources contribute most to queue load:
```json
{
"event_sources_contribution": {
"IO_CHANGE": "35%",
"HMI_INTERACTION": "25%",
"TIMERS": "20%",
"CROSS_COMMUNICATION": "15%",
"INTERNAL_LOGIC": "5%"
}
}
```
This identifies where to focus optimization efforts (e.g., "Reduce timer frequency" vs "Consolidate HMI events").
Deep Dive: Anti-Pattern Detection
## Known Storm Patterns
Based on SE Application Design Guidelines (EIO0000004686.06):
### 1. TIGHT_EVENT_LOOP (CRITICAL)
**Description**: FB event output connects back to its own input within 2 hops, creating unstoppable cascade.
**Detection**: Graph cycle detection with depth limit 2.
**Example**:
```
ControllerFB.Output_Event
→ ProcessFB.Input_Event
→ ProcessFB.Output_Event
→ ControllerFB.Input_Event ← LOOP DETECTED
```
**Risk**: Infinite event generation until Error Halt.
**Recommendation**: Break loop with state guard (flag variable) or timer-based debouncing.
---
### 2. UNCONTROLLED_IO_MULTIPLICATION (WARNING)
**Description**: Single I/O change triggers >30 downstream events (common with broadcast patterns).
**Detection**: Event cascade tracing from I/O sources, count total events.
**Example**:
```
DI_Emergency_Stop changes
→ Triggers SafetyControllerFB (5 events)
→ Each triggers AlarmFB + LoggerFB + HMIFB (3 × 5 = 15 events)
→ Each triggers NotificationFB (15 events)
Total: 1 + 5 + 15 + 15 = 36 events (>30 threshold)
```
**Risk**: I/O events are frequent (10-100ms cycle) - high multiplication causes saturation.
**Recommendation**: Consolidate responses using adapter pattern or EventChainHead FB (SE.AppSequence library).
---
### 3. CASCADING_TIMERS (WARNING)
**Description**: Multiple fast timers (E_CYCLE <50ms) on same resource sum to high frequency baseline load.
**Detection**: Sum all timer frequencies per resource, flag if >100Hz aggregate.
**Example**:
```
Resource1:
Timer1: E_CYCLE at 20ms (50 Hz)
Timer2: E_CYCLE at 30ms (33 Hz)
Timer3: E_CYCLE at 40ms (25 Hz)
Total: 50 + 33 + 25 = 108 Hz (>100 Hz threshold)
```
**Risk**: Constant event load leaves no headroom for I/O or HMI events.
**Recommendation**: Reduce timer frequencies, consolidate timers, or distribute across resources.
---
### 4. HMI_BURST_AMPLIFICATION (INFO)
**Description**: HMI operator actions trigger >10 downstream events (normal but can spike under rapid interaction).
**Detection**: Trace HMI event sources (IThis interface events), count cascade.
**Example**:
```
HMI Setpoint Change
→ ControllerFB validates (2 events)
→ ProcessFB updates (3 events)
→ TrendFB logs (3 events)
→ AlarmFB checks limits (2 events)
Total: 1 + 2 + 3 + 3 + 2 = 11 events (>10 threshold)
```
**Risk**: Rapid operator interactions (button mashing) create bursts.
**Recommendation**: Add debouncing (e.g., 100ms delay) or rate limiting on HMI inputs.
---
### 5. CROSS_RESOURCE_AMPLIFICATION (WARNING)
**Description**: Event crossing resource boundary (via OPC-UA/networking) triggers >15 events on target resource.
**Detection**: Identify cross-resource connections, trace cascade on target resource.
**Example**:
```
Resource1.OutputEvent
→ [Network: 10-100ms latency]
→ Resource2.InputEvent
→ Triggers 18 events on Resource2 (>15 threshold)
```
**Risk**: Network latency + event multiplication can cause target resource saturation.
**Recommendation**: Reduce cross-resource event frequency, consolidate with adapters, or use EventChainHead.
Deep Dive: Actionable Recommendations
## Recommendation Patterns
For each identified issue, the skill provides specific, implementable fixes:
### Event Consolidation Pattern
**Problem**: High event multiplication (20-50x)
**Recommendation**:
```
Use EventChainHead (SE.AppSequence library) to consolidate cascading events:
1. Create EventChainHead FB instance
2. Connect all event sources to EventChainHead.Input[]
3. EventChainHead outputs single CONSOLIDATED event
4. Connect CONSOLIDATED to downstream FBs
Reduction: 50x → 5x (10:1 improvement)
```
**Before**:
```
Event → FB1 → FB2 → FB3 → FB4 → FB5 (5 events)
↘ FB6 → FB7 → FB8 → FB9 → FB10 (5 events)
↘ ... (repeat 5× = 50 events total)
```
**After**:
```
Event → EventChainHead → CONSOLIDATED → (all FBs receive 1 event)
```
---
### Adapter Encapsulation Pattern
**Problem**: Uncontrolled I/O multiplication (>30 events)
**Recommendation**:
```
Encapsulate related I/O responses in Composite FB with adapter interface:
1. Create Composite FB "SafetyResponseController"
2. Add adapter input (Socket) for I/O event
3. Implement response logic inside Composite (hidden complexity)
4. Export single adapter output (Plug) with consolidated result
5. Connect I/O to adapter Socket
Reduction: 36 events → 3 events (adapter input + internal + adapter output)
```
**Benefit**: I/O sees simple 1:1 connection, complexity hidden inside Composite.
---
### Timer Frequency Reduction Pattern
**Problem**: Cascading timers (>100Hz aggregate)
**Recommendation**:
```
Reduce non-critical timer frequencies:
Identify timers by criticality:
- Safety/control loops: Keep fast (10-50ms)
- Trending/logging: Slow to 100-500ms
- Heartbeats: Slow to 1000ms
Example:
TrendFB timer: 20ms → 200ms (50 Hz → 5 Hz)
Savings: 45 Hz per resource
```
**Impact**: 108 Hz → 63 Hz (below 100 Hz threshold)
---
### Resource Distribution Pattern
**Problem**: Single resource overloaded (CPU >90% or queue >500)
**Recommendation**:
```
Distribute FBs across multiple resources:
1. Identify high-load FBs (top 20% by CPU)
2. Move to dedicated resource (Resource2)
3. Use adapters for cross-resource communication
4. Update resource mappings in .cfg
Example:
Resource1: 95% load → 65% load (30% moved)
Resource2: 0% load → 30% load (receives moved FBs)
```
**Consideration**: Cross-resource events have 10-100ms latency - ensure control loops stay on same resource.
---
### Loop Breaking Pattern
**Problem**: Tight event loop (CRITICAL)
**Recommendation**:
```
Break loop with state guard:
1. Add BOOL internal variable "m_EventProcessed"
2. In algorithm that generates loop event:
IF NOT m_EventProcessed THEN
m_EventProcessed := TRUE;
// Generate output event
END_IF
3. Reset flag on different event path
Alternative: Use timer-based debouncing (100ms minimum between events)
```
**Result**: Loop executes once per trigger instead of infinitely.
---
## Extension Points
Future enhancements planned:
1. **Simulation-Based Analysis** (Year 2)
- Execute application with synthetic event sources
- Measure actual queue depths and CPU load
- Complement static analysis with dynamic verification
2. **Historical Trend Analysis** (Year 1)
- Track performance metrics over application versions
- Identify regressions (e.g., "v2.1 added 15x multiplication")
- CI/CD integration for automated tracking
3. **Platform-Specific Calibration** (Year 1)
- Empirical calibration of CPU thresholds per platform
- Database of platform profiles (Soft dPAC, M251, M262)
- Improved execution time accuracy
4. **Auto-Refactoring Suggestions** (Year 2+)
- Generate actual code changes (insert EventChainHead, create adapters)
- One-click fixes for common patterns
- Requires deep code generation capability
5. **Multi-Application Analysis** (Year 2+)
- Analyze multiple applications sharing same dPAC
- Aggregate load across multi-tenant scenarios
- Total system capacity planning
---
## References
- [SE Application Design Guidelines (EIO0000004686.06)](../../EAE_ADG/) - Official SE documentation on event storms and performance
- [EAE Concepts Primer](../eae-skill-router/references/EAE_CONCEPTS_PRIMER.md) - IEC 61499 fundamentals
- [Event Storm Patterns](references/event-storm-patterns.md) - Detailed anti-pattern catalog
- [Performance Thresholds](references/performance-thresholds.md) - Threshold calibration rationale
- [Script Implementation Details](references/script-implementation.md) - Algorithm details for scripts
---
## Related Skills
| Skill | Relationship |
|-------|--------------|
| eae-basic-fb | Analyzed by this skill (event generation patterns) |
| eae-composite-fb | Analyzed by this skill (network complexity) |
| eae-cat | Analyzed by this skill (cross-communication patterns) |
| eae-adapter | Analyzed by this skill (bidirectional event flow) |
| eae-skill-router | Orchestrates this skill after artifact creation |
---
## Changelog
### v1.0.0 (2026-01-20)
- Initial release
- 4-dimensional analysis (event flow, CPU load, queue depth, anti-patterns)
- 4 autonomous Python scripts with full agentic capabilities
- Multi-format reporting (JSON, Markdown, Graphviz)
- Integration with existing EAE skill ecosystem
- Timelessness score: 9/10 (based on IEC 61499 fundamentals)