Host-run commit gates

Updated Jul 27, 2026

By default the workflow host also re-runs the deterministic commitGates commands itself — a gatesGreen claim from an agent is verified, never trusted. The gates run at the start of every dual-review round (before any reviewer agent spends tokens; a red branch goes straight to a fix round carrying the host's log evidence) and once per addendum implementation (addenda have no fix rounds, so an unreproducible green claim fails the addendum outright). Gate runs are serialized across the whole worker pool so sequential execution benefits from the target project's build caching, and each command's full output is streamed to a log in a secure per-run directory (/tmp/df12-gates-XXXXXX/gate-<task>-<round>-N.out, created with mode 0700 and opened exclusively without following symlinks) with a bounded tail quoted in the failure evidence. A command that exceeds commitGateTimeoutSeconds is killed and reported as a failure. The run result's hostGates object reports the configuration and bounded counters (gate runs, failures); per-round pass/fail detail appears in each failed task's reviewRounds[].hostGates.