Spec Studio

The architecture lens draws components by context and layer, the planned beside the built

spec:consumers.spec-studio.lenses.architectureUse Case / Behavior · storyready floor ready

Changed since the base graph base da4b141: rule.usesTable; ui.architecturePage; ui.componentDetail; ui.designedNotBuilt; ui.usesTable

Base input: schema 0.11.0, 405 Specs.

Packs: pack:self-hosting-v1, pack:spec-studio-v1

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

Findings: no errors, no warnings

specs/consumers/spec-studio.lenses.architecture.sdp.md

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

The original's architecture lens drew runtime layers, ports and external systems beside components. The graph holds what the architectural annotation decision admits: a component anchor's layer and bounded context, any unit's role, membership and uses, and no port or external-system node. So the lens groups components by their recorded context and layer and draws membership and uses only. A design ahead of its code states its components in component designs, which no anchor realizes yet; the lens draws them in the same grid, marked planned, so a reader sees what is designed and not built where it will sit.

Intent
outcome
Let a person see the components the code realizes and the components the design plans, grouped by bounded context and layer, with what each uses and what it holds.
Behavior
rule.contextAndLayer line 25 · specs/consumers/spec-studio.lenses.architecture.sdp.md:25
The lens draws every component the anchors realize, from recipe 17's component rows and the attributes the componentRows entry adds to them, grouped by its recorded context and layer as the architecture grid of spec:consumers.spec-studio.diagrams places it, and folds above the bound as that Spec states.

spec:consumers.spec-studio.lenses.architecture.planned-apart · enabled

rule.membershipAndUses line 26 · specs/consumers/spec-studio.lenses.architecture.sdp.md:26
The lens draws component membership, as the member count in each box, and uses, as edges between components, and nothing else: no port, external system, runtime layer or import the impact graph infers.

no example exercises it

rule.usesTable line 27 · specs/consumers/spec-studio.lenses.architecture.sdp.md:27
Beside the architecture drawing comes the component uses table, read from recipe 17's component rows and their counts of unit uses edges: one row per realized component as the user and one column per realized component as the used. A nonzero cell holds the count of anchored unit uses edges behind the pair and links to that use in the row component's detail; a zero cell between two components shows ·, with no anchored use recorded as hidden text and the legend · means no anchored use recorded, and the cell where a component meets itself stays empty. Planned uses, unresolved endpoints and uses within one component stay in their own readings and never enter the table. The table is not a drawing, and it reads in full without script and in print.

no example exercises it

rule.plannedApart line 28 · specs/consumers/spec-studio.lenses.architecture.sdp.md:28
Each component design no anchor realizes, a row of recipe 43's unrealized list, draws in the same grid by its planned context and layer as a planned box, with the uses it plans drawn dashed to the components it names, and is listed again in a Designed, not built section apart from the realized components; a planned use naming a component the lens draws no box for draws no edge and stays listed in its design's row.

spec:consumers.spec-studio.lenses.architecture.planned-apart · enabled

rule.differences line 29 · specs/consumers/spec-studio.lenses.architecture.sdp.md:29
A realized component whose design differs from it lists each differing field, as recipe 43's differing rows give it, with its planned and realized values in its detail, and a design value recipe 43 cannot read lists in the Designed, not built section as unreadable.

no example exercises it

rule.componentDetail line 30 · specs/consumers/spec-studio.lenses.architecture.sdp.md:30
Each realized component has a detail section on the lens page whose element id is its id, which its box and every link to it from another page open: its id, label, layer, context and role; its recorded file and line as text with a copy action; its members, each with its id, label, role and recorded file and line; the components it uses and is used by, each with the count of unit edges; the Specs it and its members satisfy and reference, linked, a component design its anchor satisfies among them; and its member diagram, every value read from its recipe 17 row.

no example exercises it

rule.codeRootedHere line 31 · specs/consumers/spec-studio.lenses.architecture.sdp.md:31
A component diagram rooted at code units, the view spec:consumers.structural-mermaid asked for, is this lens's member diagram, and the shipped Mermaid root draws none.

no example exercises it

rule.unresolvedStructure line 32 · specs/consumers/spec-studio.lenses.architecture.sdp.md:32
A memberOf target the graph holds no component for, and a uses edge an end of which resolves to no component, list in an Unresolved structure section as recipe 17 reports them, never dropped.

no example exercises it

rule.lensSummary line 33 · specs/consumers/spec-studio.lenses.architecture.sdp.md:33
The page opens with sentences the build counts from the two recipes' answers: the components realized and planned, the contexts and layers they state, the uses edges between components, and the designs that differ from their components.

no example exercises it

0 unkeyed rules.

Verifying examples

A component design no anchor realizes draws planned beside the built one · spec:consumers.spec-studio.lenses.architecture.planned-apart · ready floor ready

Executable Spec

Given component anchors that realize {realized: 1} components in the context {context: "orders"} and the layer {layer: "domain"}
Given component designs that plan {planned: 1} more components in that context and layer, which no anchor realizes
When the build renders the architecture lens
Then the context's column holds {boxes: 2} component boxes in the layer's band
Then the diagram marks {plannedBoxes: 1} boxes planned
Then the Designed, not built section lists {listed: 1} component designs

Open example

Example space

Given component anchors that realize {realized:number} components in the context {context:string} and the layer {layer:"edge"|"application"|"domain"|"adapter"|"infrastructure"}
Given component designs that plan {planned:number} more components in that context and layer, which no anchor realizes
When the build renders the architecture lens
Then the context's column holds {boxes:number} component boxes in the layer's band
Then the diagram marks {plannedBoxes:number} boxes planned
Then the Designed, not built section lists {listed:number} component designs
Design
componentRows line 42 · specs/consumers/spec-studio.lenses.architecture.sdp.md:42
{ label: string | null; file: string | null; line: number | null; role: string | null; layer: string | null; context: string | null; referencedSpecs: string[]; usesCounts: { component: string; edges: number }[]; usedByCounts: { component: string; edges: number }[] }, the fields recipe 17 adds to each component row: the component's own label, file, line, role, layer and context as its CodeNode records them, each null when the node records none or no node declares the component; the Specs the component and its members reference, sorted; and, sorted by component, the count of unit uses edges behind each pair usesOut and usedBy name. Each member row gains role: string | null, and every field the recipe returns today keeps its meaning.

no citation recorded

UI
architecturePage line 36 · specs/consumers/spec-studio.lenses.architecture.sdp.md:36
in order, the page title Architecture, the summary sentences, the architecture diagram or its fold with one section per context, the component uses table, the Designed, not built section, the component details in id order, and the Unresolved structure section when it has rows.
usesTable line 37 · specs/consumers/spec-studio.lenses.architecture.sdp.md:37
a table captioned Which components use which in a named, keyboard-focusable scroll region, one row header and one column header per realized component, both in one order: by layer from edge to infrastructure, unlayered components last, then by id; each header names the component's label with its id as code.
designedNotBuilt line 38 · specs/consumers/spec-studio.lenses.architecture.sdp.md:38
a table with one row per unrealized design in Spec id order: the component design's Spec, linked; the planned component's id as code; its planned context, layer and role, or not stated; the components it plans to use; and whether its component anchor exists without satisfying it; a design whose value recipe 43 cannot read adds a row naming the design, the key and the unreadable value.
componentDetail line 39 · specs/consumers/spec-studio.lenses.architecture.sdp.md:39
a heading with the component's id as code and its label, a line with its layer, context and role in words, its source binding apart from its members, then Members grouped by recorded role, Uses with supporting unit edges at the table's fragment targets, Used by, any design differences, Satisfies and References, an empty list reading None, then the member diagram.
Verification

Verifier bindings

  • spec:consumers.spec-studio.lenses.architecture.planned-apart · A component design no anchor realizes draws planned beside the built one · declared · example enabled · specs/consumers/spec-studio.lenses.architecture.planned-apart.sdp.md

    External run evidence from test/studio-s1.test.ts

    Test anchors: test:protocol.studio-architecture-planned-apart, test:protocol.studio-coverage-literal, test:protocol.studio-coverage-number, test:protocol.studio-diagram-folds-context, test:protocol.studio-diagram-folds-layer, test:protocol.studio-diagram-within-bound, test:protocol.studio-lenses, test:protocol.studio-tests-coverage-row. Specs verified by those bindings: spec:consumers.agent-surface.example-space-coverage, spec:consumers.agent-surface.example-space-coverage.number-not-enumerable, spec:consumers.agent-surface.example-space-coverage.uncovered-literal, spec:consumers.spec-studio.data.recipe-answers, spec:consumers.spec-studio.diagrams, spec:consumers.spec-studio.diagrams.folds-by-context, spec:consumers.spec-studio.diagrams.folds-by-layer, spec:consumers.spec-studio.diagrams.within-bound, spec:consumers.spec-studio.lenses, spec:consumers.spec-studio.lenses.architecture, spec:consumers.spec-studio.lenses.architecture.planned-apart, spec:consumers.spec-studio.lenses.evidence, spec:consumers.spec-studio.lenses.packs, spec:consumers.spec-studio.lenses.tests, spec:consumers.spec-studio.lenses.tests.coverage-row.

    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
    bounds and folds 12 componentsStudio diagramspassed21.4 ms
    bounds and folds 45 componentsStudio diagramspassed4.18 ms
    bounds and folds 50 componentsStudio diagramspassed10.57 ms
    keeps every edge in an open text fallbackStudio diagramspassed1.76 ms
    orders grid contexts and layers and wraps cells within the fixed width budgetStudio diagramspassed3.65 ms
    draws planned-use edges dashed independently of planned box outlinesStudio diagramspassed0.48 ms
    checks the edge bound even when boxes fitStudio diagramspassed0.41 ms
    places folded contexts and layers in their own bands below the gridStudio diagramspassed3.19 ms
    places outgoing relation bands above the subject and folds ties in relation orderStudio diagramspassed9.26 ms
    folds trace relation groups and leaves member overflow as textStudio diagramspassed2.95 ms
    keeps recipe and diagram edges in code-unit order under forced Czech collationStudio lensespassed116.83 ms
    publishes all five ordered lenses and honest evidence without scriptStudio lensespassed33.06 ms
    reads verifier binding from the delivery fact and gives absent coverage its own filter valueStudio lensespassed18.02 ms
    labels a primitive-only space with no examples not measurable and hides it under coveredStudio lensespassed14.75 ms
    classifies 'number' with points [ '1' ] and mixed=false as 'not-measurable'Studio lensespassed26.11 ms
    classifies 'string' with points [ '"a"' ] and mixed=false as 'not-measurable'Studio lensespassed22.83 ms
    classifies 'boolean' with points [ 'true' ] and mixed=false as 'not-measurable'Studio lensespassed11.69 ms
    classifies '"a"|"b"' with points [] and mixed=false as 'uncovered'Studio lensespassed9.5 ms
    classifies '"a"|"b"' with points [ '"a"' ] and mixed=false as 'uncovered'Studio lensespassed11.11 ms
    classifies '"a"|"b"' with points [ '"a"', '"b"' ] and mixed=false as 'covered'Studio lensespassed15.58 ms
    classifies '"a"|"b"' with points [ '"a"' ] and mixed=true as 'uncovered'Studio lensespassed16.25 ms
    classifies '"a"|"b"' with points [ '"a"', '"b"' ] and mixed=true as 'covered'Studio lensespassed20.2 ms
    renders member subjects, code spans, used-by counts, differences and empty componentsStudio lensespassed14.17 ms
    describes evidence sources as not trackedStudio lensespassed2.87 ms
    executes the bound example against a fresh worldAn architecture within the bound draws in one diagram, the same bytes twice (spec:consumers.spec-studio.diagrams.within-bound)passed13 ms
    executes the bound example against a fresh worldAn architecture over the bound folds by context (spec:consumers.spec-studio.diagrams.folds-by-context)passed7.68 ms
    executes the bound example against a fresh worldOne context over the bound folds by layer (spec:consumers.spec-studio.diagrams.folds-by-layer)passed8.85 ms
    executes the bound example against a fresh worldA component design no anchor realizes draws planned beside the built one (spec:consumers.spec-studio.lenses.architecture.planned-apart)passed26.33 ms
    executes the bound example against a fresh worldA Spec's row on the tests lens counts its exercised keyed rules (spec:consumers.spec-studio.lenses.tests.coverage-row)passed13.82 ms
    executes the bound example against a fresh worldA literal no example binds is reported uncovered, and an unbound child is named (spec:consumers.agent-surface.example-space-coverage.uncovered-literal)passed4.85 ms
    executes the bound example against a fresh worldA number slot is not enumerable and reports no uncovered value (spec:consumers.agent-surface.example-space-coverage.number-not-enumerable)passed3.01 ms
    reuses the build's reader and validation findings during Studio recipe evaluationnot recordedpassed3.94 ms
    documents the component and member fields recipe 17 addsnot recordedpassed1.22 ms
    evaluates each shipped recipe once for its assigned parameters and shares Pack totals, with base falsenot recordedpassed14.63 ms
    evaluates each shipped recipe once for its assigned parameters and shares Pack totals, with base truenot recordedpassed20.61 ms
    keeps label lines bounded and orders member depths numerically with outside units lastnot recordedpassed2.32 ms
    labels planned uses, reports unreadable designs and keeps unknown structure visiblenot recordedpassed8.33 ms
    gives unstated context and layer folds addressable text descriptionsnot recordedpassed1.14 ms
    names a single edge relation once in the legend and preserves its text equivalentnot recordedpassed1.75 ms
    names solid and planned uses once without repeating edge labelsnot recordedpassed0.63 ms
  • test:protocol.studio-architecture-maturity-requirement · anchored · test anchor binding present · test/studio-panels.test.ts:35

    External run evidence from test/studio-panels.test.ts

    Test anchors: test:protocol.studio-architecture-maturity-requirement. Specs verified by those bindings: spec:consumers.spec-studio.diagram-kinds.maturity-picture, spec:consumers.spec-studio.diagram-kinds.requirement-trace, spec:consumers.spec-studio.lenses.architecture, spec:consumers.spec-studio.lenses.architecture.unit-register, spec:consumers.spec-studio.pack-page.maturity-map, spec:consumers.spec-studio.spec-page.

    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
    orders both matrix axes by layer and id, links counts to supporting unit edges and keeps zeros compactarchitecture tables and registerpassed74.8 ms
    groups unfamiliar and omitted roles in code-unit order, with source rows and separate binding listsarchitecture tables and registerpassed27.09 ms
    draws equal categorical cells, exact counts and marks with ordered complete lists and unresolved members apartmaturity picturepassed38.78 ms
    places the map inside the page's expander so a cell link opens its member listmaturity picturepassed21.01 ms
    puts a uniform map behind a closed disclosure and uses solid fill above the mark boundmaturity picturepassed321.53 ms
    selects the subject, refiners and verifying examples and keeps declared and anchored claims separaterequirement drawingpassed35.44 ms
    keeps a refining verifier in the examples band and outside Specs apartrequirement drawingpassed11.64 ms
    offers requirement syntax for the supported exact relation subsetrequirement drawingpassed10.84 ms
    counts the subject example when reporting selected verifying examplesrequirement drawingpassed8.27 ms
    folds the largest exact relation group deterministically and keeps every original binding in textnot recordedpassed6.82 ms
    keeps a sparse large uses matrix readable with one visible zero legend and hidden cell wordsnot recordedpassed17.36 ms
    contains the matrix's hidden cell words inside their scroll regionnot recordedpassed0.48 ms
    does not assert missing bindings on a boundary Spec whose bindings are outside the selected setnot recordedpassed9.21 ms
    lets full component ids wrap so every uses column fits the printed pagenot recordedpassed1.26 ms
    keeps roles out of the pinned search record while preserving them on graph unitsnot recordedpassed3.1 ms
    lists a unit whose recorded component is missing in No component and in unresolved structurenot recordedpassed4.23 ms
    uses the singular member in a one-member Pack's uniform sentencenot recordedpassed8.51 ms
    states each absent requirement band without implying that a populated drawing is missingnot recordedpassed5.53 ms
    breaks equal requirement fold groups by 'kind' in lexical ordernot recordedpassed3.79 ms
    breaks equal requirement fold groups by 'direction' in lexical ordernot recordedpassed1.83 ms
    breaks equal requirement fold groups by 'claim' in lexical ordernot recordedpassed1.31 ms
    offers only the active relation and member renderers after requirement replaces realizationnot recordedpassed0.25 ms
    applies the closed-source print rule to both requirement and maturity drawingsnot recordedpassed0.3 ms

Example space

  • realized · number · declared by component anchors that realize {realized} components in the context {context} and the layer {layer}
  • context · string · declared by component anchors that realize {realized} components in the context {context} and the layer {layer}
  • layer · "edge" | "application" | "domain" | "adapter" | "infrastructure" · declared by component anchors that realize {realized} components in the context {context} and the layer {layer}
  • planned · number · declared by component designs that plan {planned} more components in that context and layer, which no anchor realizes

Bound points

Examplerealizedcontextlayerplanned
spec:consumers.spec-studio.lenses.architecture.planned-apart1"orders""domain"1

Oracle binding: present · oracle:protocol.studio-architecture · test/studio-s1.test.ts:707

Coverage

realized: 1 · spec:consumers.spec-studio.lenses.architecture.planned-apart · not enumerable

context: "orders" · spec:consumers.spec-studio.lenses.architecture.planned-apart · not enumerable

layer
Declared valueExamples
"edge"no example
"application"no example
"domain"spec:consumers.spec-studio.lenses.architecture.planned-apart
"adapter"no example
"infrastructure"no example

planned: 1 · spec:consumers.spec-studio.lenses.architecture.planned-apart · not enumerable

Unbound

  • realized: None
  • context: None
  • layer: None
  • planned: None
Design view

Requirement drawing

Requirement drawing for spec:consumers.spec-studio.lenses.architecture
  • E4: refines · declared
Requirement drawing for spec:consumers.spec-studio.lenses.architecturesatisfies · anchoredsatisfies · anchoredmodels · anchoredE4refines, verifies · declaredrefines · declaredverifies · anchoredverifies · anchoredverifies · anchoredIntended Specsspec:consumers.spec-studio.lenses.architectureThe architecture lens drawscomponents by context andlayer, the planned besidethe built…consumers.spec-studio.lenses.architecturedeclared Specspec:consumers.spec-studio.lenses.architecture.unit-registerThe architecture page listseach component'ssignificant units by role…consumers.spec-studio.lenses.architecture.unit-registerdeclared SpecDeclared verifying examplesspec:consumers.spec-studio.lenses.architecture.planned-apartA component design noanchor realizes drawsplanned beside the built one…consumers.spec-studio.lenses.architecture.planned-apartdeclared SpecSatisfying or referencingunits2 satisfying units · anchored, folded2 satisfying units ·anchoredTest or oracle bindingsoracle:protocol.studio-architectureoracle:protocol.studio-architecture…protocol.studio-architectureanchored oracle bindingtest:protocol.studio-architecture-maturity-requirementtest:protocol.studio-architecture-maturity-requirement…protocol.studio-architecture-maturity-requirementanchored test binding ·binding presenttest:protocol.studio-architecture-planned-aparttest:protocol.studio-architecture-planned-apart…protocol.studio-architecture-planned-apartanchored test binding ·binding presentOutside the selected setspec:consumers.spec-studio.lensesFive lenses read the graphas Packs, capabilities,architecture, tests andevidence…consumers.spec-studio.lensesdeclared Spec
The diagram as text
  • spec:consumers.spec-studio.lenses.architecture: The architecture lens draws components by context and layer, the planned beside the built · declared Spec
  • spec:consumers.spec-studio.lenses.architecture.planned-apart: A component design no anchor realizes draws planned beside the built one · declared Spec
  • spec:consumers.spec-studio.lenses.architecture.unit-register: The architecture page lists each component's significant units by role · declared Spec
  • spec:consumers.spec-studio.lenses: Five lenses read the graph as Packs, capabilities, architecture, tests and evidence · declared Spec
  • impl:protocol.studio-architecture-lens: renders recipe component rows and planned designs as architecture and member diagrams · anchored code · src/projections/studio/pages/architecture-page.ts:50
  • impl:protocol.studio-unit-register: renders component source bindings and role-grouped recorded units · anchored code · src/projections/studio/pages/architecture-register.ts:7
  • oracle:protocol.studio-architecture: oracle:protocol.studio-architecture · anchored oracle binding · test/studio-s1.test.ts:707
  • test:protocol.studio-architecture-maturity-requirement: test:protocol.studio-architecture-maturity-requirement · anchored test binding · binding present · test/studio-panels.test.ts:35
  • test:protocol.studio-architecture-planned-apart: test:protocol.studio-architecture-planned-apart · anchored test binding · binding present · test/studio-s1.test.ts:716
  • spec:consumers.spec-studio.lenses.architecture refines spec:consumers.spec-studio.lenses · declared
  • spec:consumers.spec-studio.lenses.architecture.planned-apart refines spec:consumers.spec-studio.lenses.architecture · declared
  • spec:consumers.spec-studio.lenses.architecture.planned-apart verifies spec:consumers.spec-studio.lenses.architecture · declared
  • spec:consumers.spec-studio.lenses.architecture.unit-register refines spec:consumers.spec-studio.lenses.architecture · declared
  • impl:protocol.studio-architecture-lens satisfies spec:consumers.spec-studio.lenses.architecture · anchored
  • impl:protocol.studio-unit-register satisfies spec:consumers.spec-studio.lenses.architecture.unit-register · anchored
  • oracle:protocol.studio-architecture models spec:consumers.spec-studio.lenses.architecture · anchored
  • test:protocol.studio-architecture-maturity-requirement verifies spec:consumers.spec-studio.lenses.architecture · anchored
  • test:protocol.studio-architecture-maturity-requirement verifies spec:consumers.spec-studio.lenses.architecture.unit-register · anchored
  • test:protocol.studio-architecture-planned-apart verifies spec:consumers.spec-studio.lenses.architecture.planned-apart · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

Preferred syntax: requirementDiagram. Chosen syntax: flowchart TB because models, folds 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
  • 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.studio-architecture-lens · renders recipe component rows and planned designs as architecture and member diagrams · src/projections/studio/pages/architecture-page.ts:50

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    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:consumers.spec-studio.lenses.architecture
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture: A Spec set draws the architecture it touches
  • spec:consumers.spec-studio.diagrams: A diagram is laid out from graph values into SVG with a text equivalent
  • spec:consumers.spec-studio.lenses: Five lenses read the graph as Packs, capabilities, architecture, tests and evidence
  • spec:consumers.spec-studio.lenses.architecture: The architecture lens draws components by context and layer, the planned beside the built
  • spec:consumers.spec-studio.lenses.architecture.planned-apart: A component design no anchor realizes draws planned beside the built one
  • spec:consumers.spec-studio.lenses.architecture.unit-register: The architecture page lists each component's significant units by role
  • spec:consumers.structural-mermaid: Mermaid diagrams can be rooted at code units
  • spec:decisions.architectural-annotation: Architectural significance is annotated where it is realized
  • spec:model.planned-architecture: Components are designed ahead of their code
  • spec:consumers.spec-studio.lenses.architecture decidedBy spec:decisions.architectural-annotation · declared — the lens draws only what component anchors state, membership, uses, layer, context and role
  • spec:consumers.spec-studio.lenses.architecture dependsOn spec:consumers.spec-studio.diagrams · declared — the lens's drawings are the architecture grid and the member diagrams
  • spec:consumers.spec-studio.lenses.architecture dependsOn spec:model.planned-architecture · declared — planned components come from the component designs recipe 43 reads
  • spec:consumers.spec-studio.lenses.architecture refines spec:consumers.spec-studio.lenses · declared
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture dependsOn spec:consumers.spec-studio.lenses.architecture · declared
  • spec:consumers.structural-mermaid dependsOn spec:consumers.spec-studio.lenses.architecture · declared — the lens draws the component diagram rooted at code units this Spec asked for
  • spec:consumers.spec-studio.lenses.architecture.planned-apart refines spec:consumers.spec-studio.lenses.architecture · declared
  • spec:consumers.spec-studio.lenses.architecture.unit-register refines spec:consumers.spec-studio.lenses.architecture · declared
  • spec:consumers.spec-studio.lenses.architecture.planned-apart verifies spec:consumers.spec-studio.lenses.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
declaredthe lens draws only what component anchors state, membership, uses, layer, context and roleNone
dependsOn · outgoingA diagram is laid out from graph values into SVG with a text equivalent
spec:consumers.spec-studio.diagrams · resolves
declaredthe lens's drawings are the architecture grid and the member diagramsNone
dependsOn · outgoingComponents are designed ahead of their code
spec:model.planned-architecture · resolves
declaredplanned components come from the component designs recipe 43 readsNone
refines · outgoingFive lenses read the graph as Packs, capabilities, architecture, tests and evidence
spec:consumers.spec-studio.lenses · resolves
declaredNoneNone
dependsOn · incomingA Spec set draws the architecture it touches
spec:consumers.spec-studio.diagram-kinds.scoped-architecture · resolves
declaredNoneNone
dependsOn · incomingMermaid diagrams can be rooted at code units
spec:consumers.structural-mermaid · resolves
declaredthe lens draws the component diagram rooted at code units this Spec asked forNone
refines · incomingA component design no anchor realizes draws planned beside the built one
spec:consumers.spec-studio.lenses.architecture.planned-apart · resolves
declaredNoneNone
refines · incomingThe architecture page lists each component's significant units by role
spec:consumers.spec-studio.lenses.architecture.unit-register · resolves
declaredNoneNone
verifies · incomingA component design no anchor realizes draws planned beside the built one
spec:consumers.spec-studio.lenses.architecture.planned-apart · resolves
declaredNonecontextAndLayer, plannedApart

Bindings

Implementation binding: present

  • impl:protocol.studio-architecture-lens · renders recipe component rows and planned designs as architecture and member diagrams · src/projections/studio/pages/architecture-page.ts:50 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • spec:consumers.spec-studio.lenses.architecture.planned-apart · A component design no anchor realizes draws planned beside the built one · declared · specs/consumers/spec-studio.lenses.architecture.planned-apart.sdp.md · example enabled
  • test:protocol.studio-architecture-maturity-requirement · anchored · test/studio-panels.test.ts:35 · test anchor

Expected-outcome oracle: present

  • oracle:protocol.studio-architecture · test/studio-s1.test.ts:707

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

Composing (0)

Composing needs the script.