Skip to content

Validate before claiming

Resolving from anywhereMCPHTTPclaim_and_resolvecheck_resolutionresolveByMetadata

An agent's claim-and-resolve validates the payload first, so a rejected answer never leaves a row locked to the agent.

The situation

An agent picks up review rows and answers them. If it claims first and its payload then fails validation, the row sits locked to the agent until the window lapses and people cannot touch it.

The recipe

1. check_resolution: learn the contract
{ "escalation_id": "esc-a1b2" }
2. claim_and_resolve: claim and answer in one call
{
"escalation_id": "esc-a1b2",
"resolver_id": "review-agent",
"payload": { "approved": true, "notes": "Matches the purchase order" }
}

check_resolution returns the row’s form schema (fields, types, x-lt-bind paths) and reports schema_enforced: true when the role enforces. claim_and_resolve validates the payload against that schema before it claims.

The guarantee

A rejected payload returns the canonical 422 body with isError: true and leaves the row unclaimed. resolve-by-metadata holds the same line inside its atomic statement: an enforcing target answers validation_required with nothing written, and the validated payload re-runs with the row id asserted and pending re-checked. See Schema enforcement.