Spec Studio

The Studio chooses diagram kinds from graph values

spec:consumers.spec-studio.diagram-kindsUse Case / Behavior · featureready floor ready

New since the base graph base da4b141. See the diff.

Base input: schema 0.11.0, 405 Specs.

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/spec-studio.diagram-kinds.sdp.md

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

Dependency chains across a Pack, capability refinement, the components a design touches, and differences between stated readiness and the floor need different pictures. A diagram kind earns its place through the question it answers and the graph values that answer it. Mermaid supplies a useful catalog of visual forms, not the Studio's layout runtime or an instruction to draw every form.

Intent
outcome
Choose useful drawings from graph values, keep their labels readable on first view, and offer source a reader can copy without changing the shipped Mermaid projection.
Behavior
rule.graphData line 22 · specs/consumers/spec-studio.diagram-kinds.sdp.md:22
A drawing reads the graph through the page's reader values and recipe answers. A visual form never supplies missing intent, order, cardinality, scores, dates or runtime evidence from prose, paths or imports.

no example exercises it

rule.kindCatalog line 23 · specs/consumers/spec-studio.diagram-kinds.sdp.md:23
The catalog names each visual family, whether the graph holds its data, its subject, the question it answers, and a refusal or deferral's re-entry trigger. Renderer aliases share their family's row; diagnostic renderers are named apart.

no example exercises it

rule.drawnKinds line 24 · specs/consumers/spec-studio.diagram-kinds.sdp.md:24
The Studio adds dependency depth, capability refinement, scoped architecture and the maturity map as a grid of counts, and a component uses table beside the architecture lens's drawing; requirement traceability replaces the realization drawing on a Spec page. Equivalent Mermaid forms share one Studio drawing.

no example exercises it

Cited at

  • Test line · test/studio-diagram-catalog.test.ts:127 · test:protocol.studio-diagram-catalog
rule.honestScope line 25 · specs/consumers/spec-studio.diagram-kinds.sdp.md:25
A Pack, slice or roadmap passes an explicit ordered set of Spec ids to a drawing. A grouping or a diagram never authors a delivery fact, ranks work, grants permission or sets a workflow gate.

no example exercises it

rule.sharedContract line 26 · specs/consumers/spec-studio.diagram-kinds.sdp.md:26
Every new drawing keeps the diagram contract's bound, deterministic static SVG, links, words beside style, text equivalent and unique element ids. Layout and copying add no browser layout dependency.

no example exercises it

0 unkeyed rules.

Design
kindCatalog line 30 · specs/consumers/spec-studio.diagram-kinds.sdp.md:30
draw, equivalent, defer and refuse describe catalog choices only. They are not graph fields or delivery states. A deferred form has honest inputs but adds no needed reading beyond the selected views; a refused form lacks typed inputs.

no citation recorded

legibleLabels line 31 · specs/consumers/spec-studio.diagram-kinds.sdp.md:31
The figure keeps the Studio's navigation rail. Title-first labels and width-based cell wrapping reduce width; natural-size SVG with local horizontal scrolling preserves readable labels on desktop. Below the responsive breakpoint the same drawing fits the screen. The legibility child pins these measurements and behavior.
flowchart line 32 · specs/consumers/spec-studio.diagram-kinds.sdp.md:32
Draw for a Spec set, Pack, slice or roadmap from declared relations; dependency depth reveals chains and cycles the one-hop trace cannot show. Arrows retain their exact relation and direction, never execution order. The existing trace and members remain equivalent flowchart subjects.
mindmap line 33 · specs/consumers/spec-studio.diagram-kinds.sdp.md:33
Draw capability refinement from declared refines for an epic or capability map. The tree shows nesting absent from a flat list; repeated parents and cycles stay explicit rather than becoming an invented hierarchy.
treeView line 34 · specs/consumers/spec-studio.diagram-kinds.sdp.md:34
Equivalent to the capability tree for a strict refinement tree. Folder icons and file paths would invent meaning; use plain labels. Repeated parents use the capability view's cross-links or its flowchart source.
block line 35 · specs/consumers/spec-studio.diagram-kinds.sdp.md:35
Draw scoped architecture and the discrete maturity matrix. Components and anchored uses answer which seams a Spec set touches; stated and reached rungs answer where statements lag or overreach. Cell position is categorical, never a score.
architecture line 36 · specs/consumers/spec-studio.diagram-kinds.sdp.md:36
Equivalent to the scoped architecture drawing for a component or Spec set, from component, memberOf and uses plus planned-component declarations. Generic boxes keep optional context and layer; cloud, service, network and deployment icons need explicit typed declarations before they can mean anything.
usesTable line 37 · specs/consumers/spec-studio.diagram-kinds.sdp.md:37
Draw a component uses table, a design structure matrix, beside the architecture lens's drawing: one row per realized component as the user and one column per realized component as the used, in one order, a cell for each pair. A table stays legible at any number of uses, where routed edges between a dozen components run in parallel bundles. It is an HTML table read from anchored uses, needs no layout, bound or fold, and offers no Mermaid source because Mermaid has no matrix form.

Cited at

  • Test line · test/studio-diagram-catalog.test.ts:117 · test:protocol.studio-diagram-catalog
requirement line 38 · specs/consumers/spec-studio.diagram-kinds.sdp.md:38
Draw a Spec's or bounded Spec set's refinement, satisfying units and declared versus anchored verifiers together. This shows the distinction between intent and binding in one picture; it supplies no risk, test method or passing result.
class line 39 · specs/consumers/spec-studio.diagram-kinds.sdp.md:39
Defer a role view for a component or slice: units as classes stereotyped by their recorded role, with anchored uses as dependency arrows and no fields, methods or inheritance. Role, memberOf and uses are honest inputs, but the role vocabulary is under review and the architecture page lists roles as text. Re-enter when the role vocabulary settles and a reader needs pattern relationships drawn. Refuse fields, methods, inheritance and multiplicities; Model prose is not a schema.
entityRelationship line 40 · specs/consumers/spec-studio.diagram-kinds.sdp.md:40
Refuse for a Spec, component or corpus. Terms and relations are not entity attributes, keys or cardinalities. Re-enter with an explicit typed entity and cardinality contract.
sequence line 41 · specs/consumers/spec-studio.diagram-kinds.sdp.md:41
Refuse for a Spec or slice. Uses and dependsOn hold no messages, participants or temporal order. Re-enter with typed ordered interactions or a separately admitted runtime input.
zenUml line 42 · specs/consumers/spec-studio.diagram-kinds.sdp.md:42
Refuse for the same missing interaction data as sequence; the optional external renderer adds no graph evidence. Re-enter when ordered interactions have a lawful graph home.
state line 43 · specs/consumers/spec-studio.diagram-kinds.sdp.md:43
Refuse for a Spec or roadmap. Readiness is a position, not a transition machine, and the graph holds no domain states, events or guards. Re-enter with a typed domain state contract unrelated to delivery gating.
journey line 44 · specs/consumers/spec-studio.diagram-kinds.sdp.md:44
Refuse for a Spec, Pack or corpus. Intent actors do not define ordered journey tasks or satisfaction scores. Re-enter with typed journey steps and a reader who needs them.
gantt line 45 · specs/consumers/spec-studio.diagram-kinds.sdp.md:45
Refuse for a roadmap or corpus. No durations, start dates or schedules are held, and dependency depth is not time. Re-enter only with a separately ruled temporal input that never gates work.
pie line 46 · specs/consumers/spec-studio.diagram-kinds.sdp.md:46
Defer for a Pack or corpus. Counts by kind or readiness are honest, but slices repeat the census while hiding exact comparisons. Re-enter when a reader needs part-to-whole comparison that the census cannot answer.
quadrant line 47 · specs/consumers/spec-studio.diagram-kinds.sdp.md:47
Refuse normalized quadrant coordinates for a Pack or roadmap. Readiness rungs have no numeric distances and priority is not a score. The maturity map uses a discrete matrix instead. Re-enter with explicitly typed independent numeric measures.
gitGraph line 48 · specs/consumers/spec-studio.diagram-kinds.sdp.md:48
Refuse for a Spec, Pack or corpus. Git is the event log, but commits and branch ancestry are not nodes in the current graph. Re-enter with a ruled history input and a history reader.
c4 line 49 · specs/consumers/spec-studio.diagram-kinds.sdp.md:49
Refuse C4 semantics for a component or slice. Component anchors do not state people, software systems, containers, trust boundaries or deployment. Re-enter with typed C4 meanings; generic component structure remains in the architecture drawing.
timeline line 50 · specs/consumers/spec-studio.diagram-kinds.sdp.md:50
Refuse for a roadmap or corpus. A dependency chain and authored Pack order are neither dated events nor time periods. Re-enter with a lawful history input.
sankey line 51 · specs/consumers/spec-studio.diagram-kinds.sdp.md:51
Refuse for a component, slice or corpus. Uses counts are discrete bindings, not a conserved flow or its magnitude. Re-enter with typed flow units and weights.
xyChart line 52 · specs/consumers/spec-studio.diagram-kinds.sdp.md:52
Defer categorical count bars for a Pack or corpus because the census already gives the exact counts; refuse a trend without time-series input. Re-enter when a reader needs a count comparison or a separately ruled time series.
packet line 53 · specs/consumers/spec-studio.diagram-kinds.sdp.md:53
Refuse for a Spec or component. Contract prose contains no typed bit offsets, field widths or packet layout. Re-enter with a typed wire-format layout.
kanban line 54 · specs/consumers/spec-studio.diagram-kinds.sdp.md:54
Defer a separate readiness board because the maturity map shows both stated and reached rungs; refuse workflow states or inferred work order. The roadmap page's HTML lists by need already provide the categorical board over explicit graph values. Re-enter for Mermaid kanban export when a reader needs to copy that board.
radar line 55 · specs/consumers/spec-studio.diagram-kinds.sdp.md:55
Refuse for a Spec, Pack or corpus. There are no comparable numeric quality scores or justified common scales; cardinalities cannot manufacture them. Re-enter with typed independent measures and their units.
treemap line 56 · specs/consumers/spec-studio.diagram-kinds.sdp.md:56
Defer for a Pack or corpus. Spec counts and membership are honest, but area repeats the census and a multi-parent refinement graph cannot be partitioned without duplication. Re-enter with a named size-comparison reader and an explicit partition and measure.
swimlanes line 57 · specs/consumers/spec-studio.diagram-kinds.sdp.md:57
Refuse process swimlanes for a slice or component. Context and layer do not define actors, tasks or control flow. The architecture grid remains an equivalent grouping only. Re-enter with typed process participants and flow.
useCase line 58 · specs/consumers/spec-studio.diagram-kinds.sdp.md:58
Refuse UML use-case associations for an epic or Spec. Intent.actor is prose, not an actor identity or an include, extend or association edge. Re-enter with explicit typed actor associations; behavior altitude alone supplies none.
eventModeling line 59 · specs/consumers/spec-studio.diagram-kinds.sdp.md:59
Refuse for a component or slice. The graph holds no ordered commands, events, screens or event streams. Re-enter with typed event-modeling declarations.
venn line 60 · specs/consumers/spec-studio.diagram-kinds.sdp.md:60
Defer Pack-overlap sets for the corpus. Membership allows honest intersections, but no current task needs a bounded overlap picture. Re-enter with named Packs and an overlap question whose intersections remain legible.
ishikawa line 61 · specs/consumers/spec-studio.diagram-kinds.sdp.md:61
Refuse for a Spec or corpus. A dependency is not a causal explanation and the graph holds no typed cause categories. Re-enter with authored causal relations admitted by the Protocol.
wardley line 62 · specs/consumers/spec-studio.diagram-kinds.sdp.md:62
Refuse for a capability map or roadmap. Refinement and dependencies hold no value-chain visibility or evolution coordinates. Re-enter with a ruled typed strategy input; never map readiness to evolution.
cynefin line 63 · specs/consumers/spec-studio.diagram-kinds.sdp.md:63
Refuse for a Spec or roadmap. Kind and readiness are not complexity classifications. Re-enter with explicitly authored complexity assessments in an admitted contract.
agentFlow line 64 · specs/consumers/spec-studio.diagram-kinds.sdp.md:64
Refuse agent-flow semantics for a component or slice. Anchored uses do not identify agents, tools, prompts or routing decisions. Re-enter with typed agent and routing declarations.
railroad line 65 · specs/consumers/spec-studio.diagram-kinds.sdp.md:65
Refuse railroad, EBNF, ABNF and PEG forms for a Spec or corpus. A vocabulary's step strings and parameter slots do not state a complete grammar production graph. Re-enter with typed productions and a grammar reader; never parse prose into a grammar.
diagnostics line 66 · specs/consumers/spec-studio.diagram-kinds.sdp.md:66
Mermaid's info and error renderers are diagnostics, not corpus diagram kinds. Keep them outside the Studio catalog of graph drawings; renderer variants such as flowchart ELK, class and state versions share their semantic family's row.
Verification

Verifier bindings

  • test:protocol.studio-diagram-catalog · anchored · test anchor binding present · test/studio-diagram-catalog.test.ts:12

    External run evidence from test/studio-diagram-catalog.test.ts

    Test anchors: test:protocol.studio-diagram-catalog. Specs verified by those bindings: spec:consumers.spec-studio.diagram-kinds.

    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
    keeps the complete drawn catalog and every other family deferred or refusedthe shipped diagram catalogpassed3.32 ms
    renders the six promised readings from explicit graph values without adding other formsthe shipped diagram catalogpassed1.71 ms
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.diagram-kinds

Scroll horizontally to read the whole drawing.

Requirement drawing for spec:consumers.spec-studio.diagram-kindsrefines · declaredrefines · declaredsatisfies · anchoredsatisfies · anchoredrefines · declaredverifies · anchoredverifies · anchoredverifies · anchoredverifies · anchoredverifies · anchoredverifies · anchoredIntended Specs8 refining Specs · declared, folded8 refining Specs · declaredspec:consumers.spec-studio.diagram-kindsThe Studio chooses diagramkinds from graph values…consumers.spec-studio.diagram-kindsdeclared SpecSatisfying or referencingunits12 satisfying units · anchored, folded12 satisfying units ·anchoredTest or oracle bindingstest:protocol.studio-architecture-maturity-requirementtest:protocol.studio-architecture-maturity-requirement…protocol.studio-architecture-maturity-requirementanchored test binding ·binding presenttest:protocol.studio-capabilitiestest:protocol.studio-capabilities…protocol.studio-capabilitiesanchored test binding ·binding presenttest:protocol.studio-diagram-catalogtest:protocol.studio-diagram-catalog…protocol.studio-diagram-cataloganchored test binding ·binding presenttest:protocol.studio-diagram-coretest:protocol.studio-diagram-core…protocol.studio-diagram-coreanchored test binding ·binding presenttest:protocol.studio-slice-architecturetest:protocol.studio-slice-architecture…protocol.studio-slice-architectureanchored test binding ·binding presenttest:protocol.studio-slice-dependencytest:protocol.studio-slice-dependency…protocol.studio-slice-dependencyanchored test binding ·binding presentOutside the selected setspec:consumers.spec-studio.diagramsA diagram is laid out fromgraph values into SVG witha text equivalent…consumers.spec-studio.diagramsdeclared Spec
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.capability-tree: A refinement drawing follows the capability map · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.dependency: A dependency drawing shows the declared footing of a Spec set · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.edge-routing: Edges route around boxes with deterministic orthogonal paths · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.legibility: A diagram preserves readable labels before zoom · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture: The maturity map is drawn as a grid of counts · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.mermaid-source: A diagram offers Mermaid source as copyable text · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.requirement-trace: A requirement drawing separates intent from realization and verification · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture: A Spec set draws the architecture it touches · declared Spec
  • spec:consumers.spec-studio.diagrams: A diagram is laid out from graph values into SVG with a text equivalent · 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-capability-diagrams: places refinement occurrences and bounded branches from the capability map · anchored code · src/projections/studio/diagrams/capability.ts:101
  • impl:protocol.studio-diagram-element: adds view-box pan, zoom and pinch to build-rendered SVG without changing its layout · anchored code · src/studio-elements/diagram.ts:23
  • impl:protocol.studio-diagram-layout: title-first box placement, wrapping and band sizing for desktop and phone · anchored code · src/projections/studio/diagrams/layout.ts:140
  • impl:protocol.studio-diagram-routing: port, channel and overflow-rail edge routes around boxes and labels · anchored code · src/projections/studio/diagrams/routing.ts:38
  • impl:protocol.studio-diagram-source: escaped Mermaid flowchart and mindmap source in placed box order · anchored code · src/projections/studio/diagrams/mermaid.ts:13
  • impl:protocol.studio-diagrams: deterministic grid and band layouts with bounded folds and full text equivalents · anchored code · src/projections/studio/diagrams/svg.ts:73
  • impl:protocol.studio-maturity-map: places resolved Pack members by their stated rung and floor in authored order · anchored code · src/projections/studio/pages/maturity-map.ts:7
  • impl:protocol.studio-requirement-diagram: folds requirement bindings by relation direction and claim and serializes exact relations · anchored code · src/projections/studio/diagrams/requirement.ts:12
  • impl:protocol.studio-requirement-view: selects Spec refiners, verifying examples and their recorded bindings · anchored code · src/projections/studio/pages/requirement-view.ts:8
  • impl:protocol.studio-slice-architecture: selected component grid with distinct planned identities and complete unit edges · anchored code · src/projections/studio/diagrams/slice.ts:219
  • impl:protocol.studio-slice-dependencies: supplied depth bands with protected boundary boxes and lossless text · anchored code · src/projections/studio/diagrams/slice.ts:10
  • 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-capabilities: test:protocol.studio-capabilities · anchored test binding · binding present · test/studio-capabilities.test.ts:89
  • test:protocol.studio-diagram-catalog: test:protocol.studio-diagram-catalog · anchored test binding · binding present · test/studio-diagram-catalog.test.ts:12
  • test:protocol.studio-diagram-core: test:protocol.studio-diagram-core · anchored test binding · binding present · test/studio-diagram-core.test.ts:37
  • test:protocol.studio-slice-architecture: test:protocol.studio-slice-architecture · anchored test binding · binding present · test/studio-slice.test.ts:579
  • test:protocol.studio-slice-dependency: test:protocol.studio-slice-dependency · anchored test binding · binding present · test/studio-slice.test.ts:369
  • spec:consumers.spec-studio.diagram-kinds refines spec:consumers.spec-studio.diagrams · declared
  • spec:consumers.spec-studio.diagram-kinds.capability-tree refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.dependency refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.edge-routing refines spec:consumers.spec-studio.diagram-kinds · declared — arrows that cover no label serve the readable drawings the diagram kinds state
  • spec:consumers.spec-studio.diagram-kinds.edge-routing refines spec:consumers.spec-studio.diagrams · declared
  • spec:consumers.spec-studio.diagram-kinds.legibility refines spec:consumers.spec-studio.diagram-kinds · declared — readable labels are part of the outcome the diagram kinds state
  • spec:consumers.spec-studio.diagram-kinds.legibility refines spec:consumers.spec-studio.diagrams · declared
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.mermaid-source refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.requirement-trace refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture refines spec:consumers.spec-studio.diagram-kinds · declared
  • impl:protocol.studio-architecture-lens satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-capability-diagrams satisfies spec:consumers.spec-studio.diagram-kinds.capability-tree · anchored
  • impl:protocol.studio-capability-diagrams satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-diagram-element satisfies spec:consumers.spec-studio.diagram-kinds.legibility · anchored
  • impl:protocol.studio-diagram-layout satisfies spec:consumers.spec-studio.diagram-kinds.legibility · anchored
  • impl:protocol.studio-diagram-layout satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-diagram-routing satisfies spec:consumers.spec-studio.diagram-kinds.edge-routing · anchored
  • impl:protocol.studio-diagram-source satisfies spec:consumers.spec-studio.diagram-kinds.mermaid-source · anchored
  • impl:protocol.studio-diagram-source satisfies spec:consumers.spec-studio.diagram-kinds.capability-tree · anchored
  • impl:protocol.studio-diagram-source satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-diagrams satisfies spec:consumers.spec-studio.diagram-kinds.edge-routing · anchored
  • impl:protocol.studio-diagrams satisfies spec:consumers.spec-studio.diagram-kinds.legibility · anchored
  • impl:protocol.studio-diagrams satisfies spec:consumers.spec-studio.diagram-kinds.mermaid-source · anchored
  • impl:protocol.studio-diagrams satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-maturity-map satisfies spec:consumers.spec-studio.diagram-kinds.maturity-picture · anchored
  • impl:protocol.studio-maturity-map satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-requirement-diagram satisfies spec:consumers.spec-studio.diagram-kinds.requirement-trace · anchored
  • impl:protocol.studio-requirement-diagram satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-requirement-view satisfies spec:consumers.spec-studio.diagram-kinds.requirement-trace · anchored
  • impl:protocol.studio-slice-architecture satisfies spec:consumers.spec-studio.diagram-kinds.scoped-architecture · anchored
  • impl:protocol.studio-slice-architecture satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-slice-dependencies satisfies spec:consumers.spec-studio.diagram-kinds.dependency · anchored
  • impl:protocol.studio-slice-dependencies satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • test:protocol.studio-architecture-maturity-requirement verifies spec:consumers.spec-studio.diagram-kinds.maturity-picture · anchored
  • test:protocol.studio-architecture-maturity-requirement verifies spec:consumers.spec-studio.diagram-kinds.requirement-trace · anchored
  • test:protocol.studio-capabilities verifies spec:consumers.spec-studio.diagram-kinds.capability-tree · anchored
  • test:protocol.studio-diagram-catalog verifies spec:consumers.spec-studio.diagram-kinds · anchored
  • test:protocol.studio-diagram-core verifies spec:consumers.spec-studio.diagram-kinds.legibility · anchored
  • test:protocol.studio-diagram-core verifies spec:consumers.spec-studio.diagram-kinds.edge-routing · anchored
  • test:protocol.studio-diagram-core verifies spec:consumers.spec-studio.diagram-kinds.mermaid-source · anchored
  • test:protocol.studio-diagram-core verifies spec:consumers.spec-studio.diagram-kinds.requirement-trace · anchored
  • test:protocol.studio-slice-architecture verifies spec:consumers.spec-studio.diagram-kinds.scoped-architecture · anchored
  • test:protocol.studio-slice-dependency verifies spec:consumers.spec-studio.diagram-kinds.dependency · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

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

Decisions

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.

  • impl:protocol.studio-capability-diagrams · places refinement occurrences and bounded branches from the capability map · src/projections/studio/diagrams/capability.ts:101

    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.studio-diagram-layout · title-first box placement, wrapping and band sizing for desktop and phone · src/projections/studio/diagrams/layout.ts:140

    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.studio-diagram-source · escaped Mermaid flowchart and mindmap source in placed box order · src/projections/studio/diagrams/mermaid.ts:13

    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.studio-diagrams · deterministic grid and band layouts with bounded folds and full text equivalents · src/projections/studio/diagrams/svg.ts:73

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

    Uses

    • impl:protocol.studio-diagram-model · shared diagram boxes, edges and drawing bounds · src/projections/studio/diagrams/model.ts:1
  • impl:protocol.studio-maturity-map · places resolved Pack members by their stated rung and floor in authored order · src/projections/studio/pages/maturity-map.ts:7

    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.studio-requirement-diagram · folds requirement bindings by relation direction and claim and serializes exact relations · src/projections/studio/diagrams/requirement.ts:12

    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.studio-slice-architecture · selected component grid with distinct planned identities and complete unit edges · src/projections/studio/diagrams/slice.ts:219

    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.studio-slice-dependencies · supplied depth bands with protected boundary boxes and lossless text · src/projections/studio/diagrams/slice.ts:10

    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.diagram-kinds
The diagram as text
  • spec:consumers.spec-studio.capability-map-page: The capability map page makes refinement readable by epic
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values
  • spec:consumers.spec-studio.diagram-kinds.capability-tree: A refinement drawing follows the capability map
  • spec:consumers.spec-studio.diagram-kinds.dependency: A dependency drawing shows the declared footing of a Spec set
  • spec:consumers.spec-studio.diagram-kinds.edge-routing: Edges route around boxes with deterministic orthogonal paths
  • spec:consumers.spec-studio.diagram-kinds.legibility: A diagram preserves readable labels before zoom
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture: The maturity map is drawn as a grid of counts
  • spec:consumers.spec-studio.diagram-kinds.mermaid-source: A diagram offers Mermaid source as copyable text
  • spec:consumers.spec-studio.diagram-kinds.requirement-trace: A requirement drawing separates intent from realization and verification
  • 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:decisions.studio-diagram-renderer: The engine lays out every Studio diagram as static SVG when the page set is built
  • spec:consumers.spec-studio.diagram-kinds decidedBy spec:decisions.studio-diagram-renderer · declared — every new kind is laid out by the engine at build time as the renderer decision rules
  • spec:consumers.spec-studio.diagram-kinds refines spec:consumers.spec-studio.diagrams · declared
  • spec:consumers.spec-studio.capability-map-page dependsOn spec:consumers.spec-studio.diagram-kinds · declared — the refinement drawing shares the Studio's diagram layout and accessible text contract
  • spec:consumers.spec-studio.diagram-kinds.capability-tree refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.dependency refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.edge-routing refines spec:consumers.spec-studio.diagram-kinds · declared — arrows that cover no label serve the readable drawings the diagram kinds state
  • spec:consumers.spec-studio.diagram-kinds.legibility refines spec:consumers.spec-studio.diagram-kinds · declared — readable labels are part of the outcome the diagram kinds state
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.mermaid-source refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.requirement-trace refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture refines spec:consumers.spec-studio.diagram-kinds · 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

Distance 3

Distance 4

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingThe engine lays out every Studio diagram as static SVG when the page set is built
spec:decisions.studio-diagram-renderer · resolves
declaredevery new kind is laid out by the engine at build time as the renderer decision rulesNone
refines · outgoingA diagram is laid out from graph values into SVG with a text equivalent
spec:consumers.spec-studio.diagrams · resolves
declaredNoneNone
dependsOn · incomingThe capability map page makes refinement readable by epic
spec:consumers.spec-studio.capability-map-page · resolves
declaredthe refinement drawing shares the Studio's diagram layout and accessible text contractNone
refines · incomingA refinement drawing follows the capability map
spec:consumers.spec-studio.diagram-kinds.capability-tree · resolves
declaredNoneNone
refines · incomingA dependency drawing shows the declared footing of a Spec set
spec:consumers.spec-studio.diagram-kinds.dependency · resolves
declaredNoneNone
refines · incomingEdges route around boxes with deterministic orthogonal paths
spec:consumers.spec-studio.diagram-kinds.edge-routing · resolves
declaredarrows that cover no label serve the readable drawings the diagram kinds stateNone
refines · incomingA diagram preserves readable labels before zoom
spec:consumers.spec-studio.diagram-kinds.legibility · resolves
declaredreadable labels are part of the outcome the diagram kinds stateNone
refines · incomingThe maturity map is drawn as a grid of counts
spec:consumers.spec-studio.diagram-kinds.maturity-picture · resolves
declaredNoneNone
refines · incomingA diagram offers Mermaid source as copyable text
spec:consumers.spec-studio.diagram-kinds.mermaid-source · resolves
declaredNoneNone
refines · incomingA requirement drawing separates intent from realization and verification
spec:consumers.spec-studio.diagram-kinds.requirement-trace · resolves
declaredNoneNone
refines · incomingA Spec set draws the architecture it touches
spec:consumers.spec-studio.diagram-kinds.scoped-architecture · resolves
declaredNoneNone

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
  • impl:protocol.studio-capability-diagrams · places refinement occurrences and bounded branches from the capability map · src/projections/studio/diagrams/capability.ts:101 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagram-layout · title-first box placement, wrapping and band sizing for desktop and phone · src/projections/studio/diagrams/layout.ts:140 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagram-source · escaped Mermaid flowchart and mindmap source in placed box order · src/projections/studio/diagrams/mermaid.ts:13 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagrams · deterministic grid and band layouts with bounded folds and full text equivalents · src/projections/studio/diagrams/svg.ts:73 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-maturity-map · places resolved Pack members by their stated rung and floor in authored order · src/projections/studio/pages/maturity-map.ts:7 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-requirement-diagram · folds requirement bindings by relation direction and claim and serializes exact relations · src/projections/studio/diagrams/requirement.ts:12 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-slice-architecture · selected component grid with distinct planned identities and complete unit edges · src/projections/studio/diagrams/slice.ts:219 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-slice-dependencies · supplied depth bands with protected boundary boxes and lossless text · src/projections/studio/diagrams/slice.ts:10 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.studio-diagram-catalog · anchored · test/studio-diagram-catalog.test.ts:12 · 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.