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
- 110: An interface reference is digest-pinned
- 1. Purpose
- 1.1 The dependencies
- 1.2 What it enables (D-1)
- 2. Territory
- 3. Behavior
- 3.1 A reference names a corpus, a spec and a digest
- 3.2 Malformed references are refused at compile
- 3.3 Verification recomputes from a corpus the caller supplies
- 3.4 The library and the facade
- 3.5 What a reference establishes, and what it does not
- 3.6 A reference is updated deliberately
- 3.7 Nothing else gates on a reference
- 4. Out of scope
- 5. Resolved decisions
- Verification
Frozen anchors
No frozen anchors declared.