107-a-context-closure-is-declared

A context closure is declared

Lifecycle approvedImplementation completeVerification unknownQualification unknown

A piece of work has no declared answer to "what must I have read before I act on this", and no way to tell later whether that context changed. A ContextClosure is that answer as data: the specs, sections and obligations a task is answerable to, named by the task's owner. spec-spine resolves a closure request against the committed ledger and returns every member with its identity and one order-independent digest over all of them, so "the context this work was done against has changed" is one comparison. The closure lives in the consumer's record; spec-spine only resolves it, and no gate reads one.

Read the full pinned specification ↗

Relationships

Claimed units

  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-core/src/closure.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-core/tests/closure.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-cli/tests/closure.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-cli/tests/closure_composed.rs"
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-compile-registry",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/src/lib.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "002-registry-query",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-cli/src/cmd_registry.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "057-the-docs-name-what-adopters-derived",
      "unit": {
        "kind": "file",
        "path": "docs/api.md"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "074-a-governed-read-names-its-version",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/src/version.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": "057-the-docs-name-what-adopters-derived",
      "unit": {
        "kind": "file",
        "path": "docs/schema-versioning.md"
      }
    }

Source headings

  1. 107: A context closure is declared
  2. 1. Purpose
  3. 1.1 Why it is built now (design note 09, D-7)
  4. 1.2 Why it depends on obligations, and on nothing else
  5. 2. Territory
  6. 3. Behavior
  7. 3.1 A closure lives with its consumer, and spec-spine resolves it
  8. 3.2 Every reference is qualified and resolved
  9. 3.3 The resolved closure
  10. 3.4 The digest is over what the members are, not how they were named
  11. 3.5 A digest over a stale ledger is refused
  12. 3.6 The surfaces
  13. 3.7 What a closure establishes, and what it does not
  14. 3.8 Closures are inert in every gate
  15. 4. Out of scope
  16. 5. Resolved decisions
  17. Verification

Frozen anchors

No frozen anchors declared.