110-an-interface-reference-is-digest-pinned

An interface reference is digest-pinned

Lifecycle approvedImplementation completeVerification unknownQualification unknown

A spec can cite another repository's spec only in prose, so the citation cannot go stale visibly. This declares a cross-corpus interface reference pinned to the cited spec's content hash, and optionally to the digests of the sections it relies on, and adds one verifier that recomputes those digests from a corpus the caller supplies locally. A moved interface becomes a named, exit-coded fact. Discovery, fetching and trust in the exporter stay with the caller; nothing is ever pinned from what was first observed.

Read the full pinned specification ↗

Relationships

Claimed units

  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-types/src/interface.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-core/src/interface.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-cli/src/cmd_interface.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-core/tests/interface.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-cli/tests/interface.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-cli/tests/interface_composed.rs"
    }
  • extends
    {
      "nature": "additive",
      "spec": "000-spec-spine-bootstrap",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/src/frontmatter.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-compile-registry",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/src/registry.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-compile-registry",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/src/lib.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-compile-registry",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/src/version.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-compile-registry",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/schemas/registry.schema.json"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "022-index-sharding",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/schemas/registry-spec-shard.schema.json"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-compile-registry",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/src/compile.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-compile-registry",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/src/lib.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-compile-registry",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-cli/src/main.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "067-a-short-id-names-the-same-spec-at-every-verb",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-cli/tests/spec_id.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "022-index-sharding",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/tests/dtos.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "106-obligations-are-declared-constraints",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/tests/obligations.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "109-impact-and-conflict-are-declared",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/tests/impacts.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "074-a-governed-read-names-its-version",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/tests/read.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "088-the-template-teaches-the-whole-grammar",
      "unit": {
        "kind": "file",
        "path": "standards/spec/templates/spec-template.md"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "057-the-docs-name-what-adopters-derived",
      "unit": {
        "kind": "file",
        "path": "docs/schema-versioning.md"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "057-the-docs-name-what-adopters-derived",
      "unit": {
        "kind": "file",
        "path": "docs/api.md"
      }
    }
  • extends
    {
      "nature": "corrective",
      "spec": "103-a-verifier-fixture-is-a-published-artifact",
      "unit": {
        "kind": "directory",
        "path": "crates/spec-spine-core/fixtures/verifier/"
      }
    }

Source headings

  1. 110: An interface reference is digest-pinned
  2. 1. Purpose
  3. 1.1 The dependencies
  4. 1.2 What it enables (D-1)
  5. 2. Territory
  6. 3. Behavior
  7. 3.1 A reference names a corpus, a spec and a digest
  8. 3.2 Malformed references are refused at compile
  9. 3.3 Verification recomputes from a corpus the caller supplies
  10. 3.4 The library and the facade
  11. 3.5 What a reference establishes, and what it does not
  12. 3.6 A reference is updated deliberately
  13. 3.7 Nothing else gates on a reference
  14. 4. Out of scope
  15. 5. Resolved decisions
  16. Verification

Frozen anchors

No frozen anchors declared.