Spec Studio

Components are designed ahead of their code

spec:model.planned-architectureDomain Model · featureready floor ready

Changed since the base graph base da4b141: relation.refines:spec:model.core-model

Base input: schema 0.11.0, 405 Specs.

Packs: pack:corpus-checks-v1, pack:design-management-v1, pack:self-hosting-v1

Design: 6 design entries · 1 pinned declaration · 1 decision

Findings: no errors, no warnings

specs/model/planned-architecture.sdp.md

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

The original design declared a component before its code, as a Component node with a layer, a bounded context and a capability, kept in an architecture folder and reconciled with its code anchors and the Specs (docs/lineage/v0-design/03-graph-metamodel.md §2.5; 04-authoring-surfaces.md §7). Its runtime chapter separated what a unit requires from the provider that supplies it, the provider a composition root selects and the one a test puts in its place, and gave one mechanism the ownership of runtime composition (05-runtime-anchors.md §1, §3.3, §7).

The Protocol records the architecture the code realizes. A component: anchor states its layer and context, and anchored memberOf and uses edges join the code units. Under the architectural annotation decision, a component no code realizes is a Spec, and the graph holds no node for it until an anchor exists. The first adopter states its component list and its context rule in prose (libar-platform/design/PLAN.md §2.1) and checks context isolation over anchored uses in its own script (libar-platform/design/tools/check.py). The owner ruled that the architectural annotation decision stands: a component designed before its code is a component design Spec, and the component: anchor that later realizes it satisfies that Spec, which is the join a comparison reads.

Choosing a provider stays prose. The original's distinctions between the interface a unit requires, the providers that supply it, the one a composition root selects and the one a test substitutes help a reader, and none of them needs graph structure beyond uses to be compared. Keeping one composition mechanism per application is a corpus's own architecture rule when the corpus wants it, stated in a constraint Spec and checked by its own corpus rule. A component design names its component with the keys a component anchor uses, so the comparison reads the same words on both sides, and a key the design leaves out is not compared, so a design states only what it has decided; a design that has decided its component uses nothing says none, which a left-out key cannot say.

Intent
problem
A design ahead of its code cannot state the components it adds, their layer and context and what they use, in a form the graph compares with the components the code later anchors.
outcome
Let a design name the components it will add, with their layer, context and uses, and compare that design with the anchored components once code exists.
risks
  • A planned component kept apart from its realization is a second place for the component to drift, which is why the architectural annotation decision refused a separate architecture file and why the design lives in a Spec the realizing anchor satisfies.
Behavior

0 unkeyed rules.

Verifying examples

A realized component that differs from its design gives one row per field · spec:model.planned-architecture.differing-layer-and-uses · ready floor ready

Executable Spec

Given a component design for {componentId: "component:probe.history"} that plans the layer {plannedLayer: "domain"} and uses {plannedUses: "component:probe.kernel"}
Given the component anchor for that design {anchor: "satisfies the design"}
Given that anchor states the layer {realizedLayer: "application"} and its member uses {realizedUses: "component:probe.audit"}
When the realization comparison runs
Then the comparison lists {unrealized: 0} unrealized designs, {matching: 0} matching designs and {differing: 2} differing rows
Then the differing fields are {fields: "layer, uses"}

Open example

A realized component that matches its design gives no row · spec:model.planned-architecture.matching-design · ready floor ready

Executable Spec

Given a component design for {componentId: "component:probe.history"} that plans the layer {plannedLayer: "domain"} and uses {plannedUses: "component:probe.kernel"}
Given the component anchor for that design {anchor: "satisfies the design"}
Given that anchor states the layer {realizedLayer: "domain"} and its member uses {realizedUses: "component:probe.kernel"}
When the realization comparison runs
Then the comparison lists {unrealized: 0} unrealized designs, {matching: 1} matching designs and {differing: 0} differing rows
Then the differing fields are {fields: ""}

Open example

A component design no anchor satisfies is listed as unrealized · spec:model.planned-architecture.unrealized-design · ready floor ready

Executable Spec

Given a component design for {componentId: "component:probe.history"} that plans the layer {plannedLayer: "domain"} and uses {plannedUses: "component:probe.kernel"}
Given the component anchor for that design {anchor: "is absent"}
Given that anchor states the layer {realizedLayer: "absent"} and its member uses {realizedUses: ""}
When the realization comparison runs
Then the comparison lists {unrealized: 1} unrealized designs, {matching: 0} matching designs and {differing: 0} differing rows
Then the differing fields are {fields: ""}

Open example

Example space

Given a component design for {componentId:string} that plans the layer {plannedLayer:"domain"|"application"} and uses {plannedUses:string}
Given the component anchor for that design {anchor:"is absent"|"satisfies the design"}
Given that anchor states the layer {realizedLayer:"domain"|"application"|"absent"} and its member uses {realizedUses:string}
When the realization comparison runs
Then the comparison lists {unrealized:number} unrealized designs, {matching:number} matching designs and {differing:number} differing rows
Then the differing fields are {fields:string}
Model
component design line 29 · specs/model/planned-architecture.sdp.md:29
A Spec that states a component the code does not yet realize and what it is for. Its Design entries are keyed as the anchor's attributes are named: id for the planned component: anchor's own id, layer, context, uses for the components it will use, and optionally role. The keys are a convention recipes read; the Protocol closes no Design shape, and the Spec confers nothing and mints no code unit.
planned component line 30 · specs/model/planned-architecture.sdp.md:30
The component a component design names. It stays intent until a component: anchor realizes it, and that anchor satisfies the component design; the graph holds no component node before the anchor exists.
realization comparison line 31 · specs/model/planned-architecture.sdp.md:31
Recipe 43, planned against realized components, which reads each component design beside the component: anchor that satisfies it, resolving members through memberOf as recipe 32 does, and lists a design no anchor satisfies yet, a layer, context or role that differs, and a uses named on one side only. It reports and refuses nothing.
provider line 32 · specs/model/planned-architecture.sdp.md:32
A code unit that supplies an interface another unit requires; a composition selects one provider for each requirement, and a test may select another. A component design names its providers and that selection in prose, and none of them earns graph structure beyond uses.
Design
componentDesign line 35 · specs/model/planned-architecture.sdp.md:35
a Spec is a component design when its Design id value, bare or in the code span that opens it, is a component: id; the curation report and the realization comparison select designs this way, and no validator reads the convention.
designKeys line 36 · specs/model/planned-architecture.sdp.md:36
the comparison reads five Design keys, id, layer, context, role and uses, and no other; layer takes one of the five layers, context and role one token on the role grammar, and uses either none for the empty list or component: ids separated by commas, each trimmed, read as the set of distinct ids; each value is read bare when it is the whole value, or from the code span that opens it, with prose after the span free to say why.
comparisonRecipe line 37 · specs/model/planned-architecture.sdp.md:37
recipe 43, planned against realized components, takes no parameter, so any parameter name returns { unknownParams, accepts: [] } alone, as every catalog recipe answers a name it does not take; otherwise it returns { totals, unrealized, differing, unreadable }, where totals is { designs, realized, matching, unrealized, differing, unreadable }, matching counts the realized designs with neither a differing row nor an unreadable row, and differing counts rows.
realizedWhen line 38 · specs/model/planned-architecture.sdp.md:38
a design is realized when its component: CodeNode is anchored and has an anchored satisfies edge to the design, as the curation report reads it; a design whose component exists without that edge stays unrealized, with anchorExists: true.
comparedFields line 39 · specs/model/planned-architecture.sdp.md:39
for a realized design, each of layer, context, role and uses the design states is compared with the anchored component, and a key the design leaves out is not compared; the realized uses are the components other than its own that an anchored uses edge from the component or one of its members reaches, each end resolved to its component as recipe 32 resolves it.
comparisonRows line 40 · specs/model/planned-architecture.sdp.md:40
unrealized rows are { spec, componentId, anchorExists, layer, context, role, uses } with the planned values, null when unstated, and uses an empty list when the design states none; differing rows are { spec, componentId, field, planned, realized }, one for each differing field, where layer, context and role carry the two values or null and uses carries the two sorted lists of components named on that side only; unreadable rows are { spec, key, value } for a value outside its key's form, and that key is not compared; rows sort by spec, then by field or key.

no citation recorded

Verification

Verifier bindings

  • spec:model.planned-architecture.differing-layer-and-uses · A realized component that differs from its design gives one row per field · declared · example enabled · specs/model/planned-architecture.differing-layer-and-uses.sdp.md

    External run evidence from test/self-hosting-corpus-checks.test.ts

    Test anchors: test:protocol.model.planned-architecture.differing-layer-and-uses, test:protocol.model.planned-architecture.matching-design, test:protocol.model.planned-architecture.unrealized-design, test:protocol.validation.architecture-constraints.forbidden-layer-pair, test:protocol.validation.architecture-constraints.isolated-context-as-rule, test:protocol.validation.architecture-constraints.unstated-layer-unclassified, test:protocol.validation.corpus-rules.copies-contain-changes, test:protocol.validation.corpus-rules.error-finding-fails, test:protocol.validation.corpus-rules.malformed-finding-fails, test:protocol.validation.corpus-rules.warning-finding-informs. Specs verified by those bindings: spec:model.planned-architecture, spec:model.planned-architecture.differing-layer-and-uses, spec:model.planned-architecture.matching-design, spec:model.planned-architecture.unrealized-design, spec:validation.architecture-constraints, spec:validation.architecture-constraints.forbidden-layer-pair, spec:validation.architecture-constraints.isolated-context-as-rule, spec:validation.architecture-constraints.unstated-layer-unclassified, spec:validation.corpus-rules, spec:validation.corpus-rules.copies-contain-changes, spec:validation.corpus-rules.error-finding-fails, spec:validation.corpus-rules.malformed-finding-fails, spec:validation.corpus-rules.warning-finding-informs.

    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
    executes the bound example against a fresh worldA rules file that empties its graph leaves the next file's graph whole (spec:validation.corpus-rules.copies-contain-changes)passed21.24 ms
    executes the bound example against a fresh worldAn error from a corpus rule fails validation and leaves the Protocol's line alone (spec:validation.corpus-rules.error-finding-fails)passed4.29 ms
    executes the bound example against a fresh worldA finding with no subject fails its rules file (spec:validation.corpus-rules.malformed-finding-fails)passed3.72 ms
    executes the bound example against a fresh worldA warning from a corpus rule informs and passes (spec:validation.corpus-rules.warning-finding-informs)passed3.36 ms
    executes the bound example against a fresh worldA domain member that uses an infrastructure member breaks a forbidden pair (spec:validation.architecture-constraints.forbidden-layer-pair)passed16.29 ms
    executes the bound example against a fresh worldThe walk named as a rules file fails validation on an isolation breach (spec:validation.architecture-constraints.isolated-context-as-rule)passed3.85 ms
    executes the bound example against a fresh worldA component with no layer leaves its edge unclassified (spec:validation.architecture-constraints.unstated-layer-unclassified)passed3.28 ms
    executes the bound example against a fresh worldA realized component that differs from its design gives one row per field (spec:model.planned-architecture.differing-layer-and-uses)passed10.85 ms
    executes the bound example against a fresh worldA realized component that matches its design gives no row (spec:model.planned-architecture.matching-design)passed5.28 ms
    executes the bound example against a fresh worldA component design no anchor satisfies is listed as unrealized (spec:model.planned-architecture.unrealized-design)passed4.57 ms
  • spec:model.planned-architecture.matching-design · A realized component that matches its design gives no row · declared · example enabled · specs/model/planned-architecture.matching-design.sdp.md
  • spec:model.planned-architecture.unrealized-design · A component design no anchor satisfies is listed as unrealized · declared · example enabled · specs/model/planned-architecture.unrealized-design.sdp.md

Example space

  • componentId · string · declared by a component design for {componentId} that plans the layer {plannedLayer} and uses {plannedUses}
  • plannedLayer · "domain" | "application" · declared by a component design for {componentId} that plans the layer {plannedLayer} and uses {plannedUses}
  • plannedUses · string · declared by a component design for {componentId} that plans the layer {plannedLayer} and uses {plannedUses}
  • anchor · "is absent" | "satisfies the design" · declared by the component anchor for that design {anchor}
  • realizedLayer · "domain" | "application" | "absent" · declared by that anchor states the layer {realizedLayer} and its member uses {realizedUses}
  • realizedUses · string · declared by that anchor states the layer {realizedLayer} and its member uses {realizedUses}

Bound points

ExamplecomponentIdplannedLayerplannedUsesanchorrealizedLayerrealizedUses
spec:model.planned-architecture.differing-layer-and-uses"component:probe.history""domain""component:probe.kernel""satisfies the design""application""component:probe.audit"
spec:model.planned-architecture.matching-design"component:probe.history""domain""component:probe.kernel""satisfies the design""domain""component:probe.kernel"
spec:model.planned-architecture.unrealized-design"component:probe.history""domain""component:probe.kernel""is absent""absent"""

Oracle binding: none

Coverage

componentId: "component:probe.history" · spec:model.planned-architecture.differing-layer-and-uses, spec:model.planned-architecture.matching-design, spec:model.planned-architecture.unrealized-design · not enumerable

plannedUses: "component:probe.kernel" · spec:model.planned-architecture.differing-layer-and-uses, spec:model.planned-architecture.matching-design, spec:model.planned-architecture.unrealized-design · not enumerable

realizedUses: "component:probe.audit" · spec:model.planned-architecture.differing-layer-and-uses; "component:probe.kernel" · spec:model.planned-architecture.matching-design; "" · spec:model.planned-architecture.unrealized-design · not enumerable

Unbound

  • componentId: None
  • plannedLayer: None
  • plannedUses: None
  • anchor: None
  • realizedLayer: None
  • realizedUses: None
Design view

Requirement drawing

Requirement drawing for spec:model.planned-architecture
Requirement drawing for spec:model.planned-architecturereferences · anchoredsatisfies · anchoredrefines · declaredrefines, verifies · declaredrefines, verifies · declaredrefines, verifies · declaredverifies · anchoredverifies · anchoredverifies · anchoredIntended Specsspec:model.planned-architectureComponents are designedahead of their code…model.planned-architecturedeclared SpecDeclared verifying examplesspec:model.planned-architecture.differing-layer-and-usesA realized component thatdiffers from its designgives one row per field…model.planned-architecture.differing-layer-and-usesdeclared Specspec:model.planned-architecture.matching-designA realized component thatmatches its design gives norow…model.planned-architecture.matching-designdeclared Specspec:model.planned-architecture.unrealized-designA component design noanchor satisfies is listedas unrealized…model.planned-architecture.unrealized-designdeclared SpecSatisfying or referencingunitsimpl:protocol.curation-recipeasserts the curation reportover external inferredimports…protocol.curation-recipeanchored codeimpl:protocol.planned-components-recipeasserts realization of theshipped planned againstrealized components recipe…protocol.planned-components-recipeanchored codeTest or oracle bindingstest:protocol.model.planned-architecture.differing-layer-and-usestest:protocol.model.planned-architecture.differing-layer-and-uses…protocol.model.planned-architecture.differing-layer-and-usesanchored test binding ·binding presenttest:protocol.model.planned-architecture.matching-designtest:protocol.model.planned-architecture.matching-design…protocol.model.planned-architecture.matching-designanchored test binding ·binding presenttest:protocol.model.planned-architecture.unrealized-designtest:protocol.model.planned-architecture.unrealized-design…protocol.model.planned-architecture.unrealized-designanchored test binding ·binding presentOutside the selected setspec:model.core-modelThe Protocol modelsdelivery with oneenrichable Spec…model.core-modeldeclared Spec
The diagram as text
  • spec:model.planned-architecture: Components are designed ahead of their code · declared Spec
  • spec:model.planned-architecture.differing-layer-and-uses: A realized component that differs from its design gives one row per field · declared Spec
  • spec:model.planned-architecture.matching-design: A realized component that matches its design gives no row · declared Spec
  • spec:model.planned-architecture.unrealized-design: A component design no anchor satisfies is listed as unrealized · declared Spec
  • spec:model.core-model: The Protocol models delivery with one enrichable Spec · declared Spec
  • impl:protocol.curation-recipe: asserts the curation report over external inferred imports · anchored code · test/curation-recipes.test.ts:32
  • impl:protocol.planned-components-recipe: asserts realization of the shipped planned against realized components recipe · anchored code · test/architecture-recipes.test.ts:16
  • test:protocol.model.planned-architecture.differing-layer-and-uses: test:protocol.model.planned-architecture.differing-layer-and-uses · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:367
  • test:protocol.model.planned-architecture.matching-design: test:protocol.model.planned-architecture.matching-design · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:374
  • test:protocol.model.planned-architecture.unrealized-design: test:protocol.model.planned-architecture.unrealized-design · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:381
  • spec:model.planned-architecture refines spec:model.core-model · declared — planned components enrich Specs before code binds them
  • spec:model.planned-architecture.differing-layer-and-uses refines spec:model.planned-architecture · declared
  • spec:model.planned-architecture.differing-layer-and-uses verifies spec:model.planned-architecture · declared
  • spec:model.planned-architecture.matching-design refines spec:model.planned-architecture · declared
  • spec:model.planned-architecture.matching-design verifies spec:model.planned-architecture · declared
  • spec:model.planned-architecture.unrealized-design refines spec:model.planned-architecture · declared
  • spec:model.planned-architecture.unrealized-design verifies spec:model.planned-architecture · declared
  • impl:protocol.curation-recipe references spec:model.planned-architecture · anchored
  • impl:protocol.planned-components-recipe satisfies spec:model.planned-architecture · anchored
  • test:protocol.model.planned-architecture.differing-layer-and-uses verifies spec:model.planned-architecture.differing-layer-and-uses · anchored
  • test:protocol.model.planned-architecture.matching-design verifies spec:model.planned-architecture.matching-design · anchored
  • test:protocol.model.planned-architecture.unrealized-design verifies spec:model.planned-architecture.unrealized-design · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

Preferred syntax: requirementDiagram. Chosen syntax: flowchart TB because references require exact labels unavailable in requirement syntax.

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
  • impl:protocol.planned-components-recipe · asserts realization of the shipped planned against realized components recipe · test/architecture-recipes.test.ts:16

    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.planned-architecture
  • E6: verifies · declared (3 unit edges)
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.impact-graph.curation-assist: File-level imports show where curation is missing
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture: A Spec set draws the architecture it touches
  • spec:consumers.spec-studio.lenses.architecture: The architecture lens draws components by context and layer, the planned beside the built
  • spec:consumers.upgrade-kit.capability-adoption: Capability adoption counts where each capability is used and where it could apply
  • spec:decisions.architectural-annotation: Architectural significance is annotated where it is realized
  • spec:model.anchors: Source anchors bind code without carrying intent
  • spec:model.core-model: The Protocol models delivery with one enrichable Spec
  • spec:model.planned-architecture: Components are designed ahead of their code
  • spec:model.planned-architecture.differing-layer-and-uses: A realized component that differs from its design gives one row per field
  • spec:model.planned-architecture.matching-design: A realized component that matches its design gives no row
  • spec:model.planned-architecture.unrealized-design: A component design no anchor satisfies is listed as unrealized
  • spec:model.planned-architecture decidedBy spec:decisions.architectural-annotation · declared
  • spec:model.planned-architecture dependsOn spec:model.anchors · declared — a planned component is realized by a component anchor that satisfies its design
  • spec:model.planned-architecture refines spec:model.core-model · declared — planned components enrich Specs before code binds them
  • spec:consumers.design-slice dependsOn spec:model.planned-architecture · declared — planned components and differing designs come from the realization comparison
  • spec:consumers.impact-graph.curation-assist dependsOn spec:model.planned-architecture · declared — the report uses the component-design convention to identify unrealized planned components
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture dependsOn spec:model.planned-architecture · declared
  • spec:consumers.spec-studio.lenses.architecture dependsOn spec:model.planned-architecture · declared — planned components come from the component designs recipe 43 reads
  • spec:consumers.upgrade-kit.capability-adoption dependsOn spec:model.planned-architecture · declared — component designs are selected by the convention that Spec states
  • spec:model.planned-architecture.differing-layer-and-uses refines spec:model.planned-architecture · declared
  • spec:model.planned-architecture.matching-design refines spec:model.planned-architecture · declared
  • spec:model.planned-architecture.unrealized-design refines spec:model.planned-architecture · declared
  • spec:model.planned-architecture.differing-layer-and-uses verifies spec:model.planned-architecture · declared
  • spec:model.planned-architecture.matching-design verifies spec:model.planned-architecture · declared
  • spec:model.planned-architecture.unrealized-design verifies spec:model.planned-architecture · 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

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingArchitectural significance is annotated where it is realized
spec:decisions.architectural-annotation · resolves
declaredNoneNone
dependsOn · outgoingSource anchors bind code without carrying intent
spec:model.anchors · resolves
declareda planned component is realized by a component anchor that satisfies its designNone
refines · outgoingThe Protocol models delivery with one enrichable Spec
spec:model.core-model · resolves
declaredplanned components enrich Specs before code binds themNone
dependsOn · incomingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredplanned components and differing designs come from the realization comparisonNone
dependsOn · incomingFile-level imports show where curation is missing
spec:consumers.impact-graph.curation-assist · resolves
declaredthe report uses the component-design convention to identify unrealized planned componentsNone
dependsOn · incomingA Spec set draws the architecture it touches
spec:consumers.spec-studio.diagram-kinds.scoped-architecture · resolves
declaredNoneNone
dependsOn · incomingThe architecture lens draws components by context and layer, the planned beside the built
spec:consumers.spec-studio.lenses.architecture · resolves
declaredplanned components come from the component designs recipe 43 readsNone
dependsOn · incomingCapability adoption counts where each capability is used and where it could apply
spec:consumers.upgrade-kit.capability-adoption · resolves
declaredcomponent designs are selected by the convention that Spec statesNone
refines · incomingA realized component that differs from its design gives one row per field
spec:model.planned-architecture.differing-layer-and-uses · resolves
declaredNoneNone
refines · incomingA realized component that matches its design gives no row
spec:model.planned-architecture.matching-design · resolves
declaredNoneNone
refines · incomingA component design no anchor satisfies is listed as unrealized
spec:model.planned-architecture.unrealized-design · resolves
declaredNoneNone
verifies · incomingA realized component that differs from its design gives one row per field
spec:model.planned-architecture.differing-layer-and-uses · resolves
declaredNoneNone
verifies · incomingA realized component that matches its design gives no row
spec:model.planned-architecture.matching-design · resolves
declaredNoneNone
verifies · incomingA component design no anchor satisfies is listed as unrealized
spec:model.planned-architecture.unrealized-design · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.planned-components-recipe · asserts realization of the shipped planned against realized components recipe · test/architecture-recipes.test.ts:16

Design reference: present

  • impl:protocol.curation-recipe · asserts the curation report over external inferred imports · test/curation-recipes.test.ts:32

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.