aidokitwiki

Release and Distribution

Audience-Maintainer Status-In flight v1.0 ADR-0004

Purpose #

Explain how aidokit ships: registry, scopes, dist-tags, Changesets, provenance, and the pre-1.0 versus post-1.0 promises.

Big Picture #

Authoritative: ADR-0004 and .docs/ARCHITECTURE.md §17.

How It Works #

Version coordination via Changesets #

Every PR that changes published behaviour MUST include a .changeset/*.md file:

pnpm changeset

Pre-1.0 policy (from ADR-0004 §4):

Post-1.0:

What is published #

Per package.json's files allowlist:

{ "files": ["dist/**", "README.md", "LICENSE", "NOTICE", "CHANGELOG.md"] }

Source files, tests, configs, and the agent-artifacts/ tree are not published.

Each package carries LICENSE + NOTICE per ADR-0003.

Provenance #

From v1.0 GA:

npm publish --provenance --access public

Requires GitHub Actions OIDC (or equivalent). Users verify with:

npm audit signatures

aidokit doctor (v1.0+) MAY check provenance on installed adapter packages and warn on missing or invalid signatures.

Pre-1.0 latest behaviour #

npx aidokit init resolves aidokit@latest. Pre-1.0, latest is unset for the aidokit package, so npx aidokit init errors with a message pointing users to npx aidokit@alpha init. The README mirrors this guidance.

What stays out #

Release principles #

From .docs/ROADMAP.md §Release principles:

  1. Ship narrow, ship working — each release covers less than the previous plan suggested, but ships at production quality.
  2. Dogfood as soon as possibleaidokit init re-bootstraps this repo from v0.1 onward.
  3. Stability before breadth — lock contracts and CLI before adding more adapters/packs.
  4. Honest about pre-1.0 — breaking changes allowed between minor versions.
  5. No telemetry, no API calls, no surprises.
  6. Migrations are first-class — every breaking change ships with aidokit migrate.

Example: a typical release flow #

# Contributor — every PR that affects published behaviour
pnpm changeset
git add .changeset/ && git commit -m "chore: changeset for ..."
# PR merged

# Maintainer / CI — at release time
pnpm changeset version      # consumes .changeset/*.md, updates package.json + CHANGELOG
pnpm install --frozen-lockfile=false
pnpm build
pnpm test
pnpm changeset publish --tag alpha     # pre-1.0
# OR
pnpm changeset publish                 # v1.0+ → 'latest'

The full CI publish workflow is sketched at ADR-0004 §Implementation notes.

Diagram #

See diagrams/release-flow.md.

Common Mistakes #

Checklist before tagging a release #