Problem
The same control_mode / context_mode / structured_control_mode / candidate-list invariants are validated in two places:
scheduler.py:84-111 (AEES)
episode.py:90-130 (StructuredEpisodeManager)
When a constraint changes, both must be updated or they drift.
Proposal
Pick one layer to own validation. The natural home is StructuredEpisodeManager (it owns the structured-control state); AEES should pass its config through and trust the manager to raise. Alternatively, extract a single _validate_control_config(...) helper used by both.
Acceptance criteria
Problem
The same
control_mode/context_mode/structured_control_mode/ candidate-list invariants are validated in two places:scheduler.py:84-111(AEES)episode.py:90-130(StructuredEpisodeManager)When a constraint changes, both must be updated or they drift.
Proposal
Pick one layer to own validation. The natural home is
StructuredEpisodeManager(it owns the structured-control state);AEESshould pass its config through and trust the manager to raise. Alternatively, extract a single_validate_control_config(...)helper used by both.Acceptance criteria