Versioning and status
The current SeedSpec protocol release, what experimental status means, and how to pin an exact version.
Current release
| Release | 0.2.0 |
| Protocol family | 0.2 |
| Status | experimental |
| Conformance suite | 0.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-packageThe 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