2. Read the decision
The valid case records a short chain, in this order:
-
event-1freezes the protocol: metricsynthetic_delta, unitratio, threshold0.001, strict comparison, and cost cap10.00 cpu_s. -
event-4records0.002 ratiofor the same metric and run. -
event-5records2.50 cpu_s, below the stated cap. -
event-6cites the observation and recordspassunder the localexact_v0rule. -
event-7cites that assessment and records thepromotedecision.
The threshold is strict because the protocol combines direction: "gte" with inclusive: false: 0.002 > 0.001. Slean also checks that references exist and that the assessment and decision do not precede their evidence. pass is the assessment's verdict; promote is a separate decision. A human override needs a reason and does not become a pass.
The 10.00 cpu_s cap applies to this frozen protocol across all its runs. Each recorded cpu_s amount counts, including one with partial coverage. A second run that adds 7.51 cpu_s after the first run's 2.50 cpu_s is rejected as cost_cap_exceeded; another cost unit is recorded without conversion.
You can freeze the reading at the decision itself:
lake exe slean replay examples/valid.json 7
This replay uses only the first seven events. event-8 through event-10 therefore cannot retroactively change that prefix result. The previous chapter's agent view then projects what that audience may see.
A case can be valid but undetermined. Compare the view of the case without a measurement:
lake exe slean view examples/unknown.json agent
Its observation has status: "unknown" and value: null; the decision is defer. null means “no measurement available,” not zero. The technical-error.json case also retains a null value and a deferred decision, with a distinct technical-error status.
Next, read the AND and OR gates to see how recorded dependencies extend the journal without recalculating that decision.