A decision receipt is the structured result VerifiedX returns for every protected boundary check. It is not just a yes or no. It tells your system:Documentation Index
Fetch the complete documentation index at: https://docs.verifiedx.me/llms.txt
Use this file to discover all available pages before exploring further.
- what outcome VerifiedX reached
- whether the side effect is safe to execute
- how the workflow should continue
- where recovery should happen
- what would need to change before retrying
What a receipt contains
Every receipt includes the decision in a machine-readable form. In practice, a receipt gives your system:- a stable identifier for the decision
- the outcome of the check
- whether the requested side effect is safe to execute now
- structured reasons explaining the decision
- safe next steps the workflow can take
- guidance on where the workflow should continue
- retry or resume guidance when the boundary should be attempted again
- optional metadata from the runtime or adapter
Decision outcomes
VerifiedX uses the same core outcome model across runtimes and adapters:| Outcome | What it means |
|---|---|
allow | The boundary can execute normally |
allow_with_warning | The boundary can execute, but the receipt still carries warnings and guidance |
replan_required | The requested boundary must not execute as requested; the workflow should continue through a safer or better-grounded path |
goal_fail_terminal | The requested boundary path is terminally blocked for the current goal state |
Disposition modes
The most important part of the receipt is usually the disposition.| Mode | What it means |
|---|---|
continue_downstream | The boundary is allowed and the workflow can continue normally |
local_replan | The current node should keep working locally toward the same goal without executing the denied effect |
upstream_replan | The current node should stop local work and return the receipt upstream so missing support or approvals can be gathered |
human_review | The workflow should pause for human review |
terminal_block | The current path is terminally blocked |
Example receipt
This is a representativereplan_required receipt for a workflow that needs safer recovery instead of immediate execution:
How to use receipts
Receipts are synchronous outputs of the protected-boundary flow. Your system should branch on the receipt, not guess from prose. Typical handling looks like this:-
continue_downstream- The boundary is allowed.
- The side effect may execute.
- The workflow can continue normally.
-
local_replan- Do not execute the denied side effect.
- Keep the receipt local.
- Replan inside the same node or agent using the reasons and safe next steps in the receipt.
-
upstream_replan- Do not keep pushing locally.
- Return the receipt upstream.
- Let the parent orchestrator or supervisor gather the missing evidence, approval, or context before retrying this node.
-
human_review- Surface the receipt to a reviewer.
- Use the receipt to guide the review step and the eventual retry path.
-
terminal_block- Do not claim success.
- Fail truthfully.
- Hand off to a human or upstream workflow if appropriate.
Receipts and blocked results
When a protected boundary is blocked at runtime, VerifiedX usually returns a runtime-friendly blocked result as well as the receipt. The receipt is the routing and recovery contract. The blocked result is the immediate payload your agent or workflow can act on right away.Key idea
A receipt is not just an audit artifact. It is the machine-readable contract that lets your system continue safely:- downstream when execution is allowed
- locally when replanning should stay on the current node
- upstream when the blocker must be resolved by a parent stage
- truthfully when the workflow has to pause or stop