055-a-version-pin-the-cli-can-check

A version pin the CLI can check

Lifecycle approvedImplementation completeVerification unknownQualification unknown

A repository is governed by whichever spec-spine binary happens to be on the path, and nothing anywhere says which one it should be. rahi states 0.11.0 in three files that must agree by hand. All four governed repositories are two to four releases behind the fixes their own experience motivated, and rahi cannot see spec 041, which was written for rahi's exact state, because it is pinned below it. This spec adds `[meta] required_version`, a semver requirement the CLI checks on every run, refusing with a message that names both the requirement and the running version. The schema versions already tell a loader whether it can read an artifact; this tells an operator whether they are running the tool the corpus was governed by, which is a different question and currently has no answer at all.

Read the full pinned specification ↗

Relationships

Claimed units

  • extends
    {
      "nature": "additive",
      "spec": "000-spec-spine-bootstrap",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/src/config.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-compile-registry",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-cli/src/main.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "092-the-engine-ships-governance-not-an-environment",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/src/scaffold.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "000-spec-spine-bootstrap",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/tests/config.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "000-spec-spine-bootstrap",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/src/lib.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "047-effective-config-is-a-governed-read",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-cli/src/cmd_config.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "057-the-docs-name-what-adopters-derived",
      "unit": {
        "kind": "file",
        "path": "docs/schema-versioning.md"
      }
    }

Source headings

  1. 055: A version pin the CLI can check
  2. 1. Purpose
  3. 2. Territory
  4. 3. Behavior
  5. 3.1 `[meta] required_version`
  6. 3.2 Every verb checks it
  7. 3.3 An old binary refuses too, for the wrong reason
  8. 3.4 The scaffold writes it, commented out
  9. 3.5 It does not check the schema versions
  10. 4. Out of scope
  11. 5. Verification

Frozen anchors

No frozen anchors declared.