124-the-expansion-line-carries-its-own-version
The expansion line carries its own version
The frozen 0.22.0 candidate (`f9fa6a8f`) and `main` both answered `spec-spine 0.22.0` while emitting different registry, read and verdict schemas, so the version string could not say which engine a verdict came from, and an older reader judged a newer corpus invalid instead of refusing it. `main` carries the version the next release will be cut at (0.23.0 when filed, 0.24.0 since D-3, 0.25.0 since D-4, 0.26.0 since D-5, 0.27.0 since D-6, 0.28.0 since D-7), in all three package manifests; this repository's version floor moves with it, so a reader older than the corpus's grammar refuses by name (exit 3); the release runbook makes both a standing step; and a script records a binary's identity from evidence (path, digest, revision, whether it is that checkout's current build, and the schema axes it emits) rather than from `--version`. The frozen candidate is not recut.
Read the full pinned specification ↗Relationships
depended on by
Claimed units
- establishes
{ "kind": "file", "path": "scripts/reader-identity.sh" } - extends
{ "nature": "additive", "spec": "006-distribution", "unit": { "kind": "file", "path": "npm/package.json" } } - extends
{ "nature": "additive", "spec": "007-python-distribution", "unit": { "kind": "directory", "path": "py/" } } - extends
{ "nature": "additive", "spec": "061-shipped-is-not-the-same-as-working", "unit": { "kind": "file", "path": "spec-spine.toml" } } - extends
{ "nature": "additive", "spec": "006-distribution", "unit": { "kind": "file", "path": "docs/releasing.md" } } - extends
{ "nature": "additive", "spec": "105-governed-scope-is-enabled-here", "unit": { "kind": "file", "path": "CLAUDE.md" } } - extends
{ "nature": "additive", "spec": "103-a-verifier-fixture-is-a-published-artifact", "unit": { "kind": "directory", "path": "crates/spec-spine-core/fixtures/verifier/" } }
Source headings
- 124: The expansion line carries its own version
- 1. Purpose
- 1.1 One version string, two engines
- 1.2 The floor could not help either
- 1.3 Why a spec rather than a waiver
- 2. Territory
- 3. Behavior
- 3.1 A version names one behavior
- 3.2 The floor moves with the version
- 3.3 Both are standing steps
- 3.4 A binary's identity is recorded from evidence
- 3.5 The verifier fixtures follow the producer
- 4. Out of scope
- 5. Resolved decisions
- Verification
Frozen anchors
No frozen anchors declared.