Expand description
2026-09-28: Two digests. plan_digest is SHA-256 over a canonical serialization of what a
plan runs: its groups (members, kernels, repetition, emitter, numerics) and every edge’s
stored format and state, under the plan’s arch, mode and rows. rules_digest is SHA-256
over the FUSIONS.toml text the rules were parsed from.
Owner: metrale-circuit. Invariants:
- The plan serialization is a fixed-order text with a tag and a schema number up front, one record per line, every field labelled, so the same bytes in another field give another digest.
- A plan digest moves only when the plan does: editing, adding or reordering a rule that the plan does not select leaves it unchanged. Rule ids and citations are names, not content, and are not hashed; the kernels a group runs are.
- The rule set is attested by
rules_digestand by the closure hash, which covers FUSIONS.toml as a config.
Constants§
- DIGEST_
SCHEMA - 2026-09-28: Bumped when the canonical form changes.
Functions§
- canonical
- 2026-09-28: The canonical text the plan digest is taken over.
- plan_
digest - 2026-09-28: Lower-case hex SHA-256 of
canonical. - plans_
digest - 2026-09-28: Lower-case hex SHA-256 over several plan digests, each followed by a newline, in the given order: one value for a set of plans compiled together.
- rules_
digest - 2026-09-28: Lower-case hex SHA-256 of the FUSIONS.toml text the rules came from.