Expand description
ev decide — walk the trailing args left-to-right into a draft, validate, append a child.
Structs§
- Decision
- An assembled, validated decision ready to be appended to the ledger — the single shape both
ev decide(capture.rs) andev migrate(migrate.rs) hand toappend. It carries exactly the hashed payload (observe, decision, grounds) plus the bookkeeping fields;appendowns the one compute_id / write_tick / R3-lint path so neither caller can fork the hashing.
Functions§
- append
- THE one place a decision becomes a tick: R3-lint the free text, read HEAD as the parent, stamp
held_since, build the Tick, compute its content-addressed id, and write+advance HEAD.ev decideandev migrateBOTH funnel through here so there is a single hashing path — a golden id can only move if this function moves (guarded by golden_vectors + the capture/migrate tests). The caller is responsible for having already resolved blame and validated the grounds. - harvested_
test_ check - The migrate-only harvested-binding constructor: build a
Check::Testcarrying NO counter-test (counter_test: None), as used when backfilling an existingtest_invariant_*/test_br_*test whose falsifiability was never proven. You cannot half-harvest: the FULL 3-key liveness (≥1 platform, triggered-by, surface) stays MANDATORY — only the counter-test is dropped. There is no--counter-testflag on this path; the decide (capture.rs) andev guard(guard.rs) paths stay byte-for-byte strict and still reject a vacuous binding. The honesty debt (the missing falsifiability proof) is surfaced later atev check, never hidden. - run