happy-sim-analyze
Analyze simulation results and provide insights
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Analyze simulation results and provide insights
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Run ruff linter and formatter on the project
Add observability (probes, trackers, charts) to a simulation
Help choose the right happysimulator components for a use case
Troubleshoot a broken or misbehaving simulation
Walk through a library example with detailed explanation
Generate a complete simulation from a high-level description
| name | happy-sim-analyze |
| description | Analyze simulation results and provide insights |
Run a simulation and interpret its results using happysimulator's built-in analysis tools.
Identify what to analyze:
Read the simulation file to understand its structure: what entities exist, what metrics are collected, and what the simulation models.
Run the simulation if needed:
python <file>
Capture the output.
Analyze results using these approaches:
sim.run())Key fields to examine:
summary.duration_s — simulated time elapsedsummary.total_events_processed — total event countsummary.events_per_second — simulation throughputsummary.wall_clock_seconds — real time takensummary.entities — per-entity stats (events handled, queue depth if applicable)sink.latency_stats() # {count, avg, min, max, p50, p99}
tracker.mean_latency()
tracker.p50()
tracker.p99()
tracker.data.between(start, end).mean() # slice a time range
data.mean() # overall average
data.percentile(0.99) # p99
data.between(30.0, 60.0).mean() # steady-state only (skip warmup)
data.rate(window_s=1.0) # events per second over time
buckets = data.bucket(window_s=1.0)
buckets.times() # time axis
buckets.means() # mean per window
buckets.p99s() # p99 per window
from happysimulator.analysis import detect_phases
phases = detect_phases(data, window_s=5.0, threshold=2.0)
# Returns list of phases: warmup, steady-state, anomaly, etc.
from happysimulator.analysis import analyze
analysis = analyze(summary, latency=tracker.data, queue_depth=probe_data)
print(analysis.to_prompt_context(max_tokens=2000))
Provide a plain-English interpretation covering:
Health Summary — Is the system healthy, stressed, or failing? One sentence.
Key Metrics — Report the most important numbers:
Phases — Did the simulation have distinct phases? (warmup, steady-state, overload, recovery)
Stability — Is the system stable (queues bounded), metastable (appears stable but fragile), or unstable (unbounded growth)?
Bottleneck — Where is the bottleneck? Which entity has the highest utilization or deepest queue?
Recommendations — Concrete suggestions:
If the simulation doesn't have enough instrumentation to analyze, suggest using /happy-sim-add-instrumentation first.