The false-completion benchmark is the set of cases where an agent action looks complete and is not. Every integration must pass every case, with zero false VERIFIED results, before Provely signs it.
The oracle of each case is independent from the contract under test. A harness simulator plays the provider. The cases come from the provider semantics, the chaos cases, and the version rules.
In words
- VERIFIED: the provider agrees that the outcome happened.
- PENDING: the action can still succeed, so the run waits.
- CONTRADICTED: reality differs from the promise, so a person decides.
Which cases does the benchmark require?
13 cases. 3 of them carry the class "false success": a wrong subject or amount, a duplicate side effect, and a matching state that already existed. An integration runs every case before Provely signs it.
| Case | Scenario | Required result | Class |
|---|---|---|---|
terminal_success | Action accepted, terminal success confirmed | VERIFIED | positive |
still_transitional | Action accepted, provider still transitional | PENDING | progress |
terminal_failure | Provider reports terminal failure | FAILED | failure |
wrong_subject | Correct resource, wrong amount or subject | CONTRADICTED | false success |
duplicate_effect | Duplicate side effect for one operation | CONTRADICTED | false success |
stale_readback | Readback stale inside the consistency window | PENDING | progress |
evidence_timeout | Evidence unavailable until the timeout | UNVERIFIABLE | insufficient |
pre_existing_state | Pre-existing matching state, no causal link | Must not verify | false success |
webhook_duplicate | Webhook duplicated | No duplicate transition | events |
webhook_out_of_order | Webhook out of order | Reconciled by provider semantics | events |
timeout_after_commit | Timeout after the provider committed | VERIFIED after readback, never FAILED | chaos |
five_xx_after_execution | 5xx after the provider executed | VERIFIED after readback, never a retry | chaos |
version_unsupported | Provider version outside valid_for | UNVERIFIABLE with version_unsupported | versions |
Which case classes did the last runs cover?
| Case class | Anthropic Claude API | GitHub REST API | Google Calendar API | Google Docs API | Google Drive API | HubSpot CRM API | Jira Cloud platform REST API | Linear GraphQL API | OpenAI Platform API | PayPal REST API | Resend | Twilio SendGrid Mail API | Shopify Admin API | Slack Web API | Square | Stripe |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| duplicate side effect | 2 of 2 | 3 of 3 | 3 of 3 | 2 of 2 | 3 of 3 | 3 of 3 | 2 of 2 | 3 of 3 | not run | 2 of 2 | 5 of 5 | 3 of 3 | 2 of 2 | 2 of 2 | 3 of 3 | 2 of 2 |
| error after execution | 2 of 2 | 3 of 3 | 3 of 3 | 2 of 2 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 4 of 4 | 4 of 4 | 3 of 3 | 2 of 2 | 2 of 2 | 3 of 3 | 2 of 2 |
| error before execution | 2 of 2 | 3 of 3 | 3 of 3 | 2 of 2 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 4 of 4 | 4 of 4 | 3 of 3 | 2 of 2 | 2 of 2 | 3 of 3 | 2 of 2 |
| evidence unavailable | 2 of 2 | 3 of 3 | 3 of 3 | 2 of 2 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 4 of 4 | 5 of 5 | 3 of 3 | 2 of 2 | 2 of 2 | 3 of 3 | 2 of 2 |
| idempotent retry | not run | not run | not run | not run | not run | not run | not run | not run | not run | 4 of 4 | 4 of 4 | not run | not run | not run | 3 of 3 | 2 of 2 |
| pre existing state | 2 of 2 | 3 of 3 | 3 of 3 | 2 of 2 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 4 of 4 | 4 of 4 | 3 of 3 | 2 of 2 | 2 of 2 | 3 of 3 | 3 of 3 |
| stale readback | 2 of 2 | 3 of 3 | 3 of 3 | 2 of 2 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 4 of 4 | 4 of 4 | 3 of 3 | 2 of 2 | 2 of 2 | 3 of 3 | 2 of 2 |
| still transitional | 2 of 2 | 3 of 3 | 3 of 3 | 2 of 2 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 4 of 4 | 4 of 4 | 3 of 3 | 2 of 2 | 2 of 2 | 3 of 3 | 2 of 2 |
| terminal failure | 2 of 2 | 1 of 1 | not run | not run | not run | not run | not run | not run | 3 of 3 | 2 of 2 | 4 of 4 | 3 of 3 | 2 of 2 | not run | 3 of 3 | 2 of 2 |
| terminal success | 3 of 3 | 3 of 3 | 3 of 3 | 2 of 2 | 3 of 3 | 4 of 4 | 4 of 4 | 3 of 3 | 3 of 3 | 4 of 4 | 4 of 4 | 3 of 3 | 2 of 2 | 2 of 2 | 3 of 3 | 2 of 2 |
| timeout after commit | 2 of 2 | 3 of 3 | 3 of 3 | 2 of 2 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 4 of 4 | 4 of 4 | 3 of 3 | 2 of 2 | 2 of 2 | 3 of 3 | 2 of 2 |
| version mismatch | 2 of 2 | 3 of 3 | 3 of 3 | 2 of 2 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 4 of 4 | 4 of 4 | 3 of 3 | 2 of 2 | 2 of 2 | 3 of 3 | 2 of 2 |
| webhook duplicate | not run | 3 of 3 | 3 of 3 | not run | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 4 of 4 | 4 of 4 | 3 of 3 | 2 of 2 | 2 of 2 | 3 of 3 | 2 of 2 |
| webhook out of order | not run | 3 of 3 | 3 of 3 | not run | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 3 of 3 | 4 of 4 | 4 of 4 | 3 of 3 | 2 of 2 | 2 of 2 | 3 of 3 | 2 of 2 |
| wrong amount | not run | not run | not run | not run | not run | 2 of 2 | not run | not run | not run | 4 of 4 | not run | not run | 2 of 2 | not run | 3 of 3 | 2 of 2 |
| wrong resource | not run | not run | not run | not run | not run | not run | not run | not run | not run | not run | not run | not run | not run | not run | 1 of 1 | not run |
| wrong subject | 2 of 2 | 3 of 3 | 3 of 3 | 2 of 2 | 3 of 3 | 4 of 4 | 4 of 4 | 3 of 3 | 3 of 3 | 2 of 2 | 4 of 4 | 3 of 3 | 2 of 2 | 2 of 2 | 3 of 3 | 2 of 2 |
| wrong terminal state | 1 of 1 | 1 of 1 | 3 of 3 | not run | 2 of 2 | 3 of 3 | 1 of 1 | 2 of 2 | 2 of 2 | 1 of 1 | not run | 1 of 1 | not run | not run | 3 of 3 | not run |
What are the results per integration?
The table reads the conformance summary of each signed integration manifest. An integration with one critical false VERIFIED is rejected. The numbers change when an integration is recompiled.
| Service | Integration version | Cases | Passed | Critical false VERIFIED | Certification | Last run | Source |
|---|---|---|---|---|---|---|---|
| Anthropic Claude API | 0.1.0 | 26 | 26 | 0 | Provisional | 2026-09-05T12:00:00Z | signed package |
| GitHub REST API | 0.1.0 | 41 | 41 | 0 | Provisional | 2026-09-05T12:00:00Z | signed package |
| Google Calendar API | 0.1.0 | 42 | 42 | 0 | Provisional | 2026-09-05T12:00:00Z | signed package |
| Google Docs API | 0.1.0 | 22 | 22 | 0 | Provisional | 2026-09-05T12:00:00Z | signed package |
| Google Drive API | 0.1.0 | 41 | 41 | 0 | Provisional | 2026-09-05T12:00:00Z | signed package |
| HubSpot CRM API | 0.1.0 | 46 | 46 | 0 | Provisional | 2026-09-05T12:00:00Z | signed package |
| Jira Cloud platform REST API | 0.1.0 | 41 | 41 | 0 | Provisional | 2026-09-05T12:00:00Z | signed package |
| Linear GraphQL API | 0.1.0 | 41 | 41 | 0 | Provisional | 2026-09-05T12:00:00Z | signed package |
| OpenAI Platform API | 0.1.0 | 41 | 41 | 0 | Provisional | 2026-09-05T12:00:00Z | signed package |
| PayPal REST API | 0.1.0 | 59 | 59 | 0 | Provisional | 2026-09-05T12:00:00Z | signed package |
| Resend | 0.1.0 | 62 | 62 | 0 | Provisional | 2026-09-05T12:00:00Z | signed package |
| Twilio SendGrid Mail API | 0.1.0 | 43 | 43 | 0 | Provisional | 2026-09-05T12:00:00Z | signed package |
| Shopify Admin API | 0.1.0 | 30 | 30 | 0 | Provisional | 2026-09-05T12:00:00Z | signed package |
| Slack Web API | 0.1.0 | 26 | 26 | 0 | Provisional | 2026-09-05T12:00:00Z | signed package |
| Square | 0.1.0 | 52 | 52 | 0 | Provisional | 2026-09-05T12:00:00Z | signed package |
| Stripe | 0.1.0 | 33 | 33 | 0 | Official | 2026-09-05T12:00:00Z | signed package |
How is the benchmark scored?
One false VERIFIED rejects the integration outright. The rest of the evidence decides one of four certification levels.
Explain: the four certification levels
- A false VERIFIED on any case rejects the integration. There is no partial credit.
- A rule that no source states keeps the integration at a low level. So does evidence that comes only from the action response.
- Provisional is the first level, then Generated draft and Verified. Official needs every critical test to pass and every uncertainty to be reviewed by a person.
- A level states evidence only. It never states who built the package. The manifest states the publisher, and each integration page names it.
Can I run the benchmark against my own contract?
Yes. The harness package runs the conformance matrix against any contract with the simulator or with record-and-replay fixtures. The oracle must not be the contract under test.
Where is the machine-readable result?
The /facts endpoint publishes the current cases, levels, and certification of every integration as JSON-LD.