How it works
Don't trust us. Check it.
A workrr certificate says that open-source code, at a specific public commit, ran four checks on an AI agent artifact and got the recorded results. Everything involved is public. This page explains the process and links to every piece of it.
The process
From artifact to verified certificate
-
A publisher adds the certifier to their CI
The artifact (a skill, MCP server or ruleset) lives in the publisher's public repository. They call workrr's open certifier workflow from their own GitHub Actions. workrr never receives or hosts their code.
jobs: certify: permissions: { contents: read, id-token: write, attestations: write } uses: workrr-trust/certify/.github/workflows/certify.yml@v0.1.5 with: { path: skills/my-skill } -
The certifier runs four checks
Provenance: the artifact is committed and unchanged at a known commit. Policy: it conforms to a named, digest-pinned policy. Known-pattern scan: no high or critical findings from a pinned ruleset. Tests: the artifact's own test suite passes. The artifact's tests run in a separate job that has no permission to sign anything, so a malicious artifact can't get anything signed as workrr.
-
It's signed keylessly and logged in public
If every check passes, the result is signed through Sigstore using the CI job's own identity. There's no long-lived workrr signing key to steal. The signing identity is the certifier workflow at a release tag, and every signature is recorded in Rekor, a public append-only log run by the open-source community.
-
A public ledger records and watches it
The ledger discovers new certificates automatically and indexes them by artifact digest. Every hour it checks that Rekor's log has only been appended to, never rewritten. Once a day it timestamps its latest checkpoint into Bitcoin through OpenTimestamps. A GitLab copy independently re-checks the log and only ever moves forward, so a rewrite on GitHub would be caught.
-
Anyone verifies it, without asking us
The open verifier re-hashes the artifact and checks the Sigstore signature, the Rekor inclusion proof and the signer identity. Two independent implementations (TypeScript and Go) must agree byte for byte.
npx @workrr-trust/certify verify ./my-skill --bundle certificate.sigstore.json
Plain language
What a certificate says, and what it doesn't
It does say
- This exact content (by sha256 digest) was certified.
- It came unchanged from this public repository and commit.
- It met this named, digest-pinned policy.
- The pinned ruleset found no high or critical known patterns.
- Its own declared test suite passed (level Tested), or it has no deterministic tests (level Signed).
- The public certifier at a specific tag and commit produced the result, and Rekor recorded when.
It doesn't say
- That the artifact is "safe". Pattern scans catch known attacks, not every possible one.
- Anything about content with a different digest, even one byte different.
- Anything about how the artifact behaves beyond its own tests.
- That workrr reviewed it by hand. The checks are automated and reproducible.
Inspect everything
Every public piece, linked
Nothing here needs an account or our permission. The records on Sigstore, the Go module proxy and Bitcoin are held by third parties and can't be edited by workrr.
The certifier
- workrr-trust/certifyAll source code: TypeScript, Go, spec, workflows. Apache-2.0.
- certify.yml at v0.1.5The signing identity named in every certificate, at its release tag
- Certificate spec v0.1Also on GitHub and as a JSON Schema
- Test and release runsEvery CI and release run, public
- Design rationale · Security policy
Releases & packages
- GitHub release v0.1.5Six Go binaries, each with a Sigstore build attestation
- @workrr-trust/certify on npmPublished from CI with build provenance (Rekor 3326283759)
- Go module on pkg.go.devServed by the public Go module proxy and checksum database
Live certificates
- workrr-trust/sample-skillsA sample skill certified on every push
- Certificate #1 — Rekor 3325986274Issued 2026-10-19 by run 39318231388
- Certificate #2 — Rekor 3327506697Issued 2026-10-19 by run 39339958986, indexed by the ledger automatically
The public ledger
- Live ledger viewEvery certificate, the latest Rekor checkpoint, Bitcoin anchors and mirror status, read live in your browser
- workrr-trust/ledgerSigned commits only. Includes an audit script anyone can run.
- Certificates · Rekor checkpoints · Bitcoin timestamps
- Monitor, discovery and anchor runsHourly log monitor, automatic discovery, daily anchor
- GitLab mirror · its pipelinesIndependent copy that only fast-forwards and re-checks the log
Rekor transparency log
- All Rekor entries for the sample skillAn automatic search by artifact digest. The ledger has this link for every certified artifact.
- 3325986274 · 3327506697Certificates #1 and #2. Every newer one is listed on the ledger page.
- Our Rekor checkpointsSigned tree heads the ledger has seen, each checked as append-only against the last
- How Rekor worksRun by the Sigstore project at the OpenSSF, not by workrr
Public infrastructure we rely on
- SigstoreKeyless signing (Fulcio) and the Rekor log
- OpenTimestampsFree Bitcoin timestamping, used for the daily ledger anchor
- Go module proxy · checksum databaseImmutable copies of every Go release
Hands on
Verify it yourself
Check the first certificate from scratch. You need Node 22+ or Go, plus the gh CLI to download the certificate.
# 1. Get the artifact and its certificate
git clone https://github.com/workrr-trust/sample-skills && cd sample-skills
gh run download 39318231388 --repo workrr-trust/sample-skills -n workrr-certificate -D cert
# 2. Verify with the npm package…
npx @workrr-trust/certify verify skills/csv-summary --bundle cert/certificate.sigstore.json
# …or the Go implementation
go install github.com/workrr-trust/certify/go/cmd/workrr@v0.1.5
workrr verify skills/csv-summary --bundle cert/certificate.sigstore.json
# 3. Audit the whole ledger, including the GitLab mirror
git clone https://github.com/workrr-trust/ledger && cd ledger
MIRRORS=https://gitlab.com/workrr-trust/ledger.git bash scripts/audit.sh
Change one byte of the skill and run step 2 again: verification fails, because the certificate covers that exact content.
Honest limits
What v0.1 doesn't do yet
- No revocation check yet. A revocation ledger ships in v0.2.
- The trust policy is built into the verifier. In v0.2 it becomes a signed file under an offline root key, pinning exact certifier commits.
- No Reproduced certificates yet. Reproduced needs a second, GitLab-based certifier to reach the same result independently. It isn't built yet.
- Public repositories only. Certification of private, internal artifacts is the paid tier and works differently.
Get involved
Want this for your agents?
Public artifacts: start now, free. Private artifacts, a private registry or audit evidence: book 20 minutes with us.