Release proof for coding agents

Your coding agent says it shipped. Check the slip.

ProofSlip gives you a checkable link showing which GitHub Actions job released which commit—so you or the next coding agent can verify the claim before moving on.

Install once · no ProofSlip account or API key · open source
Works with Codex Claude Code Cursor Compatible agents
PROOFSLIP
release-proof/v1 · illustrative
Provider verified
prf_demo_7f3k9x2m
Provider-verified GitHub OIDC
Repositoryacme/checkout
Commit8d21c9f…
Refrefs/heads/main
Workflowrelease.yml
Run#1842 · attempt 1
ProofSlip-observed HTTP check
URLapp.acme.dev/health
ObservedHTTP 200 · 143ms

This proves the GitHub job identity and recorded observations at issuance time. It does not prove that every test passed or that the observed deployment contains this commit.

Use the agent you already work with

From install to a checkable release in three steps.

No new dashboard and no ProofSlip login. Add the open-source skill, ask your favourite coding agent to wire it into the real release workflow, and get a proof URL on the next release.

01 / INSTALL

Add the skill once

This teaches your agent how to add release proof safely and how to inspect an existing slip.

npx skills add Johnny-Z13/proofslip --skill proofslip-release-proof
Or paste this into your agent Install the proofslip-release-proof skill from https://github.com/Johnny-Z13/proofslip using the skills CLI. Then inspect this repository's real release workflow and explain what ProofSlip would change. Do not edit yet.
View on GitHub
02 / ASK

Prompt your favourite agent

It finds the workflow that actually releases the project and shows you the smallest safe patch first.

Add ProofSlip to the GitHub Actions workflow that releases this project. Show me the patch before changing it.
03 / CHECK

Get the proof URL

After the next release, the Actions summary contains a portable slip for the exact job and commit.

Provider verifiedacme/checkout · 8d21c9f…proofslip.ai/proof/prf_…
Trust, with labels

Every fact says where it came from.

A release proof is useful only if provider facts, ProofSlip observations, and workflow-supplied context never blur together.

01 / GITHUB

Provider-verified

Claims cryptographically tied to a valid GitHub Actions OIDC token.

  • repository and owner
  • commit SHA and ref
  • workflow, run, actor and event
02 / PROOFSLIP

ProofSlip-observed

Facts ProofSlip measured directly at the moment the proof was issued.

  • deployment URL requested
  • HTTP status and latency
  • observation timestamp
03 / WORKFLOW

Useful labels supplied by the workflow, visibly separated from evidence.

  • environment label
  • release name
  • human-readable context
What it does not prove

A proof with limits is stronger than a bigger claim.

×GitHub OIDC does not prove that every test passed or that the entire workflow completed successfully.
×An HTTP 200 observation does not prove that the deployment contains the provider-verified commit.
×Labels submitted by the workflow do not become verified facts because they appear on the same slip.
The workflow

One release. One portable proof.

01

Release from GitHub Actions

Your workflow requests a short-lived OIDC token scoped to the ProofSlip audience.

02

Issue the slip

ProofSlip verifies GitHub's signature and required claims, records optional observations, and stores an immutable proof.

03

Check before continuing

The next agent fetches the proof URL and sees the exact verified facts, limits, and expiry.

Two useful prompts

Add a slip, or check one you received.

The readable skill can inspect an existing release proof, or prepare the smallest GitHub Actions change in the workflow that actually releases your project. It asks before editing and never commits, pushes, or releases on its own.

“Add ProofSlip to the GitHub Actions workflow that actually releases this project. Show me the patch before changing it.”
“Verify this ProofSlip URL. Separate provider facts, ProofSlip observations, submitted context, and limitations.”
Use these in Codex, Claude Code, Cursor, or another compatible coding agent · copy the install command
GitHub Actions quick start

Add release proof after your release job.

The release workflow grants OIDC permission, requests a token for ProofSlip, and exchanges it for a public proof URL.

No stored GitHub credentialThe OIDC token is short-lived, verified, and never persisted.
No ProofSlip accountThe GitHub job identity is the credential for this narrow workflow.
Public proof URLAdd it to the Actions summary, release, task, or agent handoff.
.github/workflows/release.ymlrelease-proof/v1
permissions:
  contents: read
  id-token: write

steps:
  - name: Create ProofSlip release proof
    shell: bash
    run: |
      TOKEN="$(curl -fsS \
        -H "Authorization: Bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" \
        "${ACTIONS_ID_TOKEN_REQUEST_URL}&audience=https%3A%2F%2Fproofslip.ai" \
        | jq -r '.value')"

      RESPONSE="$(curl -fsS -X POST \
        -H "Authorization: Bearer $TOKEN" \
        -H "Content-Type: application/json" \
        https://proofslip.ai/v1/proofs/releases/github-actions \
        --data '{"idempotency_key":"${{ github.repository }}:${{ github.run_id }}:${{ github.run_attempt }}"}')"

      PROOF_URL="$(jq -r '.proof_url' <<< "$RESPONSE")"
      echo "### [View release proof]($PROOF_URL)" >> "$GITHUB_STEP_SUMMARY"
For the next agent

Fetch the proof. Read the provenance. Decide.

Machine-readable

Public JSON exposes provider claims, ProofSlip observations, submitted context, validity, and expiry as separate fields.

curl https://proofslip.ai/v1/proofs/prf_...

Human-readable

The same proof opens as an evidence page with direct links to the exact GitHub run and commit.

https://proofslip.ai/proof/prf_...
Open by default

Inspect it. Self-host it. Improve it.