pub struct StepGuardNode {
pub kind: String,
pub name: String,
pub target: String,
pub binding: String,
pub loc: Loc,
}Expand description
v2.83.0 — a governance application written INSIDE the step it
governs: mandate SECCompliance on data, shield PatientShield on symptoms -> clean_data, ots Extract on raw.
README XV has always written the application in this position — a mandate
next to the output: it constrains, scoped to THIS step’s generation — and
the parser accepted the same form only at flow level, which is why README
blocks 40–42 never compiled. The AST node is deliberately the same shape as
the flow-level *ApplyStep family: one concept, two positions.
Fields§
§kind: StringWhich primitive: "mandate" | "shield" | "ots".
name: StringThe declared governor this guard names (e.g. SECCompliance).
target: StringWhat it is applied to — a binding or a call expression, verbatim
(data, ContractDrafter(terms)). Empty when no on clause.
binding: StringThe binding the guarded result flows into (-> clean_data). Empty when
absent.
loc: Loc