Runs where your
code ships.
Three install paths, one verdict. Drop the GitHub Action into CI, score locally with the CLI, or mount the MCP server so your agent checks its own work before it opens the PR.
GitHub Action
Drop one workflow file in. Every PR gets the four signals + the umbrella verdict.
name: izri/quality
on: [pull_request]
jobs:
izri:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with: { fetch-depth: 0 }
- uses: legendify-dev/izri/apps/github-action@main
with:
api-token: ${{ secrets.IZRI_API_TOKEN }}izri CLI
Run the same scoring locally. No GitHub round-trip required.
# From the repo (npm publication landing soon — see #352):
git clone https://github.com/legendify-dev/izri && cd izri
pnpm install && pnpm build:packages
izri run # trigger an analysis for the current branch
izri check-scope # run the deterministic scope analyzer
izri status <runId> # poll a run to terminal stateMCP server
Score-the-PR tools, in-agent. Works with Claude Code, Cursor, Windsurf.
{
"mcpServers": {
"izri": {
"command": "node",
"args": ["/abs/path/to/izri/packages/mcp/lib/index.js"],
"env": { "IZRI_API_TOKEN": "izri_…" }
}
}
}The hosted path. Posts an izri/quality Check Run plus per-signal children, edits a sticky PR comment in place, and exposes a webhooks-out firehose for downstream notifiers. API tokens come from your organization's settings; they're prefixed izri_ and scope to one organization.
Action docsSame code that runs in the Action. Useful for izri check-scope on a feature branch before pushing, or for piping izri status into ad-hoc bash workflows. Talks to the same hosted API as the Action; project auto-resolves from the current git remote.
CLI docsMount @izri/mcp and the agent gets check_pr_scope, score_pr, read_delta_report, and friends in its tool list. The agent can score its own work mid-session and read line annotations without the human round-tripping through GitHub. Pin a token via IZRI_API_TOKEN per MCP standard.
MCP docsMake the verdict binding.
Add izri/quality to your required status checks and the merge button obeys the verdict. A failing signal isn’t a comment to scroll past — it’s a closed gate with the reason printed on it.
- One required check — not four to configure
- Line-level annotations on the diff, not a wall of logs
- Re-scores automatically on every push
Whoever wrote it, Izri scores it.
Izri judges the delta, not its author. PRs from any coding agent — or any human — get the same four signals.