@@ -179,3 +179,31 @@ def build_nav_spoof_transition_scenario() -> VerificationScenario:
179179 required_active_degradation_flags = ("nav_spoof_suspected" ,),
180180 ),
181181 )
182+
183+
184+ def build_recovery_deferred_scenario () -> VerificationScenario :
185+ """Return a reusable recovery-action scenario deferred by weak communications."""
186+ return VerificationScenario (
187+ scenario_id = "EXAMPLE-RECOVERY-DEFERRED-001" ,
188+ name = "recovery deferred over weak comms demo" ,
189+ purpose = (
190+ "demonstrate that recovery expansion is deferred when remote recovery"
191+ " intent arrives under degraded communications"
192+ ),
193+ linked_requirements = ("IXS-SYS-034" ,),
194+ linked_hazards = ("IXS-HZ-010" ,),
195+ envelope = _make_control_envelope (
196+ command_source = CommandSource .OPERATOR ,
197+ function_class = FunctionClass .RECOVERY_ACTION ,
198+ requested_action = "request_recovery_review" ,
199+ requested_scope = "vehicle.primary" ,
200+ requested_duration_ms = 100 ,
201+ ),
202+ mission_phase = MissionPhase .ACTIVE ,
203+ safety_posture = SafetyPosture .COMMS_DEGRADED ,
204+ active_degradation_flags = ("comms_link_intermittent" ,),
205+ expectations = VerificationExpectation (
206+ expected_final_outcome = ArbitrationOutcome .DEFER ,
207+ required_active_degradation_flags = ("comms_link_intermittent" ,),
208+ ),
209+ )
0 commit comments