ADR-0004: Efficiency gates apply to the Oak-baseline comparison only
- Status: accepted
- Date: 2026-06-10
Context
regression_report.py gates on exact agent-efficiency metrics (tool calls,
output bytes). Oak currently emits more text than Git by design in several
operations; gating Oak-vs-Git on output bytes would permanently fail and teach
people to ignore the gate. The release-blocking question is "did this
changeset make Oak worse than released Oak", not "does Oak emit more than
Git" β the latter is tracked as an optimization metric, not a gate.
Decision
Efficiency thresholds (--tool-calls-threshold-pct, --output-bytes-threshold-pct,
--tokens-threshold-pct) apply only to target-vs-Oak-baseline comparisons.
The Git comparison keeps latency guardrails only. Token-estimate gates default
off because char/4 estimates are advisory (see token calibration in
docs/statistical-methodology.md).
Consequences
- CI can run
--fail-on-regressionwithout permanent Oak-vs-Git failures. - Oak-vs-Git token/output deltas remain visible in every report as optimization signal.
- If Oak-vs-Git output parity becomes a goal, add a separate explicit gate rather than widening this one.