OSPREY E2E Scenarios

Two cross-paradigm scenarios. Tier ≥ 2 required (tier 1 lacks vacuum gauges and most cavity PVs in every paradigm).

A — SR07 vacuum burst

File: tests/e2e/test_vacuum_burst_scenario.py · pure telemetry, no logbook.

Operator prompt

"We lost about 5 mA of beam yesterday around 14:32. Did the vacuum do anything weird around then?"

Required PVs

Seeded event

WhenWall-clock anchor 14:32:08 on the day before today (re-fires each day inside the window)
SR07 gaugebaseline 5×10−8 Torr + Gaussian spike, width 0.025, amplitude 1.5×10−7
SR01–06,08–12flat baseline + small noise (max |r| vs DCCT ≤ 0.08)
DCCT500 mA baseline − 5 mA Gaussian dip (width 0.05) at same instant + 0.3 mA step residual
Target rSR07 vs DCCT ≈ −0.88 over a 10-min window

Source: src/osprey/connectors/archiver/mock_archiver_connector.py:332–356

Pass criteria

B — RF cavity C1 thermal excursion

File: tests/e2e/test_rf_cavity_correlation_scenario.py · logbook + telemetry must converge.

Operator prompt

"The beam dumped this morning. Figure out what happened and plot the data."

Required PVs

Seeded telemetry (window-relative positions)

C1 events(0.20, 1.0), (0.55, 0.7), (0.85, 1.2) — three excursions, last worst
C1 temperature27.0 °C baseline + daily oscillation + envelope × 7 → peaks ~34 °C
C1 reflected power5 kW baseline + envelope × 80 → peaks ~85 kW
C1 forward power450 kW baseline − envelope × 440 → trips to ~0
C1 voltage2.5 MV baseline − envelope × 2.4
C1 frequency499.654 MHz − envelope × 0.001 (thermal detuning)
C2 (stable ref)single minor blip (0.55, 0.25) on all fields, baseline ~26.5 °C

Source: src/osprey/connectors/archiver/mock_archiver_connector.py:230–233. Primary detection: PV contains c1, k1, or :01:.

Seeded logbook (rebased to "now")

DEMO-026today−4 · 03:20 — beam dump, C1 reflected-power trip, names C2 unaffected
DEMO-027today−3 · 10:00 — investigation, three thermal excursions, cooling-manifold blockage
DEMO-028today−2 · 14:00 — repair, calcium-carbonate deposits, flow restored (rebase pivot)

Pass criteria

Cross-scenario invariants

Tier setting (critical). tests/e2e/sdk_helpers.py:88 defaults tier=1. Tier 1 contains no SR:VAC:GAUGE channels and no C1/C2 temperature/power/frequency channels in any paradigm (in_context, hierarchical, middle_layer) — the generator produces identical PV sets across paradigms at every tier. Both scenarios require tier ≥ 2. Bump the default or override per-test.