Skip to main content

Module gates

Module gates 

Source
Expand description

The gates brief — the engine-rendered standing of every declared transition_requires_checks gate (graph-plans plan 03, the yes branch of the gated-transition spike).

For each mounted mem whose schema declares the constraint on at least one type, the brief lists every non-stub entity of a gated type with its gated field’s current value, whether it stands at the gated value (“closed”) or before it (“open”), and — for open entities — the related-set coverage the transition would require: how many related entities the declared edges reach and which of them lack a fresh confirming check record. The related-set enumeration is crate::ops::health::transition_gate_standing, the same code the write-time refusal runs, so the brief can never disagree with the gate.

Open entities are listed in dependency order: a topological sort over the edges BETWEEN gated entities whose rel-type the schema declares acyclic (in the planning schema that is plan → plan REQUIRES; any schema’s acyclic ordering vocabulary works the same), prerequisites first, ties by id. The brief reports state, never policy: which open entity a consumer acts on next — and which it must refuse (a human-gate marker, a parked status) — stays the consumer’s judgement over its schema’s vocabulary.

The renderer is the shared engine entry point (Engine::render_gates_brief) per the brief-family precedent (due, ingest, sync): CLI verb, byte-identical everywhere, deliberately no MCP tool.