Provely adds one check to each model answer and tool call, and it makes the fix itself. The grid below shows what is measured and what is not.

What does Provely do by default?

Add two lines. Provely finds your framework and loads its plugin. You write no guard code.

agent.ts
import { Provely } from '@provely/sdk';

new Provely();
agent.py
from provely import Provely

Provely()

Rules are optional. With the two lines and no rules file, Provely builds the checks for each agent at run time (just in time), from the tools it finds. Read rules to audit, share or make an exception.

  • Repair in place (repair_in_place): A lossless syntax fix, for example single quotes or a code fence around the JSON. The tool gets the arguments that the model meant.
  • Return the exact error (return_error_to_model): The model gets one exact sentence about what is wrong, and it tries again. The tool does not run.
  • Retry (retry): Only where the frozen retry table permits it, and always with the key of the first attempt.
  • Refuse (refuse): The call never reaches the tool. Examples: a duplicate call, or a write that repeats a completed write in the same agent call.
  • Record (record): The call runs, and the line states what the check found.

Every fix writes one decision-log line. The line holds ids and codes only, never a value. No language model takes part in any decision.

guard_mode: observe is the default. Provely makes every fix and records an invented value. Read how it works.

How much is measured?

MeasureCount
Failure modes in the checklist267
Failure modes with a measured cell204
Fixed on every path where they apply85
Fail on at least one path63
Measured cells that Provely fixed1519 of 2278

What does each cell mean?

CellMeaning
Fixed by ProvelyProvely made the fix, and a decision-log line proves it.
FailsThe case fails on this path, with the two lines.
Not countedThe framework coped alone, or Provely made no fix. It is never counted as a fix.
Recorded or out of reachProvely records the failure and makes no fix, or the failure is inside the app code, where Provely cannot reach.
PendingNo measurement yet.
Does not applyThe failure cannot happen on this path.

Where do the cells come from?

Each cell comes from measurement merges of the newest commits, on 15 paths: TypeScript and Python, frameworks and plain SDKs. The newest measurement wins for a case and a path. The grid was built on 2026-10-18 00:24 from 74 measured files.

How far is each layer?

LayerFixed everywhereMeasuredTotal
Model output syntax243133
Model output shape142529
Tool selection51213
Call structure41416
Streaming31010
Provider protocol13031
Argument hallucination71219
Claim hallucination348
Framework orchestration61241
Tool invocation11123
Tool result61516
Outcome022
Coexistence112626