Browse docs
Docs /signals/tests
The four signals

izri/tests

Tests answers the most familiar question: did the suite pass?

It is the most conventional of the four signals, and on its own the least interesting — your CI already runs tests. What makes it useful here is that its result is aggregated with the other three, so a green suite can no longer be the last word. A run that passes while izri/hallucination reports the diff was never exercised produces a failing umbrella, which is exactly the outcome a bare test run can't give you.

What it does

Triggers a run against the change set, waits for it, and reports the outcome. Runs execute on the runner — the queue consumer that drains jobs from Redis — so a self-hosted instance without a runner leaves runs at PENDING indefinitely. See self-hosting.

Run statuses

Status Meaning
PENDING Queued, not yet picked up.
RUNNING Executing.
PASSED Terminal. Everything passed.
FAILED Terminal. Tests failed.
ERROR Terminal. The run itself broke.
CANCELLED Terminal. Stopped before completion.

PASSED is the only terminal status that isn't a failure. The CLI exits non-zero on every other one.

Scoring

Test pass rate feeds the composite at weight 0.36 — the second-heaviest signal, behind hallucination.

A run that errors rather than failing is treated as an analyzer error, which is a hard rule. A broken run is not a passing run, and it isn't a soft deduction either: it means Izri has no evidence, and no evidence never resolves to "safe".

Scoped test selection

Izri selects the tests relevant to the diff rather than always running everything. This keeps the signal fast enough to gate every push. The selection is what izri/hallucination then audits — it checks whether the selected tests actually reached the changed lines.

Running it

izri run              # trigger, don't wait
izri run --watch      # poll until terminal

--watch polls every 3 seconds with a 30-minute cap and exits non-zero on any terminal status except PASSED.

In CI, the GitHub Action does this for you when mode is tests or both.

Reading this with an agent? /docs/signals/tests.md serves the raw markdown.

Edit this page on GitHub →All docs