docs(CONTRACT): document valve's lack of a maintenance state machine
valve's schema mode enum includes `maintenance` (which gates sources) but the FSM has no `entermaintenance` / `exitmaintenance` states and the schema's `sequences` block has only startup / shutdown / emergencystop / boot. Maintenance mode therefore disables external sources but doesn't run a maintenance sequence — different shape from rotatingMachine. Added a Limitations section to the CONTRACT so this is explicit rather than surfacing as a wiki TODO. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
12
CONTRACT.md
12
CONTRACT.md
@@ -68,6 +68,18 @@ from the measurement container (e.g. `delta_predicted_pressure`,
|
|||||||
(`idle → starting → warmingup → operational → accelerating →
|
(`idle → starting → warmingup → operational → accelerating →
|
||||||
decelerating → stopping → coolingdown → idle`, plus `off`).
|
decelerating → stopping → coolingdown → idle`, plus `off`).
|
||||||
|
|
||||||
|
## Limitations vs `rotatingMachine`
|
||||||
|
|
||||||
|
- **No `maintenance` state machine.** The schema's `mode.current` enum
|
||||||
|
accepts `maintenance` (gates sources via `isValidSourceForMode`), but
|
||||||
|
the FSM has no `entermaintenance` / `exitmaintenance` states and the
|
||||||
|
`sequences` schema declares only `startup`, `shutdown`, `emergencystop`,
|
||||||
|
and `boot`. Configuring `maintenance` mode therefore disables external
|
||||||
|
command sources but does not put the valve through a maintenance
|
||||||
|
sequence. Aligns with valve's role as a passive flow-controlled
|
||||||
|
actuator; lift to RM-style FSM if/when site maintenance procedures
|
||||||
|
require explicit state transitions.
|
||||||
|
|
||||||
## Events emitted by `source.measurements.emitter`
|
## Events emitted by `source.measurements.emitter`
|
||||||
|
|
||||||
The `MeasurementContainer` fires `<type>.<variant>.<position>` whenever
|
The `MeasurementContainer` fires `<type>.<variant>.<position>` whenever
|
||||||
|
|||||||
Reference in New Issue
Block a user