The moment an agent is dispatched, every step it takes is appended to an ordered, immutable log (EcoCloud already writes these to task_events / the hash-chained agent_audit). This kernel replays that log like a replicated state machine and proves five invariants held before the result reaches production: ordering, hash-chain integrity, constraint adherence, tool correctness, termination. Inject a fault and watch commit_safe flip.
Honest scope. This is the deterministic half of trajectory evaluation — it proves the run's structure was sound (ordered, untampered, every gate cleared, tools in scope, properly terminated). It does not judge semantic goal-accuracy ("did the text mean the right thing?"); that needs an LLM judge, which is EcoCloud's existing dispatch confidence + tanh consensus gate — pass its result in as goal_met. It is also not the authenticity layer. The FNV-1a chain is a re-derivable continuity digest, not cryptographic proof — it's keyless, so a forged log re-stamps clean. Authenticity comes from EcoCloud's existing ES256-signed audit chain: the caller verifies those signatures and passes authenticated:true, and without it commit_safe is refused (a structurally-perfect but unsigned log is never commit-safe). There's no Kafka or distributed broker here: the "ordered log" is the append-only Supabase tables you already write; this kernel is the decoupled verifier that replays an already-authenticated log. A denial that is then aborted is a valid trajectory (the machine halted correctly) — only a denial followed by a mutation is a breach. Source: flowdesk-trajectory-kernel.js · composes with lineage & passport.