No. GitHub REST API returns a success response when it accepts the request. Provely proves merged, open and succeeded as separate promises.
| Fact | Value |
|---|---|
| Skill version | 0.1.0 |
| Publisher | Built and signed by Provely. |
| Certification | Provisional |
| Last conformance run | 2026-09-05T12:00:00Z: 41 of 41 cases passed, 0 critical false VERIFIED |
| Provider API versions | 2022-11-28 |
| Default provider API version | 2022-11-28 |
| Compiled | 2026-09-05 |
| Manifest hash | ac807598930f9c4a |
| 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 closed pull request is not a merged one, and merge_commit_sha holds a test merge commit while the pull request is open. | github.pull_request.merged | E2 + E3 | proven |
| The record exists with the intended head branch and base branch. It does not prove that the commits reached the base branch. | github.pull_request.open | E2 + E3 | proven |
| A completed run is not a successful run. The contract reads the conclusion of the run and an event that carries it. | github.workflow_run.succeeded | E2 + E3 | proven |
| An outcome outside GitHub REST API, such as a bank credit or a person who read a message | not proven | no E5 channel | not proven |
| The meaning of a GitHub REST API state that no source states | not proven | no source states it | not proven |
| The agent report that the action worked | never counts | E0 | not proven |
Which completion levels does the GitHub REST 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 |
|---|---|---|---|---|
merged | github.pull_request.merged v1.0.0 | A closed pull request is not a merged one, and merge_commit_sha holds a test merge commit while the pull request is open. | E2 + E3 | Provisional |
open | github.pull_request.open v1.0.0 | The record exists with the intended head branch and base branch. It does not prove that the commits reached the base branch. | E2 + E3 | Provisional |
succeeded | github.workflow_run.succeeded v1.0.0 | A completed run is not a successful run. The contract reads the conclusion of the run and an event that carries it. | E2 + E3 | Provisional |
Which ways can a GitHub REST API action look done and not be?
| Contract | Case | Verdict |
|---|---|---|
| github.pull_request.merged | duplicate side effect | CONTRADICTED |
| github.pull_request.merged | pre existing state | CONTRADICTED |
| github.pull_request.merged | wrong subject | CONTRADICTED |
| github.pull_request.open | duplicate side effect | CONTRADICTED |
| github.pull_request.open | pre existing state | CONTRADICTED |
| github.pull_request.open | wrong subject | CONTRADICTED |
| github.workflow_run.succeeded | duplicate side effect | CONTRADICTED |
| github.workflow_run.succeeded | other | CONTRADICTED |
| github.workflow_run.succeeded | pre existing state | CONTRADICTED |
| github.workflow_run.succeeded | wrong subject | CONTRADICTED |
What did the last conformance run show?
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.
| Contract | Certification |
|---|---|
github.pull_request.merged | Provisional |
github.pull_request.open | Provisional |
github.workflow_run.succeeded | Provisional |
The weakest contract is github.pull_request.merged. It 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.
| Case class | Passed | Total |
|---|---|---|
| duplicate side effect | 3 | 3 |
| error after execution | 3 | 3 |
| error before execution | 3 | 3 |
| evidence unavailable | 3 | 3 |
| pre existing state | 3 | 3 |
| stale readback | 3 | 3 |
| still transitional | 3 | 3 |
| terminal failure | 1 | 1 |
| terminal success | 3 | 3 |
| timeout after commit | 3 | 3 |
| version mismatch | 3 | 3 |
| webhook duplicate | 3 | 3 |
| webhook out of order | 3 | 3 |
| wrong subject | 3 | 3 |
| wrong terminal state | 1 | 1 |
The conformance artifact digest is 0800a56c529af7ce. 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. 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 |
|---|---|---|---|
| github.docs.pulls | docs | 2026-09-08 | authored |
| github.docs.versions | docs | 2026-09-08 | authored |
| github.docs.webhooks | docs | 2026-09-08 | authored |
| github.docs.workflows | docs | 2026-09-08 | authored |
| github.events | event sample | 2026-09-08 | authored |
| github.openapi | openapi | 2026-09-08 | trimmed |
How do I verify a GitHub REST API action?
Verify a GitHub REST API action with Provely
- Begin the operation.Call
beginwith the contractgithub.pull_request.mergedand the input. Keep the operation id. - Make the GitHub REST API call you make today.Send the request with the correlation metadata that
beginreturned. - Submit the acknowledgement.Call
action_resultwith the GitHub REST API response. This is evidence level E1. It is not completion. - Verify.Call
verify. The runtime reads the evidence that the contract names, from GitHub REST API and not from the agent, and 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 merged level prove the succeeded level?
No. A closed pull request is not a merged one, and merge_commit_sha holds a test merge commit while the pull request is open. A completed run is not a successful run. The contract reads the conclusion of the run and an event that carries it. Use github.workflow_run.succeeded to prove succeeded.
What does the agent say while the GitHub REST API action is still in progress?
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 GitHub REST API API versions does the skill support?
2022-11-28. An operation on another version returns UNVERIFIABLE with the reason version_unsupported. The runtime never guesses.
Does Provely need write access to GitHub REST API?
No. The agent keeps its write key. The verifier reads with a separate read-only credential where GitHub REST API permits it, and it never shares that credential with the agent.