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.
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.
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.
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.
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}
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"}
the spec page renders the verifier binding as {verifier: "present"}
the spec page renders the expected-outcome oracle as {oracle: "none"}
the spec page renders the runtime observation as {observation: "not tracked"}
the index table repeats those binding values for the spec: {tableRepeats: true}
the internal delivery-fact name {factName: "implemented"} appears as rendered label text: {factNameRendered: false}
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}
Given
the graph holds a spec {specId: "spec:probe.bound-surface"} bound by {bindings: "an implementing code anchor and a verifying test anchor"}
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}
the internal delivery-fact name {factName: "implemented"} appears as rendered label text: {factNameRendered: false}
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
spec:consumers.binding-language-views.bound-spec-page · A fully bound Spec renders binding language on the page and in the index · declared · example enabled · specs/consumers/binding-language-views.bound-spec-page.sdp.md
External run evidence from test/self-hosting-projections.test.ts
The view is the graph read twice, and the corpus is untouched by reading it (spec:consumers.design-review.pure-projection)
passed
99.39 ms
executes the bound example against a fresh world
An overstated rung raises the banner and names the clause that refused (spec:consumers.derived-readiness-banner.dishonest-divergence)
passed
2.14 ms
executes the bound example against a fresh world
A rung the structure overshoots renders as information, not as a banner (spec:consumers.derived-readiness-banner.honest-headroom)
passed
1.17 ms
renders a Spec whose idea floor is unmet with no rung and a below-idea banner
not recorded
passed
0.85 ms
executes the bound example against a fresh world
A fully bound Spec renders binding language on the page and in the index (spec:consumers.binding-language-views.bound-spec-page)
passed
1.85 ms
executes the bound example against a fresh world
The Pack member table speaks the page's binding language, not a shorthand (spec:consumers.binding-language-views.pack-member-table)
passed
1.91 ms
executes the bound example against a fresh world
A page from an earlier run does not survive the next one (spec:consumers.wholesale-view-rewrite.stale-page-removed)
passed
7.25 ms
executes the bound example against a fresh world
A page the build's invalidation never saw still does not survive the swap (spec:consumers.wholesale-view-rewrite.late-stale-page)
passed
4.19 ms
executes the bound example against a fresh world
A run that cannot produce a current view leaves no view at all (spec:consumers.wholesale-view-rewrite.failed-run-view-removed)
passed
2.63 ms
executes the bound example against a fresh world
A build that never renders still takes the old view down (spec:consumers.wholesale-view-rewrite.build-invalidates-view)
passed
2.79 ms
executes the bound example against a fresh world
One finding, three location shapes, one composition rule (spec:validation.diagnostic-rendering.composed-location)
passed
0.65 ms
executes the bound example against a fresh world
The same three location shapes, rendered as table cells (spec:validation.diagnostic-rendering.table-cell-location)
passed
0.43 ms
spec:consumers.binding-language-views.pack-member-table · The Pack member table speaks the page's binding language, not a shorthand · declared · example enabled · specs/consumers/binding-language-views.pack-member-table.sdp.md
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
the graph holds a spec {specId:string} bound by {bindings:"an implementing code anchor and a verifying test anchor"|"no anchor at all"}
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"}
the spec page renders the verifier binding as {verifier:"present"|"none"}
the spec page renders the expected-outcome oracle as {oracle:"present"|"none"}
the spec page renders the runtime observation as {observation:string}
the index table repeats those binding values for the spec: {tableRepeats:boolean}
the pack member table repeats those binding values for the spec: {memberTableRepeats:boolean}
the internal delivery-fact name {factName:string} appears as rendered label text: {factNameRendered:boolean}
Composing needs the script.
Design view
Requirement drawing
Requirement drawing for spec:consumers.binding-language-viewsThe 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
Delivery facts record bindings and enabled verifier existence; coverage gaps and human readiness practice remain explicit without becoming graph facts.
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
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
spec:consumers.binding-language-views.bound-spec-page · A fully bound Spec renders binding language on the page and in the index · declared · specs/consumers/binding-language-views.bound-spec-page.sdp.md · example enabled
spec:consumers.binding-language-views.pack-member-table · The Pack member table speaks the page's binding language, not a shorthand · declared · specs/consumers/binding-language-views.pack-member-table.sdp.md · example enabled