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