outcomeThe engine's structural self-binding covers its architecturally significant units
spec:protocol.structural-self-bindingPacks: pack:self-hosting-v1
Design: no design entries · no pinned declarations · 2 decisions
Findings: no errors, no warnings
specs/protocol/structural-self-binding.sdp.md
No open questions and no blocking questions; implementation binding present, verifier binding present, and expected-outcome oracle none.
Intent
- Structural recipes, the census and the Design Review answer architecture questions about the engine from its own anchors.
Behavior
rule.criterionline 23 ·specs/protocol/structural-self-binding.sdp.md:23- The engine applies the structural-patterns model's significance criterion: exported public surface or cross-component reach whose contract or responsibility a designer or builder must understand; export status or import rank alone is insufficient.
no example exercises it
rule.membershipline 24 ·specs/protocol/structural-self-binding.sdp.md:24- Every architecturally significant engine unit carries component membership through a realizing anchor; a helper with no realization target of its own is covered through the nearest realization anchor that consumes it.
no example exercises it
rule.architecturalUsesline 25 ·specs/protocol/structural-self-binding.sdp.md:25- An architectural dependency of the engine is declared as
uses, normally from one engine component to another; a unit's ownusesis optional.no example exercises it
rule.componentUsesline 26 ·specs/protocol/structural-self-binding.sdp.md:26- A component-level
usesdeclaration tracks real value or type imports from another component's source files; imports made only to author anchors through the stable-id or anchor-builder modules confer no edge.no example exercises it
rule.acceptedSetline 27 ·specs/protocol/structural-self-binding.sdp.md:27- The accepted set of architecturally significant engine units is an owner-reviewed declaration among the self-hosting suite's pinned expectations, never derived from imports or exports; the suite checks every accepted unit's declared membership and rejects unrostered membership edges.
no example exercises it
rule.layerAndContextline 28 ·specs/protocol/structural-self-binding.sdp.md:28- Every engine
component:anchor declares itslayerand itscontext.no example exercises it
rule.roleline 29 ·specs/protocol/structural-self-binding.sdp.md:29- Every architecturally significant engine unit carries a
role.no example exercises it
rule.decisionReferencesline 30 ·specs/protocol/structural-self-binding.sdp.md:30- A unit reaches the decisions that shape it through the Specs it satisfies and their
decidedByrelations, and may reference a decision directly when it answers to that design. A unit satisfies a Spec when it realizes at least one promise of it, and the satisfying units together realize every promise; a unit that follows a design without realizing a promise references it. Code never satisfies a decision Spec. A design that builds on existing code states that through its owndependsOnorrefinesto the Spec the code satisfies.no example exercises it
0 unkeyed rules.
Verification
Verifier bindings
- test:protocol.structural-self-binding · checks the accepted membership and helper coverage, authored uses, and pinned anchor roles, layers and contexts · anchored · test anchor binding present ·
test/self-hosting-graph.test.ts:88External run evidence from
test/self-hosting-graph.test.tsTest anchors:
test:protocol.self-hosting,test:protocol.structural-self-binding. Specs verified by those bindings: spec:model.structural-patterns, spec:protocol.self-hosting, spec:protocol.significant-units-review, spec:protocol.structural-self-binding.Run 1: external run evidence from vitest 4.1.10
Build: CI 391 · Branch: cursor/media-plan-and-articles-09b1 · Commit: 076cd4f1f85640d8236e5cca1bffffa68ab79a33 · Start: 2026-10-31T15:32:20.471Z · Stop: 2026-10-31T15:34:02.073Z
Name Suite Result Duration traces changes to 'test/self-hosting-oracle/structural-e…' through its realizing anchor the self-hosting corpus passed 82.88 ms traces changes to 'test/helpers/validator-probes.ts' through its realizing anchor the self-hosting corpus passed 48.41 ms reifies the root corpus without an extraction finding the self-hosting corpus passed 0.27 ms reports exactly the retained verifier gaps and no unbacked prose mention the self-hosting corpus passed 42.46 ms holds the frozen corpus totals the self-hosting corpus passed 2.28 ms permits a named second diagram view in the authored element-id contract the self-hosting corpus passed 86.41 ms states the owner queue's reader lookup by Spec and question key the self-hosting corpus passed 35.31 ms names vault and stamp beside every other help verb in the authored contract the self-hosting corpus passed 38.73 ms rosters exactly the authored Spec, Pack, and anchor node ids the self-hosting corpus passed 1.9 ms carries the authored descriptors of the carrier family the self-hosting corpus passed 3 ms carries the authored descriptors of the protocol family the self-hosting corpus passed 0.6 ms carries the authored descriptors of the extraction family the self-hosting corpus passed 1.39 ms carries the authored descriptors of the validation family the self-hosting corpus passed 3.28 ms carries the authored descriptors of the model family the self-hosting corpus passed 1.68 ms carries the authored descriptors of the observation family the self-hosting corpus passed 0.45 ms carries the authored descriptors of the consumers family the self-hosting corpus passed 7.69 ms carries the authored descriptors of the decisions family the self-hosting corpus passed 3.55 ms leaves no authored Spec outside the families the self-hosting corpus passed 0.99 ms derives exactly the authored declared relations the self-hosting corpus passed 9.73 ms holds the frozen stated-readiness distribution the self-hosting corpus passed 0.66 ms derives the Pack membership edges from the manifest, in manifest order the self-hosting corpus passed 2.59 ms carries the Pack aggregate nodes exactly as authored the self-hosting corpus passed 0.47 ms derives the independent zero-to-many binding edge roster the self-hosting corpus passed 7.9 ms rosters exactly the accepted component set the self-hosting corpus passed 0.39 ms gives every owned impl/api CodeNode exactly one component the self-hosting corpus passed 20.85 ms derives exactly the sparse authored component uses edges the self-hosting corpus passed 0.46 ms covers every accepted architecturally significant unit the self-hosting corpus passed 858.17 ms gives every accepted unit a readable responsibility label the self-hosting corpus passed 4.54 ms detects a missing accepted member independently of the source the self-hosting corpus passed 8.37 ms detects extra unrostered membership independently of the source the self-hosting corpus passed 62 ms finds every converted comment anchor at its block's first line the self-hosting corpus passed 15.34 ms projects every anchor and code node at the line its declaration occupies the self-hosting corpus passed 91.42 ms rejects comment-only and string activation sites and accepts executable calls the self-hosting corpus passed 1.32 ms keeps every anchor beside the site it binds the self-hosting corpus passed 1187.88 ms derives the duplicate-ids delivery facts from the bindings, never from authoring the self-hosting corpus passed 1.09 ms derives sdp-import realization from its direct code and child verifier bindings the self-hosting corpus passed 0.26 ms
Design view
Requirement drawing
- Declared verifying examples: no declared verifying example.
The diagram as text
- spec:protocol.structural-self-binding: The engine's structural self-binding covers its architecturally significant units · declared Spec
- spec:protocol.role-vocabulary: The engine's architectural roles each name one pattern · declared Spec
- spec:protocol.significant-units-review: The engine's accepted set covers its significant abstractions and only those · declared Spec
- spec:protocol.self-hosting: The Protocol authors and validates itself · declared Spec
- impl:protocol.role-vocabulary: asserts realization of the role vocabulary in the engine anchors' pinned roles · anchored code ·
test/self-hosting-graph.test.ts:143 - impl:protocol.structural-self-binding: realizes the declared significant-unit set and its structural self-binding · anchored code ·
test/self-hosting-oracle/structural-edges.ts:76 - test:protocol.structural-self-binding: checks the accepted membership and helper coverage, authored uses, and pinned anchor roles, layers and contexts · anchored test binding · binding present ·
test/self-hosting-graph.test.ts:88 - spec:protocol.role-vocabulary refines spec:protocol.structural-self-binding · declared — names what each role value the engine's significant units carry means
- spec:protocol.significant-units-review refines spec:protocol.structural-self-binding · declared — states what the independently reviewed accepted set must contain and exclude
- spec:protocol.structural-self-binding refines spec:protocol.self-hosting · declared
- impl:protocol.role-vocabulary satisfies spec:protocol.role-vocabulary · anchored
- impl:protocol.structural-self-binding satisfies spec:protocol.structural-self-binding · anchored
- impl:protocol.structural-self-binding satisfies spec:protocol.significant-units-review · anchored
- test:protocol.structural-self-binding verifies spec:protocol.structural-self-binding · anchored
- test:protocol.structural-self-binding verifies spec:protocol.significant-units-review · 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
- Bindings are optional, plural, and may reference a design
On a code anchor,
satisfiesis optional and plural; on a test anchor,verifiesis plural and non-empty. The constant form accepts oneref(…)or a fresh array literal of them. Each resolving target confers its fact, andimplementedstays a whole-Spec fact. An anchored edgereferencesruns from a CodeNode to a Spec, fromreferences?: readonly SpecId[]on a code anchor; it may target any Spec, decisions included, confers no delivery fact, moves no readiness floor, and the drift alarm ignores it. It says this code answers to that design without claiming to realize it: the unit follows the design without realizing any of its promises, or realizes part of a Spec whose remaining promises no unit yet realizes, so a change to the design asks the code to follow. A design that builds on existing code states that by a typed relation to the Spec the code satisfies, never by a reference from the code. A target named in bothsatisfiesandreferencesis an error. An identity-only code anchor, with nosatisfiesand noreferences, is lawful: it mints a CodeNode for structure and forbyFile, and nothing else. - Architectural significance is annotated where it is realized
Architectural significance is annotated on the anchor of the unit that realizes it. A code anchor may carry
role, the architectural pattern the unit plays; acomponent:anchor may additionally carrylayer, one ofedge,application,domain,adapter, orinfrastructure, andcontext, its bounded context. Thecomponent:anchor is anchored architecture: it is the declared component, and there is no separate architecture file, because the anchor sits where the component is realized. It is not the original design's declared Component that could exist before code; an unrealized component lives in Specs and never as an invented CodeNode. A role is a free, corpus-owned vocabulary whose taxonomy the census renders with counts from the graph;service,decider,projection,read-model,codec,contract,barrel, andutilityare the lineage set, not a closed list.layeris a closed set, and a value outside it is an envelope error;layerorcontexton a non-component anchor is an envelope error. All three attributes are optional, and omission is lawful.
Runtime
impl:protocol.structural-self-binding· realizes the declared significant-unit set and its structural self-binding ·test/self-hosting-oracle/structural-edges.ts:76Uses
None.
Runtime observation: not tracked.
Evidence
Runtime observation: not tracked.
Build attestations: not tracked.
Deployments: not tracked.
Bills of materials: not tracked.
Impact
The diagram as text
- spec:decisions.anchor-binding-grain: Bindings are optional, plural, and may reference a design
- spec:decisions.architectural-annotation: Architectural significance is annotated where it is realized
- spec:model.structural-patterns: Architecturally significant units are annotated where they are realized
- spec:protocol.role-vocabulary: The engine's architectural roles each name one pattern
- spec:protocol.self-hosting: The Protocol authors and validates itself
- spec:protocol.significant-units-review: The engine's accepted set covers its significant abstractions and only those
- spec:protocol.structural-self-binding: The engine's structural self-binding covers its architecturally significant units
- spec:protocol.structural-self-binding decidedBy spec:decisions.anchor-binding-grain · declared
- spec:protocol.structural-self-binding decidedBy spec:decisions.architectural-annotation · declared
- spec:protocol.structural-self-binding dependsOn spec:model.structural-patterns · declared — this model defines the significance criterion and the owner-reviewed accepted set
- spec:protocol.structural-self-binding refines spec:protocol.self-hosting · declared
- spec:protocol.role-vocabulary refines spec:protocol.structural-self-binding · declared — names what each role value the engine's significant units carry means
- spec:protocol.significant-units-review refines spec:protocol.structural-self-binding · declared — states what the independently reviewed accepted set must contain and exclude
Mermaid source
Copyable source; the Studio draws static SVG.
Preferred syntax: flowchart. Chosen syntax: labelled flowchart, preserving exact relations, claims and folds.
Rests on
- refines · spec:protocol.self-hosting · stated ready, floor ready
- dependsOn · spec:model.structural-patterns · stated ready, floor ready
- decidedBy · spec:decisions.anchor-binding-grain · stated ready, floor ready
- decidedBy · spec:decisions.architectural-annotation · stated ready, floor ready
Rested on by
Distance 1
- spec:protocol.role-vocabulary
Implementing units
impl:protocol.role-vocabulary·test/self-hosting-graph.test.ts:143
Referencing units
None.
Enabled verifiers: None
- spec:protocol.significant-units-review
Implementing units
impl:protocol.structural-self-binding·test/self-hosting-oracle/structural-edges.ts:76
Referencing units
None.
Enabled verifiers: test:protocol.structural-self-binding
Relations
| Relation and direction | Other end | Claim | Reason | Exercised keys |
|---|---|---|---|---|
| decidedBy · outgoing | Bindings are optional, plural, and may reference a designspec:decisions.anchor-binding-grain · resolves | declared | None | None |
| decidedBy · outgoing | Architectural significance is annotated where it is realizedspec:decisions.architectural-annotation · resolves | declared | None | None |
| dependsOn · outgoing | Architecturally significant units are annotated where they are realizedspec:model.structural-patterns · resolves | declared | this model defines the significance criterion and the owner-reviewed accepted set | None |
| refines · outgoing | The Protocol authors and validates itselfspec:protocol.self-hosting · resolves | declared | None | None |
| refines · incoming | The engine's architectural roles each name one patternspec:protocol.role-vocabulary · resolves | declared | names what each role value the engine's significant units carry means | None |
| refines · incoming | The engine's accepted set covers its significant abstractions and only thosespec:protocol.significant-units-review · resolves | declared | states what the independently reviewed accepted set must contain and exclude | None |
Bindings
Implementation binding: present
impl:protocol.structural-self-binding· realizes the declared significant-unit set and its structural self-binding ·test/self-hosting-oracle/structural-edges.ts:76
Design reference: none
Verifier binding: present
- test:protocol.structural-self-binding · checks the accepted membership and helper coverage, authored uses, and pinned anchor roles, layers and contexts · anchored ·
test/self-hosting-graph.test.ts:88· test anchor
Expected-outcome oracle: none
Runtime observation: not tracked.
Run results: not recorded in the graph.
Findings
None.
Composing (0)
Composing needs the script.