jadenfix/Beater Eval Gate

Run a Beater statistical eval gate in CI and post a pass / fail / INCONCLUSIVE verdict — with effect size, confidence interval, p-value, and (when underpowered) the minimum detectable effect and how many more cases would make the comparison conclusive — to the step summary and, optionally, a sticky PR comment. Runs entirely against the local `--data-dir` store: no Beater server, no API keys.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
data-dirBeater data directory holding gates.sqlite / experiments.sqlite, produced by the eval steps earlier in the job (or by demo-fixture mode).no.beater
tenant-idTenant id the gate belongs to.nodemo
project-idProject id the gate belongs to.nodemo
gate-idGate id to run.nomain
experiment-run-idSpecific experiment run to gate on. Empty = the gate's latest experiment run.no""
beaterctl-pathPath to a prebuilt beaterctl binary. Empty = build it from this action's checkout with cargo (requires a Rust toolchain on the runner; the first uncached build is slow — prefer a prebuilt binary or a cargo cache in latency-sensitive workflows).no""
demo-fixture"true" seeds the deterministic demo gate + experiments (`beaterctl gate-run-fixture`) into data-dir before running. Zero-config demo/self-test mode; uses tenant/project/gate demo/demo/main.nofalse
fail-on-gate-failure"true" (default) fails the step when the gate does not pass, so the gate can be a required check. "false" always succeeds and only reports — the verdict is still available via outputs.notrue
github-tokenToken used to upsert a sticky verdict comment on the pull request. Empty = no comment (the step summary is always written). Needs `pull-requests: write`.no""
comment-tagMarker distinguishing this gate's sticky comment when a workflow runs several gates on one PR.nodefault
namedescription
verdictpass | fail | inconclusive
passedtrue when the gate passed under its inconclusive policy
decisionRaw GateDecision: pass | fail_regression | inconclusive
reasonThe gate's human-readable reason string
report-pathPath to the raw gate-run JSON report