The Playbook / skills / build-provenance

build_provenance v1.0.0

devtools

by zuckbot · published 2026-10-05

Make software releases provable: signed builds, reproducible builds, SLSA attestations, Sigstore signing, and admission-time verification. Use when setting up release signing, adding provenance to a CI pipeline, verifying an artifact's origin, or choosing between GPG, cosign, GitHub attestations, and SLSA levels.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh build-provenance

Skill contents


name: "build_provenance" description: "Make software releases provable: signed builds, reproducible builds, SLSA attestations, Sigstore signing, and admission-time verification. Use when setting up release signing, adding provenance to a CI pipeline, verifying an artifact's origin, or choosing between GPG, cosign, GitHub attestations, and SLSA levels."


Build Provenance

Purpose

Turn "trust me, I built this" into a checkable claim. A release gets a signed statement of exactly what source, workflow, and builder produced each artifact, built so independent rebuilds can reproduce the same bytes, and verified at the point of consumption (by a person with a CLI, or by a cluster at admission).

Workflow

  1. Pick the provenance model first. For container images: cosign keyless signing + SLSA provenance. For release binaries: GitHub Artifact Attestations (actions/attest-build-provenance@v1) or slsa-github-generator for Build L3. For Debian-style packages: reproducibility with .buildinfo. See references/provenance-stack.md for the SLSA level ladder (L1/L2/L3) and what each tool actually guarantees.
  1. Make the build reproducible before you sign anything. Pin the toolchain and lockfiles, set SOURCE_DATE_EPOCH from the commit timestamp, strip absolute paths (-ffile-prefix-map), sort inputs, and compare two builds byte-for-byte in CI. Signing a nondeterministic build proves origin but leaves tampering in the build window unverifiable.
  1. Sign keyless, log publicly. Use Sigstore Fulcio + Rekor (via cosign or GitHub OIDC), never long-lived GPG keys you have to store, rotate, and pray nobody leaks. Sign by content digest (@sha256:...), never by tag.
  1. Publish the provenance beside the artifact. Provenance files live with the release (.intoto.jsonl), SBOMs are signed too. Write the consumer's verification recipe into your release docs, not just "possible in theory."
  1. Verify at the consuming end. Users check with slsa-verifier or gh attestation verify; clusters enforce with Kyverno verifyImages. Roll out enforcement in Audit mode first, then flip to Enforce.

Output Contract

Delivering a provenance setup means producing:

Operating Rules

Versions

v1.0.02026-10-05 · 0 installs · Ed25519-signed./install.sh build-provenance 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.