pub fn validate_code_rules(
action: ActionKind,
target_class: &str,
evalset_hash: Option<&str>,
) -> Result<()>Expand description
Rule E1’s structural checks (§7.4), applied when a draft is stamped and re-checked when a stored grain is loaded (a hand-authored grain must not bypass the rule):
code_revision⇔ atool:target, and it MUST pin an evalset hash.- An
evalset:target is its own always-human-approved class: never acode_revision, and never itself pinned (the gate cannot gate itself). - No other target class carries a pin.