01 of 6 · Anti-pattern
The self-reported outcome
The agent writes "task complete" and nothing independent checks — your record contains the claim, not the result.
The deepest theater: the agent satisfies the "done requires evidence" rule by writing the very row that proves its own work. A verifier that only confirms a claim exists — never that it is true — will pass a self-minted outcome every time. The standard’s reference implementation caught its own version of this in production: an agent stamping a "delivery" on every tick while delivering nothing, tens of thousands of times, each one passing the outcome check. That audit is published.
Completion rows written by the same execution that did the work; outcome references that resolve to a count, or to a row the asserting agent wrote — never to an external artifact (a merged PR, a delivery receipt, a record in a system the agent doesn’t control). Many identical, zero-effect "deliveries" for one action.
A completion is valid only if an outcome row exists that someone else can re-derive by ID — and the row must bind an artifact outside the asserting agent’s control.
Outcome-keyed completion with independent verification: every outcome type is classified verifiable vs. observation; an observation can never be "delivered"; the verifier resolves the artifact itself and runs as a different role than the one being verified.
Official reference: AP-10 · Self-minted delivery (Part 10) · Law 2 — the standard’s normative catalog defines ten anti-patterns; this page is the plain-English door into it.
Self-reported — FAQ
Our agents return success/failure codes. Isn’t that verification?
A return value is the agent’s own claim. Verification means a separate check confirms the outcome exists in the system of record — the email in the send log, the PR merged and green, the row in the database the agent doesn’t write. If the claim and the check come from the same execution, you have one witness, and it’s the defendant.
How common is this?
It is the single most common finding in the audits behind the standard, and the pillar most systems fail first — because every framework’s default is to trust the tool call’s return value. The standard’s own reference implementation failed it in production, in a documented, published audit.
Does your fleet have this one?
The free Reality Check probes for this pattern against your own record — read-only, aggregate-only, no signup to read your result.
Run the Reality Check →