aidokitwiki

Signed @aidokit/* packages

Every @aidokit/* package published to npm ships with an npm provenance statement (Sigstore). The statement links the published tarball back to the specific GitHub Actions workflow run that built it, so you can verify a package was published by aidokit's own publish pipeline and not by a compromised maintainer credential.

What you get #

When you npm install @aidokit/core (or any sibling package), npm fetches not just the tarball but an attestation bundle generated during the publish run. The bundle proves:

The attestation is signed by Sigstore's transparency log (rekor.sigstore.dev), publicly verifiable, and immutable.

Verifying a package #

# Quickest check — show the attestations field
npm view @aidokit/core --json | jq '.dist.attestations'

# Full chain — recompute the hash and verify against Sigstore
npm audit signatures

If npm audit signatures reports any unsigned @aidokit/* package after v1.0, treat it as a supply-chain incident. Open an issue tagged security immediately.

What provenance does NOT guarantee #

Be honest with yourself about the threat model:

If your threat model requires defense against compromised maintainer accounts, also pin to specific SHAs of the workflow file via actions/checkout and require branch protection — both standard hardening practices.

How publishing works (for maintainers) #

The .github/workflows/publish.yml workflow:

  1. Triggers on push to main (typically after a Changesets "Version Packages" PR has been merged).
  2. Installs, builds, typechecks, and tests across the workspace.
  3. Verifies the v4 reference snapshot is present (the dogfood gate).
  4. Calls changesets/action@v1, which either opens a release PR or — if one has just been merged — runs pnpm changeset publish.
  5. The publish step has NPM_CONFIG_PROVENANCE=true set and the workflow has id-token: write, so every tarball gets a provenance statement attached automatically.

Manual publishes are deliberately not supported — see ADR-0004.

What we don't sign (yet) #

See also #