01 / 04izri/scope

Did the change match its stated intent?

Izri reads the PR description as a contract, then walks the diff file by file. Edits that serve the intent pass quietly; edits nothing in the description explains get flagged — the classic tell of an agent that wandered.

  • Intent parsed from title, description and linked issues
  • Every hunk classified: in-scope, supporting, or unexplained
  • Unexplained edits annotated on the exact lines
intent: "fix pagination off-by-one"scope · 96
api/paginate.tsin-scope
api/paginate.test.tssupporting
billing/invoice.tsunexplained
ui/table.tsxin-scope
↳ why does a pagination fix touch billing?

What it asks

Reads the PR's stated intent (title, body, linked issue) and the actual diff, then asks: are these the same change? Hard rules cover sensitive-path violations and pr_type policy; the soft score is an LLM-driven alignment number between 0 and 100.

Hard rules

Auto-fail
  • Forbidden category in `.izri/scope.yml` was touched (e.g. fix-only PR modified the schema).
  • A sensitive path was modified without an explicit `allow` rule.

Soft signal

hybrid

Alignment score 0–100. Composite weight in izri/quality: 0.24.

When it fires

On every push to a PR. The first run hydrates the scope config from `.izri/scope.yml` (or the dashboard defaults); subsequent runs reuse the cached config row.

Implementation reference

The docs page has the full type signatures, config schema, and the on-disk shape of every analyzer output. Or grab the raw markdown via /docs/features/scope.md.

Read the docs