The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the ProofSlip listing page.
A public proof that a specific GitHub Actions job ran for a specific commit.
ProofSlip verifies a GitHub Actions OIDC token, records the provider-backed job identity and execution context, and returns a stable public proof URL. No ProofSlip account or API key is required for release proofs.
Live site · Agent Skill · Docs · OpenAPI · Privacy
The open-source skill gives Codex, Claude Code, Cursor, and other skills-compatible agents two focused workflows:
The skill inspects before editing, shows the proposed workflow change, and asks for approval. It does not create a synthetic “proof-only” workflow, and it never commits, pushes, or releases without separate authorization.
Example prompts:
Every release-proof/v1 object keeps three evidence sources separate:
| Field | Source | What it establishes |
|---|---|---|
issuer | GitHub Actions OIDC, provider-verified | The identity and execution context of the workflow job that requested the token. |
observations | ProofSlip | Optional facts ProofSlip observed at issuance time, such as an HTTP status. |
submitted_context | Workflow input | Caller-supplied labels, explicitly marked unverified. |
A proof does not establish that tests passed, that the entire workflow succeeded, or that a deployment contains the claimed commit.
Optional request fields let the workflow ask ProofSlip to observe a public HTTPS endpoint and attach unverified labels:
The response includes a human proof_url and a machine-readable proof_id:
Fetch JSON with:
| Method | Endpoint | Auth | Purpose |
|---|---|---|---|
POST | /v1/proofs/releases/github-actions | GitHub Actions OIDC | Create a provider-backed release proof. |
GET | /v1/proofs/:proof_id | None | Fetch public proof JSON. |
GET | /proof/:proof_id | None | View the human evidence page. |
POST | /v1/receipts | ProofSlip API key | Create a legacy workflow receipt. |
GET | /v1/verify/:receipt_id | None | Verify a legacy receipt. |
GET | /v1/receipts/:receipt_id/status | None | Poll legacy receipt status. |
POST | /v1/auth/signup | None | Create an API key for legacy receipts. |
The full contract is available in the human docs, OpenAPI, and docs/specs/release-proof-v1.md.
Release proof URLs are public, including proofs created from private repositories. The proof can expose repository metadata, workflow identifiers, actor, ref, SHA, and any submitted context.
Release proofs have a 90-day validity window. After that window they return HTTP 410 with is_expired: true, but V1 keeps the full record inspectable. Expiration is not automatic deletion. Read the privacy policy before enabling private-repository workflows.
Legacy receipts are different: they expire after at most 24 hours and are deleted by automated cleanup.
Aggregate release-proof event rows contain no tokens, emails, IPs, or payload content and are deleted after at most 90 days.
409.The published integrations currently expose the original short-lived receipt API, not release-proof creation.
Tools: create_receipt, verify_receipt, check_status, signup.
Tools: create receipt, verify receipt, and check status, plus a toolkit wrapper.
| Endpoint | Format | Purpose |
|---|---|---|
/llms.txt | Text | Compact agent context. |
/llms-full.txt | Text | Complete agent contract. |
/.well-known/openapi.json | JSON | OpenAPI 3.1. |
/.well-known/agent.json | JSON | Agent discovery. |
/.well-known/mcp.json | JSON | Legacy receipt MCP package. |
Requirements: Node.js 18+ and PostgreSQL (the production deployment uses Neon).
Important environment variables:
| Variable | Purpose |
|---|---|
DATABASE_URL | Application database. Production deployments point this at the production branch. |
TEST_DATABASE_URL | Dedicated test database or Neon branch. It must not resolve to the same target as DATABASE_URL. |
BASE_URL | Public base URL; defaults to https://proofslip.ai. |
CRON_SECRET | Protects cleanup of expired receipts and 90-day aggregate proof events. |
RESEND_API_KEY | Optional transactional signup email. |
PROOFSLIP_API_KEY | Used by production smoke tests for legacy receipts. |
The integration test setup remaps DATABASE_URL to TEST_DATABASE_URL and fails closed if the two targets are identical, including pooled versus direct Neon URLs.
The LangChain layer runs from packages/langchain/.venv when available.
ProofSlip and Context Capsule remain separate products with one narrow connection:
A coding-handoff/v1 capsule can include release-proof IDs in references.proofslip_ids. The receiving agent still fetches and inspects each proof; a reference alone does not make a handoff claim verified. See Context Capsule.
ProofSlip is live and open source. release-proof/v1 and the backward-compatible receipt API are deployed. The repository-owned release-proof Agent Skill is the primary authoring and verification path under active validation; website and discovery changes should be deployed only after the full local and production checks pass.