Spec Studio

Architecturally significant units are annotated where they are realized

spec:model.structural-patternsDomain Model · featureready floor ready

Changed since the base graph base da4b141: term.architecturally significant unit

Base input: schema 0.11.0, 405 Specs.

Packs: pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/model/structural-patterns.sdp.md

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

Intent
outcome
Annotate each architecturally significant unit on the anchor of the code that realizes it, with its role, its component's layer and bounded context, and the designs it references, and declare uses where a dependency is architectural, so the graph answers architecture questions from the code itself. Architectural significance adds no Spec kind, no node type, and no vocabulary registry.
Model
architecturally significant unit line 18 · specs/model/structural-patterns.sdp.md:18
A code unit with 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. Ports, shared data shapes, pipeline stages, decision tables, catalogs, layout policies and adapters may qualify. Its anchor records component membership, a role and references to the designs it answers to. An architectural dependency is declared as uses, normally between components; a unit's own uses is optional.
structural attributes line 19 · specs/model/structural-patterns.sdp.md:19
role on any code anchor; layer and context on a component: anchor; they describe the unit's architecture and carry no readiness or delivery fact, and the census renders their taxonomy from the graph.
accepted set line 20 · specs/model/structural-patterns.sdp.md:20
The set of architecturally significant units in a corpus is an owner-reviewed declaration, never derived from imports or exports; anchors are curated, never a coverage quota.
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:88

    External run evidence from test/self-hosting-graph.test.ts

    Test 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 380 · Branch: feature/roadmap-and-slices-v0 · Commit: 34909918bf0be0e849959644401797191cae379f · Start: 2026-10-22T17:40:31.456Z · Stop: 2026-10-22T17:42:16.171Z

    NameSuiteResultDuration
    traces changes to 'test/self-hosting-oracle/structural-e…' through its realizing anchorthe self-hosting corpuspassed80.98 ms
    traces changes to 'test/helpers/validator-probes.ts' through its realizing anchorthe self-hosting corpuspassed47.73 ms
    reifies the root corpus without an extraction findingthe self-hosting corpuspassed0.46 ms
    reports exactly the retained verifier gaps and no unbacked prose mentionthe self-hosting corpuspassed41.83 ms
    holds the frozen corpus totalsthe self-hosting corpuspassed1.84 ms
    permits a named second diagram view in the authored element-id contractthe self-hosting corpuspassed47.7 ms
    states the owner queue's reader lookup by Spec and question keythe self-hosting corpuspassed39.89 ms
    names vault and stamp beside every other help verb in the authored contractthe self-hosting corpuspassed35.48 ms
    rosters exactly the authored Spec, Pack, and anchor node idsthe self-hosting corpuspassed1.78 ms
    carries the authored descriptors of the carrier familythe self-hosting corpuspassed3.09 ms
    carries the authored descriptors of the protocol familythe self-hosting corpuspassed0.63 ms
    carries the authored descriptors of the extraction familythe self-hosting corpuspassed1.44 ms
    carries the authored descriptors of the validation familythe self-hosting corpuspassed3.3 ms
    carries the authored descriptors of the model familythe self-hosting corpuspassed1.61 ms
    carries the authored descriptors of the observation familythe self-hosting corpuspassed0.44 ms
    carries the authored descriptors of the consumers familythe self-hosting corpuspassed9.85 ms
    carries the authored descriptors of the decisions familythe self-hosting corpuspassed1.35 ms
    leaves no authored Spec outside the familiesthe self-hosting corpuspassed0.73 ms
    derives exactly the authored declared relationsthe self-hosting corpuspassed11.91 ms
    holds the frozen stated-readiness distributionthe self-hosting corpuspassed0.38 ms
    derives the Pack membership edges from the manifest, in manifest orderthe self-hosting corpuspassed1.51 ms
    carries the Pack aggregate nodes exactly as authoredthe self-hosting corpuspassed0.26 ms
    derives the independent zero-to-many binding edge rosterthe self-hosting corpuspassed6.62 ms
    rosters exactly the accepted component setthe self-hosting corpuspassed0.22 ms
    gives every owned impl/api CodeNode exactly one componentthe self-hosting corpuspassed18.95 ms
    derives exactly the sparse authored component uses edgesthe self-hosting corpuspassed1.6 ms
    covers every accepted architecturally significant unitthe self-hosting corpuspassed929.96 ms
    gives every accepted unit a readable responsibility labelthe self-hosting corpuspassed13.58 ms
    detects a missing accepted member independently of the sourcethe self-hosting corpuspassed7.56 ms
    detects extra unrostered membership independently of the sourcethe self-hosting corpuspassed45.81 ms
    finds every converted comment anchor at its block's first linethe self-hosting corpuspassed17.2 ms
    projects every anchor and code node at the line its declaration occupiesthe self-hosting corpuspassed97.45 ms
    rejects comment-only and string activation sites and accepts executable callsthe self-hosting corpuspassed1.2 ms
    keeps every anchor beside the site it bindsthe self-hosting corpuspassed1381.89 ms
    derives the duplicate-ids delivery facts from the bindings, never from authoringthe self-hosting corpuspassed1.28 ms
    derives sdp-import realization from its direct code and child verifier bindingsthe self-hosting corpuspassed0.32 ms
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:model.structural-patterns
The diagram as text
  • spec:model.structural-patterns: Architecturally significant units are annotated where they are realized · declared Spec
  • spec:model.anchors: Source anchors bind code without carrying intent · declared Spec
  • impl:protocol.anchor-extraction: anchor reification seam: the constant form and the comment form · anchored code · src/extract/anchors.ts:121
  • impl:protocol.census-page: renders the derived census and runtime taxonomy projection · anchored code · src/projections/census.ts:21
  • 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:model.structural-patterns refines spec:model.anchors · declared
  • impl:protocol.anchor-extraction satisfies spec:model.structural-patterns · anchored
  • impl:protocol.census-page satisfies spec:model.structural-patterns · anchored
  • impl:protocol.structural-self-binding satisfies spec:model.structural-patterns · anchored
  • test:protocol.structural-self-binding verifies spec:model.structural-patterns · 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

  • 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; a component: anchor may additionally carry layer, one of edge, application, domain, adapter, or infrastructure, and context, its bounded context. The component: 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, and utility are the lineage set, not a closed list. layer is a closed set, and a value outside it is an envelope error; layer or context on a non-component anchor is an envelope error. All three attributes are optional, and omission is lawful.

Runtime
  • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol

    Uses

    • 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.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • 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.anchor-extraction · anchor reification seam: the constant form and the comment form · src/extract/anchors.ts:121

    Component: component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol

    Uses

    None.

  • impl:protocol.census-page · renders the derived census and runtime taxonomy projection · src/projections/census.ts:21

    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.structural-self-binding · realizes the declared significant-unit set and its structural self-binding · test/self-hosting-oracle/structural-edges.ts:76

    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:model.structural-patterns
The diagram as text
  • spec:decisions.architectural-annotation: Architectural significance is annotated where it is realized
  • spec:model.anchors: Source anchors bind code without carrying intent
  • spec:model.structural-patterns: Architecturally significant units are annotated where they are realized
  • 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:model.structural-patterns decidedBy spec:decisions.architectural-annotation · declared
  • spec:model.structural-patterns refines spec:model.anchors · declared
  • spec:protocol.significant-units-review dependsOn spec:model.structural-patterns · declared
  • spec:protocol.structural-self-binding dependsOn spec:model.structural-patterns · declared — this model defines the significance criterion and the owner-reviewed accepted set
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

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingArchitectural significance is annotated where it is realized
spec:decisions.architectural-annotation · resolves
declaredNoneNone
refines · outgoingSource anchors bind code without carrying intent
spec:model.anchors · resolves
declaredNoneNone
dependsOn · incomingThe engine's accepted set covers its significant abstractions and only those
spec:protocol.significant-units-review · resolves
declaredNoneNone
dependsOn · incomingThe engine's structural self-binding covers its architecturally significant units
spec:protocol.structural-self-binding · resolves
declaredthis model defines the significance criterion and the owner-reviewed accepted setNone

Bindings

Implementation binding: present

  • impl:protocol.anchor-extraction · anchor reification seam: the constant form and the comment form · src/extract/anchors.ts:121 · role extractor · component component:protocol.extract · layer application · context protocol
  • impl:protocol.census-page · renders the derived census and runtime taxonomy projection · src/projections/census.ts:21 · role projection · component component:protocol.projections · layer edge · context protocol
  • 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.