outcomeA requirement drawing separates intent from realization and verification
spec:consumers.spec-studio.diagram-kinds.requirement-tracePacks: pack:roadmaps-and-slices-v1, pack:self-hosting-v1
Design: 8 design entries · 1 pinned declaration · no decisions
Findings: no errors, no warnings
specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md
No open questions and no blocking questions; implementation binding present, verifier binding present, and expected-outcome oracle none.
Intent
- Read a Spec's refinement, satisfying code and verifier bindings in one picture without mistaking a declared example for a running test.
Behavior
rule.exactEdgesline 16 ·specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:16- For the Spec page's selected set, draw declared refines, declared and anchored verifies, and anchored satisfies edges incident on the set, plus anchored verifies on its declared verifying examples. Draw code references and oracle models only as their own named kinds, never as realization or successful verification.
no example exercises it
rule.claimsApartline 17 ·specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:17- Every box and edge names its claim. A declared verifying example with no resolving test says
no test binding; an anchored verifier saysbinding present, never passed. Missing satisfies saysno satisfying binding, never unimplemented by inference through a child. Examples and decision records, which code never satisfies, carry no satisfying-binding label.no example exercises it
rule.foldline 18 ·specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:18- Combine arrows with the same ends, direction and claim into one labelled arrow naming every relation. Fold verifying examples together with their exclusive test bindings beyond a small readable count, naming both claims and counts. Above the shared bound or readable density, fold the largest remaining group within each band by edge kind, direction and claim, ties in that lexical order and then by band order, until it fits. A fold names its relation and claim and hides its internal identity. Keep every original edge and box in the text equivalent. If the fold still cannot fit, omit the drawing and open its text.
no example exercises it
0 unkeyed rules.
Design
placementline 21 ·specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:21- On a Spec page the requirement drawing replaces the realization drawing under its heading; its set is the Spec, the Specs that refine it, and the examples that verify any of them.
bandsline 22 ·specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:22- Place selected non-example Specs, declared verifying examples, satisfying or referencing units, and test or oracle bindings in labelled bands. An example in the selected set always sits in the examples band, including when it also refines a selected Spec. Place Specs outside the selected set in a separate labelled band. Each node has one placement and keeps every edge. Derive each absence statement from the selected examples and recorded edge kinds, never from which bands contain boxes.
exampleFoldCountline 23 ·specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:23- Fold more than
4selected verifying examples, excluding the subject, with their exclusive test bindings; retain the fold only when it lowers layout height. A generic examples-band fold is namedverifying examples, neverrefining Specs. foldTitlesline 24 ·specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:24- Name incoming and outgoing refinement folds
refining Specsandrefined Specs; incoming satisfies, references, anchored verifies and models folds readsatisfying units,referencing units,test bindingsandoracle bindings. Every fold includes its claim and hides its internal identity. wordsBesideStyleline 25 ·specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:25- Box subtitles say
declared Spec,anchored code,anchored test bindingoranchored oracle binding; edge labels carry both the exact relation and claim. Verification modes, risk levels and assertion results are not invented. textEquivalentline 26 ·specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:26- List every full id and title or binding label, each binding's file and line, every exact edge with its claim and reason, and examples with no test binding. This drawing replaces the realization drawing and complements the detailed verification panels.
elementIdsline 27 ·specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:27- Use
diagram.<subject>.requirement.text,.requirement.arrowand.requirement.fold.<kind>.<direction>.<claim>; when the same group occurs in multiple bands, append.band.<band-index>in the stated band order. mermaidKindline 28 ·specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:28requirementDiagramfor the exact refines, satisfies and verifies subset, generic requirement nodes and element nodes for code and bindings; omit risk and verifyMethod. Serialize the original exact relations separately even when the SVG combines their arrow. Put claim words in node text and per-edge comments. Useflowchart TBwith exact labels when references, models or folds require relations requirement syntax cannot express; never rename them traces.no citation recorded
Verification
Verifier bindings
- test:protocol.studio-architecture-maturity-requirement · anchored · test anchor binding present ·
test/studio-panels.test.ts:35External run evidence from
test/studio-panels.test.tsTest 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
Name Suite Result Duration orders both matrix axes by layer and id, links counts to supporting unit edges and keeps zeros compact architecture tables and register passed 73.28 ms groups unfamiliar and omitted roles in code-unit order, with source rows and separate binding lists architecture tables and register passed 32.56 ms draws equal categorical cells, exact counts and marks with ordered complete lists and unresolved members apart maturity picture passed 46.28 ms places the map inside the page's expander so a cell link opens its member list maturity picture passed 24.84 ms puts a uniform map behind a closed disclosure and uses solid fill above the mark bound maturity picture passed 392.9 ms selects the subject, refiners and verifying examples and keeps declared and anchored claims separate requirement drawing passed 36.4 ms keeps a refining verifier in the examples band and outside Specs apart requirement drawing passed 12.74 ms offers requirement syntax for the supported exact relation subset requirement drawing passed 16.94 ms counts the subject example when reporting selected verifying examples requirement drawing passed 8.34 ms folds the largest exact relation group deterministically and keeps every original binding in text not recorded passed 5.8 ms keeps a sparse large uses matrix readable with one visible zero legend and hidden cell words not recorded passed 20.31 ms contains the matrix's hidden cell words inside their scroll region not recorded passed 0.45 ms does not assert missing bindings on a boundary Spec whose bindings are outside the selected set not recorded passed 9.66 ms lets full component ids wrap so every uses column fits the printed page not recorded passed 0.6 ms keeps roles out of the pinned search record while preserving them on graph units not recorded passed 3.09 ms lists a unit whose recorded component is missing in No component and in unresolved structure not recorded passed 4.13 ms uses the singular member in a one-member Pack's uniform sentence not recorded passed 8.24 ms states each absent requirement band without implying that a populated drawing is missing not recorded passed 5.2 ms breaks equal requirement fold groups by 'kind' in lexical order not recorded passed 3.58 ms breaks equal requirement fold groups by 'direction' in lexical order not recorded passed 2.34 ms breaks equal requirement fold groups by 'claim' in lexical order not recorded passed 1.14 ms offers only the active relation and member renderers after requirement replaces realization not recorded passed 0.26 ms applies the closed-source print rule to both requirement and maturity drawings not recorded passed 0.29 ms - test:protocol.studio-diagram-core · anchored · test anchor binding present ·
test/studio-diagram-core.test.ts:37External run evidence from
test/studio-diagram-core.test.tsTest anchors:
test:protocol.studio-copy-source,test:protocol.studio-diagram-core. Specs verified by those bindings: spec:consumers.spec-studio.diagram-kinds.edge-routing, spec:consumers.spec-studio.diagram-kinds.legibility, spec:consumers.spec-studio.diagram-kinds.mermaid-source, spec:consumers.spec-studio.diagram-kinds.requirement-trace, spec:consumers.spec-studio.diagrams, spec:consumers.spec-studio.page-elements.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
Name Suite Result Duration wraps by code point and shortens shared segments without collisions shared diagram core passed 8.85 ms wraps boxes within the width budget and writes an instruction only for final wide drawings shared diagram core passed 3.9 ms routes forward, backward and same-band edges with distinct ports and no shared segments shared diagram core passed 15.19 ms fails closed when routing cannot fit, retaining complete text and no partial source shared diagram core passed 48.26 ms serializes full identities, exact claims, reasons, counts and folds as inert Mermaid data shared diagram core passed 2.03 ms copies the current value of the labelled textarea and selects that same area on clipboard failure not recorded passed 57.44 ms keeps the full box and edge bound routable with obstacles, separate lanes and edge labels not recorded passed 370.5 ms offers deterministic Mermaid source for each existing drawing and pins the safe text syntax not recorded passed 7.07 ms folds reason-bearing trace groups without attributing a member reason to the group not recorded passed 6.45 ms uses the full band budget for a single context and routes adjacent bands inside it not recorded passed 0.58 ms prints exact short relation words and reserves keys for wording that cannot fit not recorded passed 10.14 ms names viewport and instruction ids for trace and secondary views not recorded passed 6.44 ms names the architecture syntax and serializes aliases in displayed box order not recorded passed 0.47 ms routes the current Protocol architecture and recorded adopter architecture with distinct ports and segments not recorded passed 61.67 ms extends overflow rails past earlier labels on the adopter's dense traces not recorded passed 4.04 ms keeps high-degree boxes inside their cells when contexts share a grid not recorded passed 0.78 ms folds nine refining verifiers with their tests within the band budget and keeps every text row not recorded passed 2.44 ms names folded declared refiners by their relation and claim without an internal subtitle not recorded passed 1.61 ms keeps examples apart from refiners when dense requirement groups fold not recorded passed 1.02 ms names refines folds in plain words and preserves direction not recorded passed 1.21 ms names satisfies folds in plain words and preserves direction not recorded passed 2.29 ms names verifies folds in plain words and preserves direction not recorded passed 1.05 ms keeps a short drawing unfolded even with many boxes and incident edges not recorded passed 0.79 ms packs disjoint endpoint intervals into shared horizontal lanes not recorded passed 0.8 ms uses a legend key before spending overflow width on exact words not recorded passed 1.11 ms
Design view
Requirement drawing
- Declared verifying examples: no declared verifying example.
The diagram as text
- 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: The Studio chooses diagram kinds from graph values · declared Spec
- 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 - 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-diagram-core: test:protocol.studio-diagram-core · anchored test binding · binding present ·
test/studio-diagram-core.test.ts:37 - spec:consumers.spec-studio.diagram-kinds.requirement-trace refines spec:consumers.spec-studio.diagram-kinds · declared
- impl:protocol.studio-requirement-diagram satisfies spec:consumers.spec-studio.diagram-kinds.requirement-trace · anchored
- impl:protocol.studio-requirement-view satisfies spec:consumers.spec-studio.diagram-kinds.requirement-trace · anchored
- test:protocol.studio-architecture-maturity-requirement verifies spec:consumers.spec-studio.diagram-kinds.requirement-trace · anchored
- test:protocol.studio-diagram-core verifies spec:consumers.spec-studio.diagram-kinds.requirement-trace · 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
No decision record named.
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-diagram· folds requirement bindings by relation direction and claim and serializes exact relations ·src/projections/studio/diagrams/requirement.ts:12Component:
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-view· selects Spec refiners, verifying examples and their recorded bindings ·src/projections/studio/pages/requirement-view.ts:8Component:
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
The diagram as text
- 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: The Studio chooses diagram kinds from graph values
- spec:consumers.spec-studio.diagram-kinds.requirement-trace: A requirement drawing separates intent from realization and verification
- spec:consumers.spec-studio.spec-page: A Spec page shows one Spec in collapsible panels, in a fixed order
- spec:consumers.spec-studio.diagram-kinds.requirement-trace dependsOn spec:consumers.spec-studio.data · declared
- spec:consumers.spec-studio.diagram-kinds.requirement-trace refines spec:consumers.spec-studio.diagram-kinds · 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
Mermaid source
Copyable source; the Studio draws static SVG.
Preferred syntax: flowchart. Chosen syntax: labelled flowchart, preserving exact relations, claims and folds.
Rests on
- refines · spec:consumers.spec-studio.diagram-kinds · stated ready, floor ready
- dependsOn · spec:consumers.spec-studio.data · stated ready, floor ready
Rested on by
Distance 1
- spec:consumers.spec-studio.spec-page
Implementing units
impl:protocol.studio-requirement-view·src/projections/studio/pages/requirement-view.ts:8impl:protocol.studio-spec-page·src/projections/studio/pages/spec-page.ts:201impl:protocol.studio-spec-structure·src/projections/studio/pages/spec-structure.ts:44
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.spec-page.cited-declaration, test:protocol.studio-architecture-maturity-requirement, test:protocol.studio-panels
Distance 2
- spec:consumers.spec-studio.export
Implementing units
impl:protocol.studio-diagram-element·src/studio-elements/diagram.ts:23impl:protocol.studio-expander·src/studio-elements/expander.ts:16impl:protocol.studio-pack-export·src/projections/studio/pages/export-page.ts:35impl:protocol.studio-pack-page·src/projections/studio/pages/pack-page.ts:68
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.export.self-contained, test:protocol.studio-intent-handoff
- spec:consumers.spec-studio.spec-page.cited-declaration
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-cited-declaration
- spec:consumers.spec-studio.spec-page.core
Implementing units
impl:protocol.studio-spec-page·src/projections/studio/pages/spec-page.ts:201
Referencing units
None.
Enabled verifiers: test:protocol.studio-pages
- spec:consumers.spec-studio.verification-panels
Implementing units
impl:protocol.studio-run-rows·src/projections/studio/pages/run-rows.ts:69impl:protocol.studio-verification-panels·src/projections/studio/pages/spec-verification.ts:74
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.verification-panels.rule-coverage, test:protocol.studio-panels
Distance 3
- spec:consumers.spec-studio.export.self-contained
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-export-contained
- spec:consumers.spec-studio.verification-panels.rule-coverage
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-rule-coverage
- spec:consumers.studio-on-ramp
Implementing units
impl:protocol.studio-on-ramp·test/skills.test.ts:1693
Referencing units
None.
Enabled verifiers: test:protocol.studio-on-ramp
Relations
| Relation and direction | Other end | Claim | Reason | Exercised keys |
|---|---|---|---|---|
| dependsOn · outgoing | The Studio renders from the reader's values and embeds only what its script readsspec:consumers.spec-studio.data · resolves | declared | None | None |
| refines · outgoing | The Studio chooses diagram kinds from graph valuesspec:consumers.spec-studio.diagram-kinds · resolves | declared | None | None |
| dependsOn · incoming | A Spec page shows one Spec in collapsible panels, in a fixed orderspec:consumers.spec-studio.spec-page · resolves | declared | the Design view reads the selected set and claims the requirement drawing defines | None |
Bindings
Implementation binding: present
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 protocolimpl: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
Design reference: none
Verifier binding: present
- test:protocol.studio-architecture-maturity-requirement · anchored ·
test/studio-panels.test.ts:35· test anchor - test:protocol.studio-diagram-core · anchored ·
test/studio-diagram-core.test.ts:37· 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.