outcomeThe engine's accepted set covers its significant abstractions and only those
spec:protocol.significant-units-reviewPacks: pack:roadmaps-and-slices-v1, pack:self-hosting-v1
Design: 1 design entry · no pinned declarations · 2 decisions
Findings: no errors, no warnings
specs/protocol/significant-units-review.sdp.md
No open questions and no blocking questions; implementation binding present, verifier binding present, and expected-outcome oracle none.
A designer needs to find the contracts, decisions and stages a change must preserve. The accepted set records those units on the code that owns them. Exporting a helper, appearing in an import ranking or giving a file an impact answer does not by itself earn an identity.
Intent
- Keep the accepted set focused on the engine's significant contracts, decisions and stages, with meaningful roles and architectural uses, and exclude units anchored only for coverage.
Behavior
rule.significantAbstractionsline 27 ·specs/protocol/significant-units-review.sdp.md:27- Apply the structural-patterns criterion to the public contract or cross-component responsibility a unit owns. Ports, shared data shapes, pipeline stages, decision tables, catalogs, layout policies and adapters qualify when changing them requires a designer or builder to understand that responsibility; being exported alone is insufficient.
no example exercises it
rule.curatedBoundaryline 28 ·specs/protocol/significant-units-review.sdp.md:28- Leave forwarding barrels, empty element registrations, mechanical wrappers, formatting helpers and generated files unanchored unless they own an independent contract or architectural responsibility. A coverage target, test expectation, file count or desired impact answer never establishes significance.
no example exercises it
rule.dependencyEvidenceline 29 ·specs/protocol/significant-units-review.sdp.md:29- Declare a component uses for a value or type import the importing file itself makes from another component's file. An import made only to author anchors, and a pair the imports adapter reports only through a re-export the importer does not use, confer no edge. Before calling a declared edge stale, inspect input omissions and every file the comparison leaves unassigned. Import evidence proposes an edit and never authors an edge.
no example exercises it
rule.rosterOracleline 30 ·specs/protocol/significant-units-review.sdp.md:30- The self-hosting suite pins the reviewed component identities, unit ownership, roles, uses and deliberate membership exceptions independently of extraction. It compares the graph with those declarations and rejects unrostered membership. It never derives its expected roster from paths, exports, imports or the graph under test.
no example exercises it
rule.acceptedChangesline 31 ·specs/protocol/significant-units-review.sdp.md:31- The accepted set is the annotation review's change table as the owner accepted it: its additions, merges, drop, role changes and component uses, each realization claim it names kept.
no example exercises it
rule.decoderBoundaryline 32 ·specs/protocol/significant-units-review.sdp.md:32- The example-space decoder joins the reader component, leaving notation a leaf codec, only when the architecture crossings recipe and the self-binding tests show that the move adds no layer crossing; otherwise it stays in notation, its real imports are declared, and the uses cycle they form stays lawful data.
no example exercises it
Cited at
test/recipes.test.ts:5827
rule.roleMeaningline 33 ·specs/protocol/significant-units-review.sdp.md:33- Read role meanings from the engine's role-vocabulary Model when reviewing its anchors. The vocabulary guides authors and reviewers; the Protocol never validates membership in it.
no example exercises it
0 unkeyed rules.
Design
rosterSourceline 37 ·specs/protocol/significant-units-review.sdp.md:37- The self-hosting oracle holds the accepted roster: each row names an accepted unit's anchor, its component and its file, and its expectations for components, membership, uses, exceptions, coarse-grain coverage and roles sit beside it. A symbol suffix is a review locator, never extracted symbol identity.
Verification · reviewed
criteria- Compare the independently reviewed accepted roster with the source responsibilities it names, including dependencies that an imports comparison cannot assign to components.
- Check that every proposed merge or drop preserves the whole-Spec realization set it claims to preserve and that every architectural uses pair has supporting value or type imports beyond anchor authoring.
- Compare the extracted graph with the independently reviewed oracle roster after anchor changes; exercise a missing accepted member and an extra unrostered membership to show that the roster comparison detects both.
mode- reviewed
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.significant-units-review: The engine's accepted set covers its significant abstractions and only those · declared Spec
- spec:protocol.structural-self-binding: The engine's structural self-binding covers its architecturally significant units · declared Spec
- 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.significant-units-review refines spec:protocol.structural-self-binding · declared — states what the independently reviewed accepted set must contain and exclude
- impl:protocol.structural-self-binding satisfies spec:protocol.significant-units-review · 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.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.significant-units-review decidedBy spec:decisions.anchor-binding-grain · declared
- spec:protocol.significant-units-review decidedBy spec:decisions.architectural-annotation · declared
- spec:protocol.significant-units-review dependsOn spec:model.structural-patterns · declared
- spec:protocol.significant-units-review dependsOn spec:protocol.role-vocabulary · declared
- 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.structural-self-binding · stated ready, floor ready
- dependsOn · spec:model.structural-patterns · stated ready, floor ready
- dependsOn · spec:protocol.role-vocabulary · 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
No Spec rests on this Spec.
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 | None | None |
| dependsOn · outgoing | The engine's architectural roles each name one patternspec:protocol.role-vocabulary · resolves | declared | None | None |
| refines · outgoing | The engine's structural self-binding covers its architecturally significant unitsspec:protocol.structural-self-binding · 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.