Spec Studio

The evidence lens names each source of runtime evidence and reads it as not tracked

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

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

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

Findings: no errors, no warnings

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

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

The graph derives no observation yet, and no Spec designs a source for build attestations, deployments or bills of materials, so every row of this lens reads not tracked. The lens stays in the navigation so a reader sees what is not tracked rather than assuming it is.

Intent
outcome
Let a person see which kinds of runtime evidence the Studio could show, and that none is tracked until the graph records it.
Behavior
rule.notTracked line 18 · specs/consumers/spec-studio.lenses.evidence.sdp.md:18
The lens lists four sources, runtime observation, build attestations, deployments and software bills of materials, and reads each as not tracked: no delivery fact records an observation, and no Spec designs a source for the other three.

no example exercises it

rule.noInvention line 19 · specs/consumers/spec-studio.lenses.evidence.sdp.md:19
The lens shows no payload, measurement or state it was not given, and never says that a Spec is live, deployed or attested.

no example exercises it

rule.runsElsewhere line 20 · specs/consumers/spec-studio.lenses.evidence.sdp.md:20
CI run records are test evidence: they show in the tests lens and on the runs page when the build is given them, and never in this lens.

no example exercises it

0 unkeyed rules.

UI
evidenceList line 23 · specs/consumers/spec-studio.lenses.evidence.sdp.md:23
one line per source, its name, then not tracked, then what would bring it in: an observation the graph records against a measurable target, or a Spec that designs the source.
Verification

Verifier bindings

  • test:protocol.studio-lenses · anchored · test anchor binding present · test/studio-s1.test.ts:273

    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
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.lenses.evidence
The diagram as text
  • spec:consumers.spec-studio.lenses.evidence: The evidence lens names each source of runtime evidence and reads it as not tracked · declared Spec
  • spec:consumers.spec-studio.lenses: Five lenses read the graph as Packs, capabilities, architecture, tests and evidence · declared Spec
  • impl:protocol.studio-evidence-lens: names the four evidence sources and what would bring each into the Studio · anchored code · src/projections/studio/pages/evidence-page.ts:3
  • test:protocol.studio-lenses: test:protocol.studio-lenses · anchored test binding · binding present · test/studio-s1.test.ts:273
  • spec:consumers.spec-studio.lenses.evidence refines spec:consumers.spec-studio.lenses · declared
  • impl:protocol.studio-evidence-lens satisfies spec:consumers.spec-studio.lenses.evidence · anchored
  • test:protocol.studio-lenses verifies spec:consumers.spec-studio.lenses.evidence · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

Preferred and chosen syntax: requirementDiagram; exact refines, satisfies and verifies, with claim words in nodes and per-edge comments.

Decisions

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-evidence-lens · names the four evidence sources and what would bring each into the Studio · src/projections/studio/pages/evidence-page.ts:3

    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.evidence
The diagram as text
  • spec:consumers.spec-studio.lenses: Five lenses read the graph as Packs, capabilities, architecture, tests and evidence
  • spec:consumers.spec-studio.lenses.evidence: The evidence lens names each source of runtime evidence and reads it as not tracked
  • spec:decisions.binding-not-liveness: Bindings state existence, not liveness
  • spec:consumers.spec-studio.lenses.evidence decidedBy spec:decisions.binding-not-liveness · declared
  • spec:consumers.spec-studio.lenses.evidence refines spec:consumers.spec-studio.lenses · 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

No Spec rests on this Spec.

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingBindings state existence, not liveness
spec:decisions.binding-not-liveness · resolves
declaredNoneNone
refines · outgoingFive lenses read the graph as Packs, capabilities, architecture, tests and evidence
spec:consumers.spec-studio.lenses · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.studio-evidence-lens · names the four evidence sources and what would bring each into the Studio · src/projections/studio/pages/evidence-page.ts:3 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.studio-lenses · anchored · test/studio-s1.test.ts:273 · 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.