Spec Studio

Views speak binding language, never the internal fact name

spec:consumers.binding-language-viewsBusiness Rule · featureready floor ready

Packs: pack:self-hosting-v1

Design: no design entries · no pinned declarations · 1 decision

Findings: no errors, no warnings

specs/consumers/binding-language-views.sdp.md

No open questions and no blocking questions; implementation binding present, verifier binding present, and expected-outcome oracle none.

The binding-not-liveness decision owns what a binding asserts; this Spec states the labels the views render.

Intent
outcome
Keep a reader from reading a delivery fact as a liveness claim the graph never made.
Rule
rule line 18 · specs/consumers/binding-language-views.sdp.md:18
No Design Review page labels a binding with a delivery-fact name; the drift queries read those names, and the census lists them as values of the graph's runtime taxonomy.
rule line 19 · specs/consumers/binding-language-views.sdp.md:19
A Spec page's bindings block renders four labelled lines — implementation binding, verifier binding, expected-outcome oracle, and runtime observation.
rule line 20 · specs/consumers/binding-language-views.sdp.md:20
The three binding lines read present or none, and nothing else: what a binding says is that a resolving anchor exists, so the reader is offered existence rather than a degree.
rule line 21 · specs/consumers/binding-language-views.sdp.md:21
Runtime observation always reads not tracked. The graph does not derive the designed observed fact, and the view states the absence instead of leaving a reader to infer it from a missing line.
rule.aggregateColumns line 22 · specs/consumers/binding-language-views.sdp.md:22
The Pack member table and the index table carry the same two binding columns, with the same present and none values, so the aggregate surfaces speak the page's language rather than a shorthand of their own.

no example exercises it

4 unkeyed rules.

Verifying examples

A fully bound Spec renders binding language on the page and in the index · spec:consumers.binding-language-views.bound-spec-page · ready floor ready

Executable Spec

Given the graph holds a spec {specId: "spec:probe.bound-surface"} bound by {bindings: "an implementing code anchor and a verifying test anchor"}
When the Design Review renders the graph
Then the spec page renders the implementation binding as {implementation: "present"}
Then the spec page renders the verifier binding as {verifier: "present"}
Then the spec page renders the expected-outcome oracle as {oracle: "none"}
Then the spec page renders the runtime observation as {observation: "not tracked"}
Then the index table repeats those binding values for the spec: {tableRepeats: true}
Then the internal delivery-fact name {factName: "implemented"} appears as rendered label text: {factNameRendered: false}

Open example

The Pack member table speaks the page's binding language, not a shorthand · spec:consumers.binding-language-views.pack-member-table · ready floor ready

Executable Spec

Given the graph holds a spec {specId: "spec:probe.bound-surface"} bound by {bindings: "an implementing code anchor and a verifying test anchor"}
Given the graph holds a pack {packId: "pack:probe.review-aggregate"} listing that spec beside an unbound member
When the Design Review renders the graph
Then the pack member table repeats those binding values for the spec: {memberTableRepeats: true}
Then the internal delivery-fact name {factName: "implemented"} appears as rendered label text: {factNameRendered: false}

Open example

Example space

Given the graph holds a spec {specId:string} bound by {bindings:"an implementing code anchor and a verifying test anchor"|"no anchor at all"}
Given the graph holds a pack {packId:string} listing that spec beside an unbound member
When the Design Review renders the graph
Then the spec page renders the implementation binding as {implementation:"present"|"none"}
Then the spec page renders the verifier binding as {verifier:"present"|"none"}
Then the spec page renders the expected-outcome oracle as {oracle:"present"|"none"}
Then the spec page renders the runtime observation as {observation:string}
Then the index table repeats those binding values for the spec: {tableRepeats:boolean}
Then the pack member table repeats those binding values for the spec: {memberTableRepeats:boolean}
Then the internal delivery-fact name {factName:string} appears as rendered label text: {factNameRendered:boolean}
Verification

Verifier bindings

Example space

  • specId · string · declared by the graph holds a spec {specId} bound by {bindings}
  • bindings · "an implementing code anchor and a verifying test anchor" | "no anchor at all" · declared by the graph holds a spec {specId} bound by {bindings}
  • packId · string · declared by the graph holds a pack {packId} listing that spec beside an unbound member

Bound points

ExamplespecIdbindingspackId
spec:consumers.binding-language-views.bound-spec-page"spec:probe.bound-surface""an implementing code anchor and a verifying test anchor"unbound
spec:consumers.binding-language-views.pack-member-table"spec:probe.bound-surface""an implementing code anchor and a verifying test anchor""pack:probe.review-aggregate"

Oracle binding: none

Coverage

specId: "spec:probe.bound-surface" · spec:consumers.binding-language-views.bound-spec-page, spec:consumers.binding-language-views.pack-member-table · not enumerable

bindings
Declared valueExamples
"an implementing code anchor and a verifying test anchor"spec:consumers.binding-language-views.bound-spec-page, spec:consumers.binding-language-views.pack-member-table
"no anchor at all"no example

packId: "pack:probe.review-aggregate" · spec:consumers.binding-language-views.pack-member-table · not enumerable

Unbound

Design view

Requirement drawing

Requirement drawing for spec:consumers.binding-language-views
Requirement drawing for spec:consumers.binding-language-viewssatisfies · anchoredsatisfies · anchoredrefines · declaredrefines, verifies · declaredrefines, verifies · declaredverifies · anchoredverifies · anchoredIntended Specsspec:consumers.binding-language-viewsViews speak bindinglanguage, never theinternal fact name…consumers.binding-language-viewsdeclared SpecDeclared verifying examplesspec:consumers.binding-language-views.bound-spec-pageA fully bound Spec rendersbinding language on thepage and in the index…consumers.binding-language-views.bound-spec-pagedeclared Specspec:consumers.binding-language-views.pack-member-tableThe Pack member tablespeaks the page's bindinglanguage, not a shorthand…consumers.binding-language-views.pack-member-tabledeclared SpecSatisfying or referencingunitsimpl:protocol.binding-language-index-tablerenders binding presence inindex and Pack tables…protocol.binding-language-index-tableanchored codeimpl:protocol.binding-language-spec-pagerenders implementation,verifier, oracle, andobservation binding language…protocol.binding-language-spec-pageanchored codeTest or oracle bindingstest:protocol.binding-language-views.bound-spec-pagethe bound-surface pointverifies the renderedbinding vocabulary…protocol.binding-language-views.bound-spec-pageanchored test binding ·binding presenttest:protocol.binding-language-views.pack-member-tablethe pack-member pointverifies the aggregate halfof the rendered bindingvocabulary…protocol.binding-language-views.pack-member-tableanchored test binding ·binding presentOutside the selected setspec:consumers.design-reviewDesign Review renders graphcontext without becoming agate…consumers.design-reviewdeclared Spec
The diagram as text
  • spec:consumers.binding-language-views: Views speak binding language, never the internal fact name · declared Spec
  • spec:consumers.binding-language-views.bound-spec-page: A fully bound Spec renders binding language on the page and in the index · declared Spec
  • spec:consumers.binding-language-views.pack-member-table: The Pack member table speaks the page's binding language, not a shorthand · declared Spec
  • spec:consumers.design-review: Design Review renders graph context without becoming a gate · declared Spec
  • impl:protocol.binding-language-index-table: renders binding presence in index and Pack tables · anchored code · src/projections/design-review-pages.ts:201
  • impl:protocol.binding-language-spec-page: renders implementation, verifier, oracle, and observation binding language · anchored code · src/projections/design-review-context.ts:95
  • test:protocol.binding-language-views.bound-spec-page: the bound-surface point verifies the rendered binding vocabulary · anchored test binding · binding present · test/self-hosting-projections.test.ts:789
  • test:protocol.binding-language-views.pack-member-table: the pack-member point verifies the aggregate half of the rendered binding vocabulary · anchored test binding · binding present · test/self-hosting-projections.test.ts:799
  • spec:consumers.binding-language-views refines spec:consumers.design-review · declared
  • spec:consumers.binding-language-views.bound-spec-page refines spec:consumers.binding-language-views · declared
  • spec:consumers.binding-language-views.bound-spec-page verifies spec:consumers.binding-language-views · declared
  • spec:consumers.binding-language-views.pack-member-table refines spec:consumers.binding-language-views · declared
  • spec:consumers.binding-language-views.pack-member-table verifies spec:consumers.binding-language-views · declared
  • impl:protocol.binding-language-index-table satisfies spec:consumers.binding-language-views · anchored
  • impl:protocol.binding-language-spec-page satisfies spec:consumers.binding-language-views · anchored
  • test:protocol.binding-language-views.bound-spec-page verifies spec:consumers.binding-language-views.bound-spec-page · anchored
  • test:protocol.binding-language-views.pack-member-table verifies spec:consumers.binding-language-views.pack-member-table · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

Preferred and chosen syntax: requirementDiagram; exact refines, satisfies and verifies, with claim words in nodes and per-edge comments.

Decisions

Runtime
  • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol
    • component:protocol.graph · the one graph and its semantic decisions · src/graph/schema.ts:34 · layer domain · context protocol
    • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol
    • component:protocol.notation · the leaf step codec · src/notation/slots.ts:261 · layer domain · context protocol
    • component:protocol.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.binding-language-index-table · renders binding presence in index and Pack tables · src/projections/design-review-pages.ts:201

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.binding-language-spec-page · renders implementation, verifier, oracle, and observation binding language · src/projections/design-review-context.ts:95

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

Runtime observation: not tracked.

Evidence

Runtime observation: not tracked.

Build attestations: not tracked.

Deployments: not tracked.

Bills of materials: not tracked.

Impact
Relations of spec:consumers.binding-language-views
The diagram as text
  • spec:consumers.binding-language-views: Views speak binding language, never the internal fact name
  • spec:consumers.binding-language-views.bound-spec-page: A fully bound Spec renders binding language on the page and in the index
  • spec:consumers.binding-language-views.pack-member-table: The Pack member table speaks the page's binding language, not a shorthand
  • spec:consumers.design-review: Design Review renders graph context without becoming a gate
  • spec:consumers.design-review.pack-design-page: A Pack page shows where the Pack's design stands
  • spec:consumers.obsidian-vault.notes: Every Spec, Pack, code unit and keyed term is a note, and every relation is a link
  • spec:consumers.spec-studio.capability-map-page: The capability map page makes refinement readable by epic
  • spec:consumers.spec-studio.index-page: The index says where the corpus stands and narrows every Spec
  • spec:consumers.spec-studio.pack-page: A Pack page shows the Pack's design as one card per member
  • spec:consumers.spec-studio.slice-page: A slice page shows a Pack's design as one whole
  • spec:consumers.spec-studio.spec-page: A Spec page shows one Spec in collapsible panels, in a fixed order
  • spec:consumers.spec-studio.spec-page.core: A Spec page's core shows the whole Spec, with an anchor for every entry
  • spec:decisions.binding-not-liveness: Bindings state existence, not liveness
  • spec:consumers.binding-language-views decidedBy spec:decisions.binding-not-liveness · declared
  • spec:consumers.binding-language-views refines spec:consumers.design-review · declared
  • spec:consumers.design-review.pack-design-page dependsOn spec:consumers.binding-language-views · declared
  • spec:consumers.obsidian-vault.notes dependsOn spec:consumers.binding-language-views · declared — rendered binding labels must state existence rather than liveness
  • spec:consumers.spec-studio.capability-map-page dependsOn spec:consumers.binding-language-views · declared — aggregate rows use the same binding labels as Spec pages
  • spec:consumers.spec-studio.index-page dependsOn spec:consumers.binding-language-views · declared
  • spec:consumers.spec-studio.pack-page dependsOn spec:consumers.binding-language-views · declared
  • spec:consumers.spec-studio.slice-page dependsOn spec:consumers.binding-language-views · declared
  • spec:consumers.spec-studio.spec-page dependsOn spec:consumers.binding-language-views · declared
  • spec:consumers.spec-studio.spec-page.core dependsOn spec:consumers.binding-language-views · declared
  • spec:consumers.binding-language-views.bound-spec-page refines spec:consumers.binding-language-views · declared
  • spec:consumers.binding-language-views.pack-member-table refines spec:consumers.binding-language-views · declared
  • spec:consumers.binding-language-views.bound-spec-page verifies spec:consumers.binding-language-views · declared
  • spec:consumers.binding-language-views.pack-member-table verifies spec:consumers.binding-language-views · declared
Mermaid source

Copyable source; the Studio draws static SVG.

Preferred syntax: flowchart. Chosen syntax: labelled flowchart, preserving exact relations, claims and folds.

Rests on

Rested on by

Distance 1

Distance 2

Distance 3

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingBindings state existence, not liveness
spec:decisions.binding-not-liveness · resolves
declaredNoneNone
refines · outgoingDesign Review renders graph context without becoming a gate
spec:consumers.design-review · resolves
declaredNoneNone
dependsOn · incomingA Pack page shows where the Pack's design stands
spec:consumers.design-review.pack-design-page · resolves
declaredNoneNone
dependsOn · incomingEvery Spec, Pack, code unit and keyed term is a note, and every relation is a link
spec:consumers.obsidian-vault.notes · resolves
declaredrendered binding labels must state existence rather than livenessNone
dependsOn · incomingThe capability map page makes refinement readable by epic
spec:consumers.spec-studio.capability-map-page · resolves
declaredaggregate rows use the same binding labels as Spec pagesNone
dependsOn · incomingThe index says where the corpus stands and narrows every Spec
spec:consumers.spec-studio.index-page · resolves
declaredNoneNone
dependsOn · incomingA Pack page shows the Pack's design as one card per member
spec:consumers.spec-studio.pack-page · resolves
declaredNoneNone
dependsOn · incomingA slice page shows a Pack's design as one whole
spec:consumers.spec-studio.slice-page · resolves
declaredNoneNone
dependsOn · incomingA Spec page shows one Spec in collapsible panels, in a fixed order
spec:consumers.spec-studio.spec-page · resolves
declaredNoneNone
dependsOn · incomingA Spec page's core shows the whole Spec, with an anchor for every entry
spec:consumers.spec-studio.spec-page.core · resolves
declaredNoneNone
refines · incomingA fully bound Spec renders binding language on the page and in the index
spec:consumers.binding-language-views.bound-spec-page · resolves
declaredNoneNone
refines · incomingThe Pack member table speaks the page's binding language, not a shorthand
spec:consumers.binding-language-views.pack-member-table · resolves
declaredNoneNone
verifies · incomingA fully bound Spec renders binding language on the page and in the index
spec:consumers.binding-language-views.bound-spec-page · resolves
declaredNoneNone
verifies · incomingThe Pack member table speaks the page's binding language, not a shorthand
spec:consumers.binding-language-views.pack-member-table · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.binding-language-index-table · renders binding presence in index and Pack tables · src/projections/design-review-pages.ts:201 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.binding-language-spec-page · renders implementation, verifier, oracle, and observation binding language · src/projections/design-review-context.ts:95 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

Composing (0)

Composing needs the script.