Versioning and status

The current SeedSpec protocol release, what experimental status means, and how to pin an exact version.

Current release

Release0.2.0
Protocol family0.2
Statusexperimental
Conformance suite0.2.0

Packages published alongside this release:

  • @seedspec/protocol
  • @seedspec/runtime
  • @seedspec/cli

What experimental means

The format is usable and the tooling is real, but the protocol is still learning from use. A future family may add fields, change defaults, or retire concepts that have not earned their place. Packages declare the protocol version they were authored against, and tooling refuses versions it does not understand rather than guessing.

Experimental status is a statement about the contract, not about package safety or tooling stability. Nothing here executes package content.

Pinning

Human-facing examples use the friendly default so they keep working. Anything reproducible — tests, CI, automation, published instructions — should pin an exact version and skip the first-run prompt.

npx @seedspec/[email protected] --yes validate ./my-package

The same applies to schemas. Reference the exact release address rather than the family alias when the bytes must not move underneath you:

https://seedspec.dev/releases/0.2.0/schemas/<name>.schema.json (immutable)https://seedspec.dev/schemas/v0.2/<name>.schema.json (follows the family)

Moving between versions

The CLI can upgrade a package's declared protocol version, dry-run first:

npx @seedspec/cli upgrade ./my-package --dry-run npx @seedspec/cli upgrade ./my-package --write