Spec Studio

The panels for examples, targets, verifiers and evidence

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

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

Design: 8 design entries · no pinned declarations · 2 decisions

Findings: no errors, no warnings

specs/consumers/spec-studio.verification-panels.sdp.md

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

The graph records that a verifier binding exists and never a run, and a static page runs nothing, so the panels show bindings and offer no run of an example. A run result shows only when the build was given run records, and then as evidence from a test file. No Spec designs a source for build attestations, deployments or bills of materials, so each reads not tracked. Moving a constraint target on a slider and running a scenario harness wait for designs of their own, as the HTML surface decision records; a panel action composes intent instead.

Intent
outcome
Show on a Spec page how far each example, constraint target and verifier goes, and what runtime evidence exists, without stating more than the graph records.
Behavior
rule.executableSpec line 29 · specs/consumers/spec-studio.verification-panels.sdp.md:29
An example card shows the example's verifier as a binding that exists, and the example as an Executable Spec when a test anchor binds it, never as a test that passed.

no example exercises it

rule.bindingsOnly line 30 · specs/consumers/spec-studio.verification-panels.sdp.md:30
A panel shows verifier bindings and states no run result of its own; with the run records input, a verifier's row adds the results recipe 45 joins from its test file, labelled as external run evidence from that file, as spec:observation.run-evidence states, and never as the verifier's verdict.

no example exercises it

rule.evidenceNotTracked line 31 · specs/consumers/spec-studio.verification-panels.sdp.md:31
The evidence panel shows only runtime evidence the graph records, and reads not tracked while no delivery fact records an observation.

no example exercises it

rule.composeActions line 32 · specs/consumers/spec-studio.verification-panels.sdp.md:32
Each panel action gathers intent in the composing panel, scoped to the Spec, the example or the entry it sits beside, and changes nothing on the page.

no example exercises it

rule.ruleCoverage line 33 · specs/consumers/spec-studio.verification-panels.sdp.md:33
Beside each keyed rule or flow, the panel lists the examples recipe 34 reports exercising it, each linked with enabled or not enabled in words, and a keyed rule no example exercises reads no example exercises it; the unkeyed rules are counted after the list.

spec:consumers.spec-studio.verification-panels.rule-coverage · enabled

rule.coverageGrid line 34 · specs/consumers/spec-studio.verification-panels.sdp.md:34
A Spec that owns an example space shows recipe 44's coverage: each enumerable slot with each of its declared values and the examples that bind it, a value no example binds reading no example; each other slot with the values its examples bind and the words not enumerable; and the examples that leave a slot unbound.

no example exercises it

0 unkeyed rules.

Verifying examples

Each keyed rule shows the examples that exercise it, or that none does · spec:consumers.spec-studio.verification-panels.rule-coverage · ready floor ready

Executable Spec

Given a Spec whose keyed rule {exercisedKey: "paid"} an enabled example exercises and whose keyed rule {otherKey: "refunded"} no example exercises
When the build renders the Spec's page
Then beside the first rule the panel lists the example as {enabledWords: "enabled"}
Then beside the second rule the panel reads {unexercised: "no example exercises it"}

Open example

Example space

Given a Spec whose keyed rule {exercisedKey:string} an enabled example exercises and whose keyed rule {otherKey:string} no example exercises
When the build renders the Spec's page
Then beside the first rule the panel lists the example as {enabledWords:"enabled"|"not enabled"}
Then beside the second rule the panel reads {unexercised:string}
UI

The panels' parts in page order.

ruleList line 38 · specs/consumers/spec-studio.verification-panels.sdp.md:38
rules and flows in authored order, each keyed entry with its rule address, recorded carrier line and the examples that exercise it, followed by the example cards; an unrecorded line stays absent.
exampleCard line 39 · specs/consumers/spec-studio.verification-panels.sdp.md:39
one card per example that verifies the Spec: its title linked; its stated readiness and whether it is an Executable Spec; its given, when and then steps as preformatted text with their bound values; and actions to open the example's page and to compose intent to edit it.
unwrittenExampleCard line 40 · specs/consumers/spec-studio.verification-panels.sdp.md:40
an example with no given, when and then steps yet says so, and offers an action that composes intent proposing them.
constraintTarget line 41 · specs/consumers/spec-studio.verification-panels.sdp.md:41
each constraint with its flavor, its statement and its target as authored, and a measured value only when the graph records one, otherwise not tracked, with an action that composes intent to change the target.
unsetTarget line 42 · specs/consumers/spec-studio.verification-panels.sdp.md:42
a constraint with no target says so, and offers an action that composes intent proposing one.
verifierList line 43 · specs/consumers/spec-studio.verification-panels.sdp.md:43
each verifier with its id, its binding, and its recorded repository-relative file and line as text, as spec:consumers.spec-studio.spec-page#rule.sourceText states, no line invented for a verifier the graph does not locate; given run records, under each verifier the results joined from the test file that binds it, a test anchor's own file or, for an example, the file of the test anchor that verifies the example, each with its run, name, result in words and duration, headed External run evidence from <file>.
coverageGrid line 44 · specs/consumers/spec-studio.verification-panels.sdp.md:44
one table per enumerable slot, a row per declared value with the examples that bind it or no example; one line per other slot with the values bound and not enumerable; then Unbound with the examples that bind no value for a slot; and an action that composes intent proposing examples for the values no example binds.
evidencePanel line 45 · specs/consumers/spec-studio.verification-panels.sdp.md:45
runtime observation reads not tracked under the binding-language rule; build attestations, deployments and bills of materials show no payload and each reads not tracked until a Spec designs its source.
Verification

Verifier bindings

  • spec:consumers.spec-studio.verification-panels.rule-coverage · Each keyed rule shows the examples that exercise it, or that none does · declared · example enabled · specs/consumers/spec-studio.verification-panels.rule-coverage.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-panels · anchored · test anchor binding present · test/studio-s2.test.ts:256

Example space

  • exercisedKey · string · declared by a Spec whose keyed rule {exercisedKey} an enabled example exercises and whose keyed rule {otherKey} no example exercises
  • otherKey · string · declared by a Spec whose keyed rule {exercisedKey} an enabled example exercises and whose keyed rule {otherKey} no example exercises

Bound points

ExampleexercisedKeyotherKey
spec:consumers.spec-studio.verification-panels.rule-coverage"paid""refunded"

Oracle binding: present · oracle:protocol.studio-rule-coverage · test/studio-s2.test.ts:193

Coverage

exercisedKey: "paid" · spec:consumers.spec-studio.verification-panels.rule-coverage · not enumerable

otherKey: "refunded" · spec:consumers.spec-studio.verification-panels.rule-coverage · not enumerable

Unbound

  • exercisedKey: None
  • otherKey: None
Design view

Requirement drawing

Requirement drawing for spec:consumers.spec-studio.verification-panels
Requirement drawing for spec:consumers.spec-studio.verification-panelssatisfies · anchoredsatisfies · anchoredmodels · anchoredrefines · declaredrefines, verifies · declaredverifies · anchoredverifies · anchoredIntended Specsspec:consumers.spec-studio.verification-panelsThe panels for examples,targets, verifiers andevidence…consumers.spec-studio.verification-panelsdeclared SpecDeclared verifying examplesspec:consumers.spec-studio.verification-panels.rule-coverageEach keyed rule shows theexamples that exercise it,or that none does…consumers.spec-studio.verification-panels.rule-coveragedeclared SpecSatisfying or referencingunitsimpl:protocol.studio-run-rowsrenders recipe 45 file rowsshared by the runs page andverification panel…protocol.studio-run-rowsanchored codeimpl:protocol.studio-verification-panelsrenders rule coverage,example cards, constrainttargets, verifiers andexample-space coverage…protocol.studio-verification-panelsanchored codeTest or oracle bindingsoracle:protocol.studio-rule-coverageoracle:protocol.studio-rule-coverageoracle:protocol.studio-rule-coverageanchored oracle bindingtest:protocol.studio-panelstest:protocol.studio-panels…protocol.studio-panelsanchored test binding ·binding presenttest:protocol.studio-rule-coveragetest:protocol.studio-rule-coveragetest:protocol.studio-rule-coverageanchored test binding ·binding presentOutside the selected setspec:consumers.spec-studio.spec-pageA Spec page shows one Specin collapsible panels, in afixed order…consumers.spec-studio.spec-pagedeclared Spec
The diagram as text
  • 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.spec-page: A Spec page shows one Spec in collapsible panels, in a fixed order · declared Spec
  • 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-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-rule-coverage: oracle:protocol.studio-rule-coverage · anchored oracle binding · test/studio-s2.test.ts:193
  • 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.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-run-rows satisfies spec:consumers.spec-studio.verification-panels · anchored
  • impl:protocol.studio-verification-panels satisfies spec:consumers.spec-studio.verification-panels · anchored
  • oracle:protocol.studio-rule-coverage models spec:consumers.spec-studio.verification-panels · 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 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-run-rows · renders recipe 45 file rows shared by the runs page and verification panel · src/projections/studio/pages/run-rows.ts:69

    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-verification-panels · renders rule coverage, example cards, constraint targets, verifiers and example-space coverage · src/projections/studio/pages/spec-verification.ts:74

    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.verification-panels
The diagram as text
  • spec:consumers.agent-surface.example-space-coverage: Example spaces report which values their examples cover
  • spec:consumers.spec-studio.intent-panel: A composing panel on every page gathers scoped intent for an agent
  • spec:consumers.spec-studio.spec-page: A Spec page shows one Spec in collapsible panels, in a fixed order
  • spec:consumers.spec-studio.verification-panels: The panels for examples, targets, verifiers and evidence
  • spec:consumers.spec-studio.verification-panels.rule-coverage: Each keyed rule shows the examples that exercise it, or that none does
  • spec:decisions.binding-not-liveness: Bindings state existence, not liveness
  • spec:decisions.verification-posture-not-realization: Verification mode states posture, not realization
  • spec:extraction.executable-contracts: The build derives step and space contracts from graph examples
  • spec:model.rule-keys: A rule or flow entry may carry a key that addresses it
  • spec:observation.run-evidence: CI run records are joined to verifiers in a view
  • spec:consumers.spec-studio.verification-panels decidedBy spec:decisions.binding-not-liveness · declared
  • spec:consumers.spec-studio.verification-panels decidedBy spec:decisions.verification-posture-not-realization · declared
  • spec:consumers.spec-studio.verification-panels dependsOn spec:consumers.agent-surface.example-space-coverage · declared — the grid renders recipe 44's per-slot coverage
  • spec:consumers.spec-studio.verification-panels dependsOn spec:consumers.spec-studio.intent-panel · declared — each panel action gathers intent in the composing panel
  • spec:consumers.spec-studio.verification-panels dependsOn spec:extraction.executable-contracts · declared
  • spec:consumers.spec-studio.verification-panels dependsOn spec:model.rule-keys · declared
  • spec:consumers.spec-studio.verification-panels dependsOn spec:observation.run-evidence · declared — with run records, a verifier's row adds the results recipe 45 joins from its test file
  • 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
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

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingBindings state existence, not liveness
spec:decisions.binding-not-liveness · resolves
declaredNoneNone
decidedBy · outgoingVerification mode states posture, not realization
spec:decisions.verification-posture-not-realization · resolves
declaredNoneNone
dependsOn · outgoingExample spaces report which values their examples cover
spec:consumers.agent-surface.example-space-coverage · resolves
declaredthe grid renders recipe 44's per-slot coverageNone
dependsOn · outgoingA composing panel on every page gathers scoped intent for an agent
spec:consumers.spec-studio.intent-panel · resolves
declaredeach panel action gathers intent in the composing panelNone
dependsOn · outgoingThe build derives step and space contracts from graph examples
spec:extraction.executable-contracts · resolves
declaredNoneNone
dependsOn · outgoingA rule or flow entry may carry a key that addresses it
spec:model.rule-keys · resolves
declaredNoneNone
dependsOn · outgoingCI run records are joined to verifiers in a view
spec:observation.run-evidence · resolves
declaredwith run records, a verifier's row adds the results recipe 45 joins from its test fileNone
refines · outgoingA Spec page shows one Spec in collapsible panels, in a fixed order
spec:consumers.spec-studio.spec-page · resolves
declaredNoneNone
refines · incomingEach keyed rule shows the examples that exercise it, or that none does
spec:consumers.spec-studio.verification-panels.rule-coverage · resolves
declaredNoneNone
verifies · incomingEach keyed rule shows the examples that exercise it, or that none does
spec:consumers.spec-studio.verification-panels.rule-coverage · resolves
declaredNoneruleCoverage

Bindings

Implementation binding: present

  • impl:protocol.studio-run-rows · renders recipe 45 file rows shared by the runs page and verification panel · src/projections/studio/pages/run-rows.ts:69 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-verification-panels · renders rule coverage, example cards, constraint targets, verifiers and example-space coverage · src/projections/studio/pages/spec-verification.ts:74 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • spec:consumers.spec-studio.verification-panels.rule-coverage · Each keyed rule shows the examples that exercise it, or that none does · declared · specs/consumers/spec-studio.verification-panels.rule-coverage.sdp.md · example enabled
  • test:protocol.studio-panels · anchored · test/studio-s2.test.ts:256 · test anchor

Expected-outcome oracle: present

  • oracle:protocol.studio-rule-coverage · test/studio-s2.test.ts:193

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

Composing (0)

Composing needs the script.