Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Operations

Operational reference for elench.

Durability

elench’s claim log is append-only (INV-01). The in-memory store (default) does not persist across process restarts. The fjall backend (--store fjall <path>) persists claims, blobs, and trees to disk.

Default (in-memory)

OperationDurability
elench emitClaim stored in memory; lost on process exit
elench gateLive evaluation; no persistence needed
elench git initWrites real git objects to disk (zlib-compressed)

Fjall backend

OperationDurability
elench --store fjall <path> emitClaim persisted to disk (SyncAll)
elench --store fjall <path> store blobBlob persisted to disk (Buffer)
elench --store fjall <path> store treeTree persisted to disk (Buffer)

Claims use PersistMode::SyncAll (must survive crashes). Blobs and trees use PersistMode::Buffer (content-addressed, can be recomputed from source).

Compaction

The claim log grows without bound on an active repository. Compaction is manual and destructive:

elench compact <claims.json> --before <timestamp>

Retires all claims before the cut-off, freezing their statuses. The compaction record carries the frozen status snapshot forward. Active claims continue to be revocable (R1 preserved for active claims, deliberately violated for retired ones).

Reconciliation

After a tree change (rename, reformat, semantic edit), claims may no longer resolve to the correct code. The reconciliation pass detects this:

elench reconcile <tree_oid> <claims.json>

For each claim anchored to the tree, resolves the anchor using the multi strategy (path-range, symbol, content-digest). Claims that fail to resolve or are degraded are reported as drifted. The reconciliation pass is read-only — it does not auto-fix. The human (or agent) must re-anchor or falsify drifted claims.

Conflict detection

Two predicates are a conflict if and only if they anchor to the same code location (same path+range, or same symbol) but assert different expressions. Last-writer-wins by timestamp; the older claim is flagged for resolution.

elench conflicts <tree_oid> <claims.json>

Build provenance

elench build <tree_oid> [--artifact <path>] -- <command...>

Runs the build command, captures the exit code, and computes a SHA-256 digest. With --artifact <path>, the digest is SHA-256 of that file (the real build output). Without it, the digest falls back to SHA-256 of stdout. Emits a build provenance claim with origin.kind = harness-observed (INV-22).