Is this delta safe to merge?

AI QA for the code your agents ship. Four signals run on every pull request and press one verdict onto the diff — izri/quality. Pass, and it merges. Fail, and your eye lands on exactly what stopped it.

izriscoring PR #482 · auth/session.ts · +12 −3reading diff
ΔPR #482
scope
tests
hallucination
visual
izri/quality
failing — not safe
01 / 04HYBRID SIGNAL

izri/scope

Izri reads every file the diff touches and lines them up against what the PR set out to do. Changes that drift outside the stated intent get flagged before anything else runs.

Maps the changed files & symbols
Matches them to the PR's stated intent
Flags out-of-scope drift
pass · 3 files in scope, intent matched
repo · auth-servicereading
config/env.ts
+auth/session.ts+12 −3
+auth/token.ts+6 −0
db/migrate.ts
+auth/session.spec.ts+4 −0
ui/theme.css
intent rotate refresh tokens✓ 3 / 3 in scope
vitest · running suite142 passed · 2 failed
UNIT · 124 specsfast
INTEGRATION · 12 specs
E2E · playwright
/login
visit & fill credentials
submit, expect redirect
session persists on reload
02 / 04HYBRID SIGNAL

izri/tests

Unit, integration, end-to-end — Izri runs the tests that matter to this diff and reads the results against it. Green only counts if the right tests actually ran.

Selects the specs the change affects
Runs unit → integration → e2e
Reads failures against the diff
fail · 2 failing in auth.spec
03 / 04HYBRID SIGNAL

izri/hallucination

A passing test means nothing if it never touches what changed. Izri traces coverage from each test back to the diff — and catches tests that look green but skip the new lines entirely.

Traces coverage to the changed lines
Spots tests that assert nothing real
Catches fabricated green
fail · 2 tests never touch the diff
coverage · auth/sessiontracing
tests
changed lines
rotate.spec
ttl.spec
cache.spec
legacy.spec
util.spec
+rotate(token)
+cache.set(ttl)
+next.value
no assert
2 passing tests never touch the diff
visual-diff · /dashboardcomparing
button overlaps card
main vs PR #4821 layout break
04 / 04SOFT SIGNAL

izri/visual

For changes that touch the UI, Izri renders the routes this PR affects and diffs them against main — surfacing layout shifts the tests would never catch. A soft signal: it informs the verdict without hard-blocking.

Renders the affected routes
Pixel-diffs against main
Flags layout shifts for review
at-risk · 1 route shifted
The verdict

One stamp, every push.

izri/quality takes the worst hard rule and a composite of the soft signals, then presses a single verdict — recomputed on every push, large diffs and one-liners alike.

izri/quality
ΔPR #471+8 −1
pass
Δ#476+3
pass
ΔPR #474+24 −6 · 9 files
×fail
Δ#480+2
pass
ΔPR #479+15 −4
pass
Δ#482+12
×fail
1
status to gate on
one status, pass or fail
4
independent signals
0
fabricated tests merged
hallucination guard on
Where it lands

Same engine, three surfaces.

Check Run
izri/qualityfailing
izri/scopepass
izri/testsfail
izri/hallucinationfail
izri/visualat-risk
01 · GitHub Checks

Gate the merge button.

Pin izri/quality to branch protection and the merge button waits on it. Each signal posts its own child check — keep them informational, or pin them for surgical gates.

02 · PR comment

One comment, never a pile.

A single comment, edited in place on every push — hard findings, contributing signals, and AI insight in one block. It updates as you fix; it never stacks duplicate noise on the thread.

Sticky PR comment
izribot · edited in place
izri/quality — failing
2 hard findings · 1 at-risk · 1 clear — expand for line-level detail.
Dashboard report
quality trend · 30d71
38
annotations
6
visual-diffs
214
deltas scored
03 · Dashboard

See the trend, not just the diff.

Every delta gets a report — line-level annotations, a visual-diff drill-down, and project quality over time. Watch the AI-generated code in your repo trend up, push by push.

Start scoring every delta.

Drop the GitHub Action in, point the CLI at your project, or mount the MCP server in your agent. The four signals score the next PR you ship.

scores PRs fromClaude Code·Cursor·Aider·Devin