No. Anthropic Claude API returns a success response when it accepts the request. The message_batch then holds one of 6 states. Only succeeded is terminal success. Provely proves all_succeeded and ended as separate promises.
| Fact | Value |
|---|---|
| Skill version | 0.1.0 |
| Publisher | Built and signed by Provely. |
| Certification | Provisional (score 49 of 100) |
| Last conformance run | 2026-09-05T12:00:00Z: 26 of 26 cases passed, 0 critical false VERIFIED |
| Provider API versions | 2023-06-01 |
| Default provider API version | 2023-06-01 |
| Compiled | 2026-09-05T12:00:00Z by compiler 0.1.0 |
| Manifest hash | 1570330057d84a4b |
| Manifest hash check | the document hashes to the value the manifest states |
| Signature | valid, key provely-skill-2026-09, trusted by this build |
What does this page prove?
| Claim | Proven by | Evidence | Status |
|---|---|---|---|
| A batch that ended is not a batch whose requests succeeded. The level reads request_counts and refuses a batch that holds an error, an expiry, or a cancellation. | anthropic.message_batch.all_succeeded | E2 | proven |
| Every request of the batch succeeded, errored, was canceled, or expired. The level proves that the work stopped. It proves no result of any request. | anthropic.message_batch.ended | E2 | proven |
| An outcome outside Anthropic Claude API, such as a bank credit or a person who read a message | not proven | no E5 channel | not proven |
| The agent report that the action worked | never counts | E0 | not proven |
Which completion levels does the Anthropic Claude API skill expose?
Each level is one promise with one contract. An agent picks the level that matches the promise it makes. It cannot upgrade a level. Read the completion level definition.
| Level | Contract | Promise | Evidence | Certification |
|---|---|---|---|---|
all_succeeded | anthropic.message_batch.all_succeeded v1.0.0 | A batch that ended is not a batch whose requests succeeded. The level reads request_counts and refuses a batch that holds an error, an expiry, or a cancellation. | E2 | Provisional |
ended | anthropic.message_batch.ended v1.0.0 | Every request of the batch succeeded, errored, was canceled, or expired. The level proves that the work stopped. It proves no result of any request. | E2 | Provisional |
What is the Anthropic Claude API lifecycle?
Which states can a anthropic.message_batch be in?
| State | Class | Verdict | Meaning | Source |
|---|---|---|---|---|
in_progress | transitional | PENDING | Anthropic accepted the batch. Every terminal count of request_counts is zero, so the read reports no success and no failure. | anthropic.docs.batches |
canceling | transitional | PENDING | A caller asked for a cancellation. Anthropic may still complete a request that it cannot interrupt. | anthropic.docs.batches |
succeeded | terminal success | VERIFIED | The member processing_status is ended, and request_counts.succeeded holds every request of the batch. | anthropic.docs.batches |
errored | terminal failure | FAILED | The member processing_status is ended, and request_counts.errored is above zero. Anthropic created no message for those requests. | anthropic.docs.batches |
expired | terminal failure | FAILED | The batch reached the 24-hour expiration, and request_counts.expired is above zero. Anthropic sent those requests to no model. | anthropic.docs.batches |
canceled | terminal neutral | FAILED | A caller canceled the batch, and request_counts.canceled is above zero. The batch still reports the status ended. | anthropic.docs.batches |
In anthropic.message_batch under provider API version 2023-06-01, succeeded is the only state that means terminal success. Every other state gives PENDING, FAILED, or UNVERIFIABLE.
Source: anthropic.docs.batches · retrieved 2026-09-09
How does Provely tie the evidence to this exact operation?
A matching state that already existed must not verify. Every contract names the correlation keys that bind the evidence to the operation, and the idempotency key that stops a duplicate side effect.
| Strategy | Assurance | Keys | Required | Window |
|---|---|---|---|---|
resource_id | strong | message_batch_id from $action.result.id | yes | none |
In words
- E0 agent assertion: never sufficient.
- E1 action response: the provider acknowledged the request.
- E2 provider readback: the runtime read the resource back.
- E3 provider event: the provider reported the change.
- E4 independent system: a system outside the action path agrees.
- E5 external outcome: the result is observable in the world.
Which evidence channels does the skill read?
The runtime prefers the channel that is more independent from the action path. Read the evidence level definition. An acknowledgement from Anthropic Claude API is E1 and never terminal success.
| Channel | Level | Independence | Verifier | Deterministic | Typical latency |
|---|---|---|---|---|---|
message_batch_action_response | E1 | same response | action_result | yes | not stated |
message_batch_readback | E2 | provider readback | http | yes | 300 ms |
Which ways can a Anthropic Claude API action look done and not be?
| Contract | Case | Rule | Verdict |
|---|---|---|---|
| anthropic.message_batch.all_succeeded | pre existing state | The Message Batch is older than the operation. It proves nothing. | CONTRADICTED |
| anthropic.message_batch.all_succeeded | wrong subject | The batch completed more requests than the intent named. It is not the batch that the intent described. | CONTRADICTED |
| anthropic.message_batch.all_succeeded | duplicate side effect | The batch holds more requests than the intent named. Anthropic bills each of them. Do not retry. | CONTRADICTED |
| anthropic.message_batch.all_succeeded | observed state | A caller canceled the batch. Anthropic sent those requests to no model. | CONTRADICTED |
| anthropic.message_batch.all_succeeded | observed state | The batch reached the 24-hour expiration before Anthropic sent every request to a model. | FAILED |
| anthropic.message_batch.all_succeeded | observed state | A request of the batch encountered an error, and Anthropic created no message. | FAILED |
| anthropic.message_batch.all_succeeded | observed state | The Message Batch has not ended. The runtime observes again later. | PENDING |
| anthropic.message_batch.ended | pre existing state | The Message Batch is older than the operation. It proves nothing. | CONTRADICTED |
| anthropic.message_batch.ended | wrong subject | The batch completed more requests than the intent named. It is not the batch that the intent described. | CONTRADICTED |
| anthropic.message_batch.ended | duplicate side effect | The batch holds more requests than the intent named. Anthropic bills each of them. Do not retry. | CONTRADICTED |
| anthropic.message_batch.ended | observed state | The Message Batch has not ended. The runtime observes again later. | PENDING |
What did the last conformance run show?
| Dimension | Score | Maximum |
|---|---|---|
| Documentation | 12 | 20 |
| Schema alignment | 15 | 15 |
| Lifecycle certainty | 20 | 20 |
| Evidence strength | 12 | 20 |
| Causal correlation | 15 | 15 |
| Sandbox conformance | 10 | 10 |
| Raw score | 84 | 100 |
| Score after the caps | 49 | 100 |
The raw score is 84. 2 hard caps apply, so the score is 49 and the level is Provisional.
| Reason | Highest score it allows |
|---|---|
| 10 uncertainty records are open. The lowest cap is 49. | 49 |
| 1 mandatory cases are missing. Example: anthropic.message_batch.ended:terminal_failure. | 74 |
| Contract | Raw score | Score after the caps | Certification |
|---|---|---|---|
anthropic.message_batch.all_succeeded | 84 | 49 | Provisional |
anthropic.message_batch.ended | 84 | 49 | Provisional |
The weakest contract is anthropic.message_batch.all_succeeded. It scores 49 and reaches Provisional. The package level is Provisional, because a package level never rises above its weakest contract. Read the level of the contract you use.
The last conformance run on 2026-09-05T12:00:00Z passed 26 of 26 cases with 0 critical false VERIFIED. One critical false VERIFIED rejects a skill.
| Case class | Passed | Total |
|---|---|---|
| duplicate side effect | 2 | 2 |
| error after execution | 2 | 2 |
| error before execution | 2 | 2 |
| evidence unavailable | 2 | 2 |
| pre existing state | 2 | 2 |
| stale readback | 2 | 2 |
| still transitional | 2 | 2 |
| terminal failure | 2 | 2 |
| terminal success | 3 | 3 |
| timeout after commit | 2 | 2 |
| version mismatch | 2 | 2 |
| wrong subject | 2 | 2 |
| wrong terminal state | 1 | 1 |
The conformance artifact digest is eae45ca3048c69c3. The harness signs the run, so a reader can check that these numbers come from that run.
What remains uncertain?
The level is Provisional because of it. 10 uncertainty records are open. The lowest cap is 49. Provely does not guess a rule that a source does not state.
Where do these facts come from?
Every claim above cites a source assertion in the skill provenance. The compiler records the source, its hash, and the retrieval date. A page never states a provider rule without one.
| Source | Kind | Retrieved | Excerpt |
|---|---|---|---|
| anthropic.docs.batch_object | docs | 2026-09-09 | authored |
| anthropic.docs.batches | docs | 2026-09-09 | authored |
| anthropic.docs.files | docs | 2026-09-09 | authored |
| anthropic.docs.versions | docs | 2026-09-09 | authored |
| anthropic.openapi | openapi | 2026-09-09 | authored |
How do I verify a Anthropic Claude API action?
Verify a Anthropic Claude API action with Provely
- Begin the operation.Call
beginwith the contractanthropic.message_batch.all_succeededand the input. Keep the operation id. - Make the Anthropic Claude API call you make today.Send the request with the correlation metadata that
beginreturned. - Submit the acknowledgement.Call
action_resultwith the Anthropic Claude API response. This is evidence level E1. It is not completion. - Verify.Call
verify. The runtime readsmessage_batch_action_responseandmessage_batch_readbackand evaluates the contract. - Report the verdict exactly as returned.VERIFIED comes with a signed receipt. PENDING comes with the operation id. CONTRADICTED and UNVERIFIABLE are not success.
Questions developers ask
Does the all_succeeded level prove the ended level?
No. A batch that ended is not a batch whose requests succeeded. The level reads request_counts and refuses a batch that holds an error, an expiry, or a cancellation. Every request of the batch succeeded, errored, was canceled, or expired. The level proves that the work stopped. It proves no result of any request. Use anthropic.message_batch.ended to prove ended.
What does the agent say while Anthropic Claude API reports in_progress and canceling?
It says: "The action is accepted but not yet verified. Operation: <id>." The verdict is PENDING. The runtime observes again on the contract timing policy.
Which Anthropic Claude API API versions does the skill support?
2023-06-01. An operation on another version returns UNVERIFIABLE with the reason version_unsupported. The runtime never guesses.
Does Provely need write access to Anthropic Claude API?
No. The agent keeps its write key. The verifier reads with a separate read-only credential where Anthropic Claude API permits it, and it never shares that credential with the agent.