Optional ReadonlyexperimentalWhen set, this driver's trigger-rate number is EXPERIMENTAL and not
validated — the string is the human caveat explaining why (e.g. Codex has no
skill-selection event, so firing is inferred from a SKILL.md read, which can
be wrong in both directions). Absent = supported/trustworthy (the default).
measureTriggerRate copies it onto the report and warns; the formatter
prints it. Precision-first: never let a possibly-wrong number read as a
measurement.
The same fact as HarnessLiveDriver.firing (./live-driver.js), which is
the typed form the measurement tiers branch on; adapter-contract.test.ts
asserts the two agree on every adapter.
Optional ReadonlyharnessThe harness this driver runs (e.g. the adapter's name). Folded into a
trigger-rate eval's LOCK hash so a report recorded on one harness is marked
STALE if the eval is later switched to another (a different harness can fire a
skill differently). Optional for back-compat — absent defaults to the
default harness, so an existing single-harness lock is unaffected.
ReadonlyparseOptional ReadonlyrunReadonlyrunner
An eval-tier transport: how to RUN a real harness turn and PARSE its output. The default is Claude Code (
claudeEvalDriver); a second harness supplies its own (e.g.codexEvalDriverfromvigiles/codex) and passes it asmeasureTriggerRate(spec, { evalDriver })— the eval-tier analog ofrunHarnessTest's{ adapter }.runErrorlets the loop drop an errored/rate-limited turn instead of scoring it as a miss.