Wait on PENDING. Retry the check on UNVERIFIABLE. Retry the action with the first idempotency key on FAILED. Stop and ask a person on CONTRADICTED.

verdictwhat the agent may do nextwhy
PENDINGWait. Do not retry the action.The action can still succeed. A retry refunds twice.
UNVERIFIABLERetry the check. Do not retry the action.The action is not in doubt. The evidence has not arrived.
FAILEDRetry the action with the first idempotency key.The provider refused. The key stops a double effect.
CONTRADICTEDStop. Ask a person.Reality already differs from the promise.

The verifier never acts.

Provely returns a directive and nothing else. Your host carries it out: a Claude Code hook, a framework node or the CI gate. A verifier that acts is no longer independent.

Every directive carries the idempotency key of the first attempt and a retry budget. An executor that reaches the budget stops and asks a person.

The directive is also feedback. It names the step with no evidence and the evidence that step needs. Pass it into the next agent turn, and the agent finishes what it dropped.

verifydirectivestep: docs.updatedneeds: a change to the documentation files in commit $SHAthe directive is also feedbackfeedbackthe agentverify againthe loop closes on evidence, not on a retry countevery directive carries the first idempotency key
verify, directive, agent, verify. The loop closes on evidence, not on a retry count.
In words
  • The runtime returns a verdict and a remediation directive.
  • The directive carries the reason code, the idempotency key and the retry budget.
  • The host performs the correction. The runtime never performs it.
  • The host asks for the verdict again with the same key.
  • A host that reaches the retry budget stops and asks a person.

Why is an acknowledgement not an outcome?

Each state returns a refund object and HTTP 200. From the response they look the same.

Five states. One state moves the money.
StateWhat it meansMoney
pendingThe bank holds the refund in a queue. No money leaves the account.NO MONEY
requires_actionA person outside your system must act first.NO MONEY
failedThe bank refused the refund. The object still reads 200.NO MONEY
canceledSomeone withdrew the refund before settlement. The customer waits.NO MONEY
succeededThe money moved. Only this state earns the word “done”.MONEY MOVED

Which states does an operation move through?

CREATEDACTION_STARTEDACTION_ACCEPTEDOBSERVINGPENDINGVERIFIEDCONTRADICTEDFAILEDUNVERIFIABLEEXPIREDHUMAN_REVIEWevery postcondition met, no negative violatedwrong amount, wrong subject, duplicate effectprovider reports terminal failureevidence never became sufficientthe deadline passeda person must decide
The operation state machine. No plugin can change it.
In words
  • CREATED moves to ACTION_STARTED when the agent begins the action.
  • ACTION_ACCEPTED records the provider acknowledgement.
  • OBSERVING reads the provider evidence.
  • PENDING is a normal answer while the action can still succeed.
  • A terminal verdict is VERIFIED, CONTRADICTED, FAILED, UNVERIFIABLE, EXPIRED or HUMAN_REVIEW.

Which evidence supports a verdict?

Provely ranks evidence from E0 to E5 by its independence from the action path. E0 is the agent word and is never sufficient. Read the evidence hierarchy and the evidence level definition.