No. Google Drive API returns a success response when it accepts the request. The file then holds one of 5 states. Only content_stored is terminal success. Provely proves content_stored, created and granted as separate promises.

Skill facts from the signed manifest.
FactValue
Skill version0.1.0
PublisherBuilt and signed by Provely.
CertificationProvisional (score 49 of 100)
Last conformance run2026-09-05T12:00:00Z: 41 of 41 cases passed, 0 critical false VERIFIED
Provider API versionsv3.20260901
Default provider API versionv3.20260901
Compiled2026-09-05T12:00:00Z by compiler 0.1.0
Manifest hash653fa6b461e7e6e6
Manifest hash checkthe document hashes to the value the manifest states
Signaturevalid, key provely-skill-2026-09, trusted by this build

What does this page prove?

ClaimProven byEvidenceStatus
A file resource that exists is not a file whose content arrived. This level compares the size and the checksum that Drive publishes.google_drive.file.content_storedE2 + E3proven
The record exists with the intended name in the intended folder. It does not prove that the content of the file arrived.google_drive.file.createdE2 + E3proven
A permission that exists is not a permission for the right person. This level reads the address, the type and the role of the grantee.google_drive.permission.grantedE3proven
An outcome outside Google Drive API, such as a bank credit or a person who read a messagenot provenno E5 channelnot proven
The meaning of the published_view state of google_drive.permissionnot provenno source states itnot proven
The agent report that the action workednever countsE0not proven

Which completion levels does the Google Drive 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.

LevelContractPromiseEvidenceCertification
content_storedgoogle_drive.file.content_stored v1.0.0A file resource that exists is not a file whose content arrived. This level compares the size and the checksum that Drive publishes.E2 + E3Provisional
createdgoogle_drive.file.created v1.0.0The record exists with the intended name in the intended folder. It does not prove that the content of the file arrived.E2 + E3Provisional
grantedgoogle_drive.permission.granted v1.0.0A permission that exists is not a permission for the right person. This level reads the address, the type and the role of the grantee.E3Provisional

What is the Google Drive API lifecycle?

Which states can a google_drive.file be in?

StateClassVerdictMeaningSource
session_opentransitionalPENDINGA resumable upload started. Drive answered 200 OK with a Location header, an empty body and no files resource. No File exists, and files.get answers 404.google_drive.docs.uploads
createdtransitionalPENDINGThe File resource exists with an identifier, a name and a parent. Drive states no size and no md5Checksum yet, so no read proves the content.google_drive.docs.uploads
content_storedterminal successVERIFIEDThe File resource states size and md5Checksum. The two members report the content that Drive holds.google_drive.docs.uploads
convertedterminal neutralFAILEDDrive imported the content into a Google Workspace editor type. Drive states no md5Checksum for such a file, so no read can compare the bytes that the caller sent.google_drive.docs.uploads
trashedterminal neutralFAILEDA person moved the file to the trash. The member trashed is true.google_drive.docs.uploads

In google_drive.file under provider API version v3.20260901, content_stored is the only state that means terminal success. Every other state gives PENDING, FAILED, or UNVERIFIABLE.

Source: google_drive.openapi · retrieved 2026-09-09

Which states can a google_drive.permission be in?

StateClassVerdictMeaningSource
grantedterminal successVERIFIEDThe access control list of the file holds the permission with the stated type and the stated role.google_drive.docs.sharing
pending_ownertransitionalPENDINGThe grantee has not accepted the transfer of ownership. The member pendingOwner is true. Drive populates it for a permission of type user on a file outside a shared drive.google_drive.docs.sharing
grantee_deletedterminal neutralFAILEDThe account behind the permission was deleted. The member deleted is true.google_drive.docs.sharing
published_viewunknownUNVERIFIABLEThe member view states published, and the published sentence then names the role publishedReader. No published role list of this compile states that role, and no source states what it permits.google_drive.docs.sharing

In google_drive.permission under provider API version v3.20260901, granted is the only state that means terminal success. Every other state gives PENDING, FAILED, or UNVERIFIABLE.

Source: google_drive.openapi · 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.

StrategyAssuranceKeysRequiredWindow
resource_idstrongfile_id from $action.result.idnonone
fingerprintweakname from $input.name; parent_id from $input.parent_idno600000 ms
resource_idweakparent_id from $input.parent_idno600000 ms
resource_idweakfile_id from $input.file_idno600000 ms
resource_idstrongpermission_id from $action.result.idnonone
fingerprintweakfile_id from $input.file_id; grantee_email from $input.grantee_emailno600000 ms
The skill reads the channels below. It prefers the ones furthest from the action.
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 Google Drive API is E1 and never terminal success.

ChannelLevelIndependenceVerifierDeterministicTypical latency
file_action_responseE1same responseaction_resultyesnot stated
file_readbackE2provider readbackhttpyes300 ms
folder_child_eventsE3provider eventwebhookno3000 ms
permission_change_eventsE3provider eventwebhookno3000 ms
permission_readbackE2provider readbackhttpyes300 ms

Which ways can a Google Drive API action look done and not be?

ContractCaseRuleVerdict
google_drive.file.content_storedwrong subjectThe file sits in a different folder than the intent named.CONTRADICTED
google_drive.file.content_storedwrong subjectThe file carries a different name than the intent named.CONTRADICTED
google_drive.file.content_storedpre existing stateThe file is older than the operation. It proves nothing.CONTRADICTED
google_drive.file.content_storedotherThe file is in the trash. Ask a person before you act again.CONTRADICTED
google_drive.file.content_storedduplicate side effectThe child list of the folder changed more than once since the operation started. Do not retry the upload.CONTRADICTED
google_drive.file.content_storedpartial completionDrive holds fewer bytes than the agent sent, or more. Do not upload again before a person reads the file.CONTRADICTED
google_drive.file.content_storedobserved stateDrive imported the content into an editor file. Drive publishes no checksum for such a file, so no read can prove the bytes.CONTRADICTED
google_drive.file.content_storedobserved stateDrive holds other bytes than the agent sent. Ask a person before you upload again.CONTRADICTED
google_drive.file.content_storedobserved stateDrive publishes no checksum for the file yet. The runtime observes again later.PENDING
google_drive.file.createdwrong subjectThe file sits in a different folder than the intent named.CONTRADICTED
google_drive.file.createdwrong subjectThe file carries a different name than the intent named.CONTRADICTED
google_drive.file.createdpre existing stateThe file is older than the operation. It proves nothing.CONTRADICTED
google_drive.file.createdotherThe file is in the trash. Ask a person before you act again.CONTRADICTED
google_drive.file.createdduplicate side effectThe child list of the folder changed more than once since the operation started. Do not retry the upload.CONTRADICTED
google_drive.permission.grantedwrong subjectThe provider holds another permission than the answer named.CONTRADICTED
google_drive.permission.grantedwrong subjectThe permission grants access to a different person than the intent named.CONTRADICTED
google_drive.permission.grantedwrong subjectThe permission grants a different role than the intent named.CONTRADICTED
google_drive.permission.grantedwrong subjectThe permission names a different scope than the intent named. A grant to a domain or to anyone reaches more people than the person asked for.CONTRADICTED
google_drive.permission.grantedotherThe permission comes from a parent folder. This operation did not make it, and nobody can remove it on this item.CONTRADICTED
google_drive.permission.grantedotherThe account behind the permission was deleted. Nobody received the access.CONTRADICTED
google_drive.permission.grantedpre existing stateThe access control list changed before the operation started. That change proves nothing about this operation.CONTRADICTED
google_drive.permission.grantedduplicate side effectThe access control list of the file changed more than once since the operation started. Stop and ask a person.CONTRADICTED
google_drive.permission.grantedobserved stateThe grantee has not accepted the transfer of ownership.PENDING
google_drive.permission.grantedobserved stateThe permission belongs to the published view, and Drive then states the role publishedReader. No published role list names that role. Ask a person.CONTRADICTED

What did the last conformance run show?

The six confidence dimensions of the signed manifest.
DimensionScoreMaximum
Documentation1420
Schema alignment12.2415
Lifecycle certainty17.7820
Evidence strength1620
Causal correlation1015
Sandbox conformance1010
Raw score80.02100
Score after the caps49100

The raw score is 80.02. 4 hard caps apply, so the score is 49 and the level is Provisional.

Why the score is capped.
ReasonHighest score it allows
A lifecycle state has unknown semantics. The compiler cannot prove the end state.49
No strong correlation strategy ties the evidence to the operation.69
20 uncertainty records are open. The lowest cap is 49.49
3 mandatory cases are missing. Example: google_drive.file.content_stored:terminal_failure.74
The score and the level of each contract.
ContractRaw scoreScore after the capsCertification
google_drive.file.content_stored83.2449Provisional
google_drive.file.created8249Provisional
google_drive.permission.granted75.9149Provisional

The weakest contract is google_drive.file.content_stored. 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 41 of 41 cases with 0 critical false VERIFIED. One critical false VERIFIED rejects a skill.

The conformance result by case class.
Case classPassedTotal
duplicate side effect33
error after execution33
error before execution33
evidence unavailable33
pre existing state33
stale readback33
still transitional33
terminal success33
timeout after commit33
version mismatch33
webhook duplicate33
webhook out of order33
wrong subject33
wrong terminal state22

The conformance artifact digest is c1afe7a533b6e2fa. 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. A lifecycle state has unknown semantics. The compiler cannot prove the end state. 20 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.

SourceKindRetrievedExcerpt
google_drive.docs.pushdocs2026-09-09authored
google_drive.docs.sharingdocs2026-09-09authored
google_drive.docs.uploadsdocs2026-09-09authored
google_drive.docs.versionsdocs2026-09-09authored
google_drive.eventsevent sample2026-09-09authored
google_drive.openapiopenapi2026-09-09trimmed

How do I verify a Google Drive API action?

Verify a Google Drive API action with Provely

  1. Begin the operation.Call begin with the contract google_drive.file.content_stored and the input. Keep the operation id.
  2. Make the Google Drive API call you make today.Send the request with the correlation metadata that begin returned.
  3. Submit the acknowledgement.Call action_result with the Google Drive API response. This is evidence level E1. It is not completion.
  4. Verify.Call verify. The runtime reads file_action_response, file_readback, folder_child_events, permission_change_events and permission_readback and evaluates the contract.
  5. 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 content_stored level prove the granted level?

No. A file resource that exists is not a file whose content arrived. This level compares the size and the checksum that Drive publishes. A permission that exists is not a permission for the right person. This level reads the address, the type and the role of the grantee. Use google_drive.permission.granted to prove granted.

What does the agent say while Google Drive API reports session_open and created?

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 Google Drive API API versions does the skill support?

v3.20260901. An operation on another version returns UNVERIFIABLE with the reason version_unsupported. The runtime never guesses.

Does Provely need write access to Google Drive API?

No. The agent keeps its write key. The verifier reads with a separate read-only credential where Google Drive API permits it, and it never shares that credential with the agent.