Module: Hecks::Translation::Audit::ApprovalDigest

Included in:
Hecks::Translation::Audit
Defined in:
lib/hecks/translation/audit/approval_digest.rb

Overview

── the human gate, made real ──────────────────────────────────

For the five portable rule kinds the mint verifies the edge mechanically (Layer 2 IS the cross-execution equivalence gate). A compute has no mechanical verification — the Layer-3 sample a human reads is the only one there is — so a compute edge cannot mint until someone has run bin/translation_audit … --approve.

The approval binds to WHAT WAS ACTUALLY REVIEWED, on both axes: a content digest of the parsed edge (change the edge's meaning and the approval lapses; a comment does not), and the journal's high-water ordinal at review time, recorded IN the target database — a token in the repo could not bind to the data, and samples reviewed against staging or against production-as-of-T say nothing about a database that has moved on. Mint stays non-interactive and its lock stays short; the human decision happens in the audit tool, where the samples are.

Instance Method Summary collapse

Instance Method Details

#edge_digest(edge) ⇒ Object



25
26
27
# File 'lib/hecks/translation/audit/approval_digest.rb', line 25

def edge_digest(edge)
  Digest::SHA256.hexdigest(JSON.generate(Projector::Exporter.translation_hash(edge)))
end