Spec Studio

A Spec page shows one Spec in collapsible panels, in a fixed order

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

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

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

Findings: no errors, no warnings

specs/consumers/spec-studio.spec-page.sdp.md

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

The original runtime panel linked Fastify routes to Effect programs, showed what Effect layers provided and required, and recorded Awilix registrations and their lifetimes, beside ports and external systems. That representation is lineage evidence in docs/lineage/v0-design/07-spec-studio-and-projections.md, section 2.3, Section F. The structural anchors record identity, component membership, uses, role, and a component's architectural layer and context, so the runtime panel shows that structural neighborhood and no more until a reader asks for more of the runtime composition.

The page shows only what the graph and the build's named inputs hold. The original header's owner, tags and last-verified time, its schema bindings and its UI / Stories section have no graph value behind them, so the page shows none of them.

Intent
outcome
Show everything the graph holds about one Spec on one page, in panels a person opens and closes one at a time.
Behavior
rule line 42 · specs/consumers/spec-studio.spec-page.sdp.md:42
Each panel collapses and expands on its own.
rule line 43 · specs/consumers/spec-studio.spec-page.sdp.md:43
The page's core, its header, sections, relations, bindings and findings, is the one spec:consumers.spec-studio.spec-page.core states, and the panels below add to it.
rule.sourceText line 44 · specs/consumers/spec-studio.spec-page.sdp.md:44
Every Spec and Pack a panel names links to its page. A code unit, component or anchor shows its id and its recorded repository-relative file and line as text, with an action that copies file:line; the page set holds no code-unit page and writes no editor URI, absolute path or assumed source URL; a recorded file and line become a link only when a stamp beside the page set names a source template, as spec:consumers.spec-studio.sharing states; a component's attributes, members and uses show in the architecture lens, which its id links to.

no example exercises it

rule.panelOrder line 45 · specs/consumers/spec-studio.spec-page.sdp.md:45
After the core's sections the page adds five panels, in this order, each open by default: Verification, Design view, Runtime, Evidence and Impact; a panel with nothing to show says so in one sentence and stays in its place; the core's relations, bindings and findings follow them.

no example exercises it

rule.sectionAdditions line 46 · specs/consumers/spec-studio.spec-page.sdp.md:46
Inside the core's sections the page adds a composing action beside each keyed entry that proposes new text for it, the composing actions beside each open question, the rule coverage beside each keyed rule or flow and the example cards after the rules, each constraint's target, the citations beside each cited entry, and an element id on each keyed term, as the rules below state.

no example exercises it

rule.termIds line 47 · specs/consumers/spec-studio.spec-page.sdp.md:47
Each keyed Model term in the core's Model section carries the element id term.<key>, its address after the #, and shows its key and its recorded line, as the core's entry ids do.

no example exercises it

rule.citations line 48 · specs/consumers/spec-studio.spec-page.sdp.md:48
Beside each keyed entry an anchored source file cites, its section lists every citing file and line recipe 51 records, as text with a copy action; a pinned declaration no file cites reads no citation recorded.

spec:consumers.spec-studio.spec-page.cited-declaration · enabled

rule.designView line 49 · specs/consumers/spec-studio.spec-page.sdp.md:49
The Design view panel draws the requirement drawing defined by spec:consumers.spec-studio.diagram-kinds.requirement-trace in place of realization, then lists the decision records the Spec names through decidedBy with linked titles and decision text inline. The Runtime panel retains the implementation anchors' components and uses.

no example exercises it

rule.runtime line 50 · specs/consumers/spec-studio.spec-page.sdp.md:50
The Runtime panel shows the structural neighborhood of the Spec's implementation anchors: each anchor's component with its layer and context, and the units it uses, each with its file and line; runtime observation reads not tracked.

no example exercises it

rule.impact line 51 · specs/consumers/spec-studio.spec-page.sdp.md:51
The Impact panel draws the Spec's trace graph, one hop each way, and then lists what it rests on with each target's stated and derived rung, from recipe 21, and every Spec that rests on it to any depth, by distance, with the units, enabled verifiers and Packs each brings, from recipe 30.

no example exercises it

rule.diffChangeNote line 52 · specs/consumers/spec-studio.spec-page.sdp.md:52
Given a base graph, a line under the header names the base and lists the Spec's changed parts, as spec:consumers.spec-studio.diff-page states.

no example exercises it

2 unkeyed rules.

Verifying examples

A pinned declaration shows the test line that cites it · spec:consumers.spec-studio.spec-page.cited-declaration · ready floor ready

Executable Spec

Given a Spec with two pinned declarations, the first of which an anchored test file {file: "test/orders.test.ts"} cites at line {line: 12}
When the build renders the Spec's page
Then beside the first declaration the page lists {cited: "test/orders.test.ts:12"}
Then beside the second declaration the page reads {uncited: "no citation recorded"}

Open example

Example space

Given a Spec with two pinned declarations, the first of which an anchored test file {file:string} cites at line {line:number}
When the build renders the Spec's page
Then beside the first declaration the page lists {cited:string}
Then beside the second declaration the page reads {uncited:string}
UI

The panels the core does not hold, in page order.

entryAction line 56 · specs/consumers/spec-studio.spec-page.sdp.md:56
beside each keyed entry, an action that composes intent proposing new text for it, with the entry's address as the change's scope and as the address it replaces.
intentActions line 57 · specs/consumers/spec-studio.spec-page.sdp.md:57
beside each open question, actions that compose intent to resolve it or to promote it to a decision record.
behaviorAdditions line 58 · specs/consumers/spec-studio.spec-page.sdp.md:58
beside each keyed rule or flow, its exercising examples as spec:consumers.spec-studio.verification-panels lays them out, then the example cards and unwritten example cards.
constraintsAdditions line 59 · specs/consumers/spec-studio.spec-page.sdp.md:59
each constraint with its target, laid out as spec:consumers.spec-studio.verification-panels states.
citationList line 60 · specs/consumers/spec-studio.spec-page.sdp.md:60
under a cited entry, Cited at and each citing file and line with a copy action, the citing anchor's id as code when the citation names one.
verificationPanel line 61 · specs/consumers/spec-studio.spec-page.sdp.md:61
the verifier list, with run evidence given run records, then the coverage grid when the Spec owns an example space, laid out as spec:consumers.spec-studio.verification-panels states; the panel's element id is panel.verification.
designViewPanel line 62 · specs/consumers/spec-studio.spec-page.sdp.md:62
The requirement drawing, with the text equivalent naming each binding's id, source file and line under the source-text rule, then the decision records and their decision text; its element id remains panel.design-view.
runtimePanel line 63 · specs/consumers/spec-studio.spec-page.sdp.md:63
the structural neighborhood of the Spec's implementation anchors, each anchor's component and the code units it uses, with file and line, then Runtime observation: not tracked; the panel's element id is panel.runtime.
evidencePanel line 64 · specs/consumers/spec-studio.spec-page.sdp.md:64
the evidence fields and absence labels spec:consumers.spec-studio.verification-panels states, with no invented build, deployment, measurement or bill-of-materials data; the panel's element id is panel.evidence.
impactPanel line 65 · specs/consumers/spec-studio.spec-page.sdp.md:65
the trace graph, then Rests on and Rested on by lists, the second grouped by distance, each row with its units, enabled verifiers and Packs; the panel's element id is panel.impact.
Verification

Verifier bindings

  • spec:consumers.spec-studio.spec-page.cited-declaration · A pinned declaration shows the test line that cites it · declared · example enabled · specs/consumers/spec-studio.spec-page.cited-declaration.sdp.md

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

    Test anchors: test:protocol.studio-cited-declaration, test:protocol.studio-panels, test:protocol.studio-rule-coverage. Specs verified by those bindings: spec:consumers.spec-studio.pack-page.maturity-map, spec:consumers.spec-studio.spec-page, spec:consumers.spec-studio.spec-page.cited-declaration, spec:consumers.spec-studio.verification-panels, spec:consumers.spec-studio.verification-panels.rule-coverage.

    Run 1: external run evidence from vitest 4.1.10

    Build: CI 391 · Branch: cursor/media-plan-and-articles-09b1 · Commit: 076cd4f1f85640d8236e5cca1bffffa68ab79a33 · Start: 2026-10-31T15:32:20.471Z · Stop: 2026-10-31T15:34:02.073Z

    NameSuiteResultDuration
    marks every displayed file and line across the Studio page set for source linksnot recordedpassed109.94 ms
    renders citation labels consistently on Spec and declaration pagesnot recordedpassed39.55 ms
    executes the bound example against a fresh worldA pinned declaration shows the test line that cites it (spec:consumers.spec-studio.spec-page.cited-declaration)passed12.75 ms
    executes the bound example against a fresh worldEach keyed rule shows the examples that exercise it, or that none does (spec:consumers.spec-studio.verification-panels.rule-coverage)passed16.15 ms
    renders the five open panels in order, the space, bound values, absent evidence, and empty composing slotsSpec panelspassed14.06 ms
    gives keyed terms address ids, source lines, and citations while hiding termKeys metadataSpec panelspassed15.16 ms
    places resolved Pack members in stated/floor cells in authored orderSpec panelspassed22.35 ms
    keeps the maturity heading and axis explanations inside the embeddable elementSpec panelspassed20.36 ms
    distinguishes test lines from citations by files with unrelated anchorsSpec panelspassed21.31 ms
    renders composing slots beside unkeyed questions using the Spec scopeSpec panelspassed14.33 ms
    keeps the unbound-verifier sentence to graph bindings without run inputSpec panelspassed19.45 ms
    renders source locations, component links, decisions and transitive impact by distanceStructural panels and targetspassed30.62 ms
    states absence on unwritten examples and unset constraint targetsStructural panels and targetspassed22.85 ms
    labels a keyed rule's unbound example as not enabledStructural panels and targetspassed10.05 ms
    renders structure from recipe answers and reader records without exposing raw graph dataStructural panels and targetspassed19.72 ms
    renders verifying examples for a Model without Behavior and keeps short cards to their summarynot recordedpassed10.67 ms
    keeps example steps and composing actions outside a short Spec cardnot recordedpassed18.09 ms
    keeps trace and requirement description and arrow ids distinct for one Spec subjectnot recordedpassed15.14 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 391 · Branch: cursor/media-plan-and-articles-09b1 · Commit: 076cd4f1f85640d8236e5cca1bffffa68ab79a33 · Start: 2026-10-31T15:32:20.471Z · Stop: 2026-10-31T15:34:02.073Z

    NameSuiteResultDuration
    orders both matrix axes by layer and id, links counts to supporting unit edges and keeps zeros compactarchitecture tables and registerpassed73.28 ms
    groups unfamiliar and omitted roles in code-unit order, with source rows and separate binding listsarchitecture tables and registerpassed32.56 ms
    draws equal categorical cells, exact counts and marks with ordered complete lists and unresolved members apartmaturity picturepassed46.28 ms
    places the map inside the page's expander so a cell link opens its member listmaturity picturepassed24.84 ms
    puts a uniform map behind a closed disclosure and uses solid fill above the mark boundmaturity picturepassed392.9 ms
    selects the subject, refiners and verifying examples and keeps declared and anchored claims separaterequirement drawingpassed36.4 ms
    keeps a refining verifier in the examples band and outside Specs apartrequirement drawingpassed12.74 ms
    offers requirement syntax for the supported exact relation subsetrequirement drawingpassed16.94 ms
    counts the subject example when reporting selected verifying examplesrequirement drawingpassed8.34 ms
    folds the largest exact relation group deterministically and keeps every original binding in textnot recordedpassed5.8 ms
    keeps a sparse large uses matrix readable with one visible zero legend and hidden cell wordsnot recordedpassed20.31 ms
    contains the matrix's hidden cell words inside their scroll regionnot recordedpassed0.45 ms
    does not assert missing bindings on a boundary Spec whose bindings are outside the selected setnot recordedpassed9.66 ms
    lets full component ids wrap so every uses column fits the printed pagenot recordedpassed0.6 ms
    keeps roles out of the pinned search record while preserving them on graph unitsnot recordedpassed3.09 ms
    lists a unit whose recorded component is missing in No component and in unresolved structurenot recordedpassed4.13 ms
    uses the singular member in a one-member Pack's uniform sentencenot recordedpassed8.24 ms
    states each absent requirement band without implying that a populated drawing is missingnot recordedpassed5.2 ms
    breaks equal requirement fold groups by 'kind' in lexical ordernot recordedpassed3.58 ms
    breaks equal requirement fold groups by 'direction' in lexical ordernot recordedpassed2.34 ms
    breaks equal requirement fold groups by 'claim' in lexical ordernot recordedpassed1.14 ms
    offers only the active relation and member renderers after requirement replaces realizationnot recordedpassed0.26 ms
    applies the closed-source print rule to both requirement and maturity drawingsnot recordedpassed0.29 ms
  • test:protocol.studio-panels · anchored · test anchor binding present · test/studio-s2.test.ts:256

Example space

  • file · string · declared by a Spec with two pinned declarations, the first of which an anchored test file {file} cites at line {line}
  • line · number · declared by a Spec with two pinned declarations, the first of which an anchored test file {file} cites at line {line}

Bound points

Examplefileline
spec:consumers.spec-studio.spec-page.cited-declaration"test/orders.test.ts"12

Oracle binding: present · oracle:protocol.studio-citations · test/studio-s2.test.ts:130

Coverage

file: "test/orders.test.ts" · spec:consumers.spec-studio.spec-page.cited-declaration · not enumerable

line: 12 · spec:consumers.spec-studio.spec-page.cited-declaration · not enumerable

Unbound

  • file: None
  • line: None
Design view

Requirement drawing

Requirement drawing for spec:consumers.spec-studio.spec-page
The diagram as text
  • spec:consumers.spec-studio.spec-page: A Spec page shows one Spec in collapsible panels, in a fixed order · declared Spec
  • spec:consumers.spec-studio.spec-page.cited-declaration: A pinned declaration shows the test line that cites it · declared Spec
  • spec:consumers.spec-studio.spec-page.core: A Spec page's core shows the whole Spec, with an anchor for every entry · declared Spec
  • spec:consumers.spec-studio.verification-panels: The panels for examples, targets, verifiers and evidence · declared Spec
  • spec:consumers.spec-studio.verification-panels.rule-coverage: Each keyed rule shows the examples that exercise it, or that none does · declared Spec
  • spec:consumers.spec-studio: The Spec Studio is a static HTML workbench over the one graph · declared Spec
  • 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-run-rows: renders recipe 45 file rows shared by the runs page and verification panel · anchored code · src/projections/studio/pages/run-rows.ts:69
  • impl:protocol.studio-spec-page: renders Spec intent, relations and realization bindings · anchored code · src/projections/studio/pages/spec-page.ts:201
  • impl:protocol.studio-spec-structure: renders requirement and trace diagrams and the recorded structural neighborhood · anchored code · src/projections/studio/pages/spec-structure.ts:44
  • impl:protocol.studio-verification-panels: renders rule coverage, example cards, constraint targets, verifiers and example-space coverage · anchored code · src/projections/studio/pages/spec-verification.ts:74
  • oracle:protocol.studio-citations: oracle:protocol.studio-citations · anchored oracle binding · test/studio-s2.test.ts:130
  • oracle:protocol.studio-rule-coverage: oracle:protocol.studio-rule-coverage · anchored oracle binding · test/studio-s2.test.ts:193
  • 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-cited-declaration: test:protocol.studio-cited-declaration · anchored test binding · binding present · test/studio-s2.test.ts:139
  • test:protocol.studio-pages: test:protocol.studio-pages · anchored test binding · binding present · test/studio-pages.test.ts:18
  • test:protocol.studio-panels: test:protocol.studio-panels · anchored test binding · binding present · test/studio-s2.test.ts:256
  • test:protocol.studio-rule-coverage: test:protocol.studio-rule-coverage · anchored test binding · binding present · test/studio-s2.test.ts:220
  • spec:consumers.spec-studio.spec-page refines spec:consumers.spec-studio · declared
  • spec:consumers.spec-studio.spec-page.cited-declaration refines spec:consumers.spec-studio.spec-page · declared
  • spec:consumers.spec-studio.spec-page.cited-declaration verifies spec:consumers.spec-studio.spec-page · declared
  • spec:consumers.spec-studio.spec-page.core refines spec:consumers.spec-studio.spec-page · declared
  • spec:consumers.spec-studio.verification-panels refines spec:consumers.spec-studio.spec-page · declared
  • spec:consumers.spec-studio.verification-panels.rule-coverage refines spec:consumers.spec-studio.verification-panels · declared
  • spec:consumers.spec-studio.verification-panels.rule-coverage verifies spec:consumers.spec-studio.verification-panels · declared
  • impl:protocol.studio-requirement-view satisfies spec:consumers.spec-studio.spec-page · anchored
  • impl:protocol.studio-run-rows satisfies spec:consumers.spec-studio.verification-panels · anchored
  • impl:protocol.studio-spec-page satisfies spec:consumers.spec-studio.spec-page.core · anchored
  • impl:protocol.studio-spec-page satisfies spec:consumers.spec-studio.spec-page · anchored
  • impl:protocol.studio-spec-structure satisfies spec:consumers.spec-studio.spec-page · anchored
  • impl:protocol.studio-verification-panels satisfies spec:consumers.spec-studio.verification-panels · anchored
  • oracle:protocol.studio-citations models spec:consumers.spec-studio.spec-page · anchored
  • oracle:protocol.studio-rule-coverage models spec:consumers.spec-studio.verification-panels · anchored
  • test:protocol.studio-architecture-maturity-requirement verifies spec:consumers.spec-studio.spec-page · anchored
  • test:protocol.studio-cited-declaration verifies spec:consumers.spec-studio.spec-page.cited-declaration · anchored
  • test:protocol.studio-pages verifies spec:consumers.spec-studio.spec-page.core · anchored
  • test:protocol.studio-panels verifies spec:consumers.spec-studio.spec-page · anchored
  • test:protocol.studio-panels verifies spec:consumers.spec-studio.verification-panels · anchored
  • test:protocol.studio-rule-coverage verifies spec:consumers.spec-studio.verification-panels.rule-coverage · 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

  • The Design Review renders open-section entries as a list

    The Design Review renders each entry of a design or ui section as a list item in authored order, its key as inline code. A string value renders as Markdown text through the prose escaping rule; a number or boolean renders as inline code; an array or object renders as a fenced JSON block nested under its item, so a structured value the TypeScript carrier admits survives without loss. The fenced-JSON rule of the Design Review stops covering an open section as a whole and keeps covering a structured value inside one entry. The freeze on the four shipped projections stands for everything else.

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-requirement-view · selects Spec refiners, verifying examples and their recorded bindings · src/projections/studio/pages/requirement-view.ts:8

    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-spec-page · renders Spec intent, relations and realization bindings · src/projections/studio/pages/spec-page.ts:201

    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-spec-structure · renders requirement and trace diagrams and the recorded structural neighborhood · src/projections/studio/pages/spec-structure.ts:44

    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.spec-page
  • E6: verifies · declared
The diagram as text
  • spec:consumers.binding-language-views: Views speak binding language, never the internal fact name
  • spec:consumers.derived-readiness-banner: Derived readiness renders beside the stated rung and warns in one direction
  • spec:consumers.pack-design: The Pack context carries the Pack's design
  • spec:consumers.spec-studio: The Spec Studio is a static HTML workbench over the one graph
  • spec:consumers.spec-studio.data: The Studio renders from the reader's values and embeds only what its script reads
  • spec:consumers.spec-studio.diagram-kinds.requirement-trace: A requirement drawing separates intent from realization and verification
  • spec:consumers.spec-studio.diagrams: A diagram is laid out from graph values into SVG with a text equivalent
  • spec:consumers.spec-studio.diff-page: The diff page shows what changed in the design since a base graph
  • spec:consumers.spec-studio.export: A Pack exports as one file, and every page prints as a document
  • spec:consumers.spec-studio.sharing: A Studio build is stamped and shared from a static host
  • spec:consumers.spec-studio.spec-page: A Spec page shows one Spec in collapsible panels, in a fixed order
  • spec:consumers.spec-studio.spec-page.cited-declaration: A pinned declaration shows the test line that cites it
  • spec:consumers.spec-studio.spec-page.core: A Spec page's core shows the whole Spec, with an anchor for every entry
  • spec:consumers.spec-studio.verification-panels: The panels for examples, targets, verifiers and evidence
  • spec:decisions.authored-entry-order: The Design Review renders open-section entries as a list
  • spec:extraction.entry-citations: The graph records where anchored source cites an entry address
  • spec:extraction.entry-locations: The graph records where each addressable entry is written
  • spec:model.open-question-fields: An open question may name who decides it, its links, a provisional reading and a re-entry trigger
  • spec:model.open-question-keys: An open question may carry a key that addresses it
  • spec:model.relation-reasons: An authored relation may carry its reason
  • spec:model.rule-keys: A rule or flow entry may carry a key that addresses it
  • spec:model.term-addresses: A Model term may carry a key that addresses it
  • spec:consumers.spec-studio.spec-page decidedBy spec:decisions.authored-entry-order · declared
  • spec:consumers.spec-studio.spec-page dependsOn spec:consumers.binding-language-views · declared
  • spec:consumers.spec-studio.spec-page dependsOn spec:consumers.derived-readiness-banner · declared
  • spec:consumers.spec-studio.spec-page dependsOn spec:consumers.pack-design · declared
  • spec:consumers.spec-studio.spec-page dependsOn spec:consumers.spec-studio.data · declared
  • spec:consumers.spec-studio.spec-page dependsOn spec:consumers.spec-studio.diagram-kinds.requirement-trace · declared — the Design view reads the selected set and claims the requirement drawing defines
  • spec:consumers.spec-studio.spec-page dependsOn spec:consumers.spec-studio.diagrams · declared — the design view and impact panel draw requirement traceability and the one-hop trace graph
  • spec:consumers.spec-studio.spec-page dependsOn spec:consumers.spec-studio.diff-page · declared — given a base graph, the header's change note links the Spec's row on the diff page
  • spec:consumers.spec-studio.spec-page dependsOn spec:consumers.spec-studio.sharing · declared — a recorded file and line become a link only from a stamp's source template
  • spec:consumers.spec-studio.spec-page dependsOn spec:extraction.entry-citations · declared — the design section shows the source lines that cite each entry
  • spec:consumers.spec-studio.spec-page dependsOn spec:extraction.entry-locations · declared
  • spec:consumers.spec-studio.spec-page dependsOn spec:model.open-question-fields · declared
  • spec:consumers.spec-studio.spec-page dependsOn spec:model.open-question-keys · declared
  • spec:consumers.spec-studio.spec-page dependsOn spec:model.relation-reasons · declared
  • spec:consumers.spec-studio.spec-page dependsOn spec:model.rule-keys · declared
  • spec:consumers.spec-studio.spec-page dependsOn spec:model.term-addresses · declared — a keyed term's address names the element a glossary row links to
  • spec:consumers.spec-studio.spec-page refines spec:consumers.spec-studio · declared
  • spec:consumers.spec-studio.export dependsOn spec:consumers.spec-studio.spec-page · declared — an export holds each member's Spec page content
  • spec:consumers.spec-studio.spec-page.cited-declaration refines spec:consumers.spec-studio.spec-page · declared
  • spec:consumers.spec-studio.spec-page.core refines spec:consumers.spec-studio.spec-page · declared
  • spec:consumers.spec-studio.verification-panels refines spec:consumers.spec-studio.spec-page · declared
  • spec:consumers.spec-studio.spec-page.cited-declaration verifies spec:consumers.spec-studio.spec-page · 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 · outgoingThe Design Review renders open-section entries as a list
spec:decisions.authored-entry-order · resolves
declaredNoneNone
dependsOn · outgoingViews speak binding language, never the internal fact name
spec:consumers.binding-language-views · resolves
declaredNoneNone
dependsOn · outgoingDerived readiness renders beside the stated rung and warns in one direction
spec:consumers.derived-readiness-banner · resolves
declaredNoneNone
dependsOn · outgoingThe Pack context carries the Pack's design
spec:consumers.pack-design · resolves
declaredNoneNone
dependsOn · outgoingThe Studio renders from the reader's values and embeds only what its script reads
spec:consumers.spec-studio.data · resolves
declaredNoneNone
dependsOn · outgoingA requirement drawing separates intent from realization and verification
spec:consumers.spec-studio.diagram-kinds.requirement-trace · resolves
declaredthe Design view reads the selected set and claims the requirement drawing definesNone
dependsOn · outgoingA diagram is laid out from graph values into SVG with a text equivalent
spec:consumers.spec-studio.diagrams · resolves
declaredthe design view and impact panel draw requirement traceability and the one-hop trace graphNone
dependsOn · outgoingThe diff page shows what changed in the design since a base graph
spec:consumers.spec-studio.diff-page · resolves
declaredgiven a base graph, the header's change note links the Spec's row on the diff pageNone
dependsOn · outgoingA Studio build is stamped and shared from a static host
spec:consumers.spec-studio.sharing · resolves
declareda recorded file and line become a link only from a stamp's source templateNone
dependsOn · outgoingThe graph records where anchored source cites an entry address
spec:extraction.entry-citations · resolves
declaredthe design section shows the source lines that cite each entryNone
dependsOn · outgoingThe graph records where each addressable entry is written
spec:extraction.entry-locations · resolves
declaredNoneNone
dependsOn · outgoingAn open question may name who decides it, its links, a provisional reading and a re-entry trigger
spec:model.open-question-fields · resolves
declaredNoneNone
dependsOn · outgoingAn open question may carry a key that addresses it
spec:model.open-question-keys · resolves
declaredNoneNone
dependsOn · outgoingAn authored relation may carry its reason
spec:model.relation-reasons · resolves
declaredNoneNone
dependsOn · outgoingA rule or flow entry may carry a key that addresses it
spec:model.rule-keys · resolves
declaredNoneNone
dependsOn · outgoingA Model term may carry a key that addresses it
spec:model.term-addresses · resolves
declareda keyed term's address names the element a glossary row links toNone
refines · outgoingThe Spec Studio is a static HTML workbench over the one graph
spec:consumers.spec-studio · resolves
declaredNoneNone
dependsOn · incomingA Pack exports as one file, and every page prints as a document
spec:consumers.spec-studio.export · resolves
declaredan export holds each member's Spec page contentNone
refines · incomingA pinned declaration shows the test line that cites it
spec:consumers.spec-studio.spec-page.cited-declaration · resolves
declaredNoneNone
refines · incomingA Spec page's core shows the whole Spec, with an anchor for every entry
spec:consumers.spec-studio.spec-page.core · resolves
declaredNoneNone
refines · incomingThe panels for examples, targets, verifiers and evidence
spec:consumers.spec-studio.verification-panels · resolves
declaredNoneNone
verifies · incomingA pinned declaration shows the test line that cites it
spec:consumers.spec-studio.spec-page.cited-declaration · resolves
declaredNonecitations

Bindings

Implementation binding: present

  • impl:protocol.studio-requirement-view · selects Spec refiners, verifying examples and their recorded bindings · src/projections/studio/pages/requirement-view.ts:8 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-spec-page · renders Spec intent, relations and realization bindings · src/projections/studio/pages/spec-page.ts:201 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-spec-structure · renders requirement and trace diagrams and the recorded structural neighborhood · src/projections/studio/pages/spec-structure.ts:44 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • spec:consumers.spec-studio.spec-page.cited-declaration · A pinned declaration shows the test line that cites it · declared · specs/consumers/spec-studio.spec-page.cited-declaration.sdp.md · example enabled
  • test:protocol.studio-architecture-maturity-requirement · anchored · test/studio-panels.test.ts:35 · test anchor
  • test:protocol.studio-panels · anchored · test/studio-s2.test.ts:256 · test anchor

Expected-outcome oracle: present

  • oracle:protocol.studio-citations · test/studio-s2.test.ts:130

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

Composing (0)

Composing needs the script.