Composition signature
The wiring diagram is the workspace-level resolution of every cross-package symbol reference — the closed-world view of how packages compose. ox computes it from the package graph and the lockfile.
WiringDiagram :=
map from (consumer_package, ref_site)
to (target_package, target_qualified_path, target_stable_id)
The composition signature is the cryptographic identity of one composition:
composition_signature := BLAKE3-256(
wiring_diagram_hash ∥ // BLAKE3-256 over the canonical resolved symbol table
standpoint_lattice_hash ∥ // BLAKE3-256 over canonical-form composed lattice
tier_ladder_version ∥ // u32 LE (preamble, Versioning — four orthogonal axes)
runtime_contract_version // u32 LE (preamble, Versioning — four orthogonal axes)
)
The hash is BLAKE3-256 throughout the content-addressing story (RFD 0001 Phase 2 replaced SHA-256). ox build computes wiring_diagram_hash as a BLAKE3 over the canonically-sorted (axiom-kind, content-id) of the structural axiom events — the schema-defining declarations, axioms, and rule-modes — so it is sensitive to a relation/concept rename or a rule change but stable under instance-data churn (asserted facts carry no structural weight); standpoint_lattice_hash is the same construction over the standpoint and bridge declarations.
The wiring diagram source is not preserved in .oxbin — it is a transient build-time input. Only the four sub-hashes survive (wiring_diagram_hash and standpoint_lattice_hash in global-control; the two version u32s in the preamble). ox build checks that the wiring is correct; the runtime re-verifies at load that the stored sub-hashes have not been tampered with. Two semantically equivalent compositions produce byte-equivalent .oxbin files — the central content-addressing invariant (Content-addressing).