outcomeA Spec set draws the architecture it touches
spec:consumers.spec-studio.diagram-kinds.scoped-architecturePacks: pack:roadmaps-and-slices-v1, pack:self-hosting-v1
Design: 5 design entries · 1 pinned declaration · no decisions
Findings: no errors, no warnings
specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md
No open questions and no blocking questions; implementation binding present, verifier binding present, and expected-outcome oracle none.
Intent
- Review a Pack, slice or roadmap's realized and planned seams together while seeing exactly why each component is present.
Behavior
rule.scopeInputline 19 ·specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:19- Read the design slice's
architectureanswer:componentswith how the slice reaches each, in words, members' satisfying code, members' referencing code or what the slice rests on;designswith their declared values, realization and comparison rows, each drawn as a planned box;useswith the unit edges behind each count and its outside mark;plannedUses;outside; andunplaced. The drawing resolves no unit to a component itself and recomputes none of them; the unplaced units remain listed apart.no example exercises it
rule.separatePlansline 20 ·specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:20- Draw anchored components and component designs as separate identities, even when the realization comparison joins them. Planned layer, context and uses stay declared; realized structure stays anchored; a difference is labelled rather than merged away.
no example exercises it
rule.boundaryline 21 ·specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:21- Draw only the uses boundary the supplied design-slice architecture answer includes; never traverse it in layout. Its
usesincludes anchored pairs between touched components and pairs with one immediate outside neighbour, markedoutside: true, asspec:consumers.design-slice#rule.outsideNeighborsstates. Fold supplied outside neighbours into oneoutside scopebox per context and layer while keeping their identities and original unit edges in the text equivalent; never add pairs between two outside components. Planned uses remain separate and never increase an anchored count.no example exercises it
rule.boundline 22 ·specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:22- Apply the shared architecture folds by context then layer to this selected graph. If no component or planned design resolves, show the empty explanation and unassigned units instead of a blank or invented architecture.
no example exercises it
0 unkeyed rules.
Design
layoutline 25 ·specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:25- Use the architecture grid's context columns and layer bands, with the legibility child's title-first boxes, cell wrapping and local scroll. Prefix planned boxes with
planned; outside-scope boxes sayoutside scope. edgeWordsline 26 ·specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:26- The legend distinguishes
uses (anchored),plans to use (declared)andrealizes (anchored)when present. A drawing containing uses and planned uses alone carries no per-edge label. When a realization correspondence is present, label the distinct relation families beside each link or through a keyed legend; realization stays apart from uses and confers no delivery fact. textEquivalentline 27 ·specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:27- List each component's full id, label, layer, context and the scoped Spec and binding kind that brought it in; list unassigned units, unreadable declarations, planned-to-realized comparisons and every original uses edge.
elementIdsline 28 ·specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:28- Use
diagram.<subject>.architecture.textand.architecture.arrow; context and layer folds append their encoded full key before the suffix. mermaidKindline 29 ·specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:29blockwith generic component boxes and uses arrows for a purely anchored grid; useflowchart TBwith explicit declared and anchored labels when planned, comparison or folded edges cannot be preserved by block syntax. Architecture icons never infer deployment meaning.no citation recorded
Verification
Verifier bindings
- test:protocol.studio-slice-architecture · anchored · test anchor binding present ·
test/studio-slice.test.ts:579External run evidence from
test/studio-slice.test.tsTest anchors:
test:protocol.studio-slice-architecture,test:protocol.studio-slice-dependency,test:protocol.studio-slice-page. Specs verified by those bindings: spec:consumers.spec-studio.diagram-kinds.dependency, spec:consumers.spec-studio.diagram-kinds.scoped-architecture, spec:consumers.spec-studio.slice-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 renders the complete answer in order, keeps held examples folded and independent examples separate slice page passed 49.36 ms keeps declared, unreadable and comparison words in their own design cells slice page passed 0.79 ms writes the slice's Pack id as text in exports instead of a relative file path slice page passed 0.61 ms names each manifest member that resolves to no Spec beside the summary slice page passed 20.07 ms uses singular summary nouns and captions that add to the section headings slice page passed 48.54 ms keeps every link inside the complete page set and gives every id one owner slice page passed 59.19 ms names empty architecture and empty sections without inventing bindings slice page passed 0.56 ms stacks the member's next rung before the labelled design and code runs on a phone slice page passed 11.8 ms preserves single-member depths and opens complete text when no height-reducing fold fits slice dependency drawing passed 1.77 ms aggregates boundary arrows before testing the bound, retaining every original relation in text slice dependency drawing passed 4.59 ms points from the Mermaid source disclosure to the full text equivalent slice dependency drawing passed 0.25 ms uses supplied depths, folds its boundary even below the bound, and retains full text and nonordering arrows slice dependency drawing passed 6.63 ms folds largest complete bands first and opens text when protected boundary boxes exceed the bound slice dependency drawing passed 2.61 ms gives repeated scopes distinct fold element ids through their drawing occurrence slice dependency drawing passed 4.41 ms keeps synthetic boundary identifiers out of the visible box identity line slice dependency drawing passed 1.83 ms gives context and layer folds distinct ids and preserves all original rows scoped architecture drawing passed 13.49 ms keeps planned and anchored identities apart, folds outside context and retains original unit edges scoped architecture drawing passed 8.2 ms names uses, planned uses and realization in the legend and labels links only when a realization is drawn scoped architecture drawing passed 5.22 ms renders question fields as linked prose and dependency titles as plain text not recorded passed 0.59 ms combines relations on one ordered pair while retaining every original text row not recorded passed 0.7 ms
Design view
Requirement drawing
- Declared verifying examples: no declared verifying example.
The diagram as text
- spec:consumers.spec-studio.diagram-kinds.scoped-architecture: A Spec set draws the architecture it touches · declared Spec
- spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values · declared Spec
- 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 - test:protocol.studio-slice-architecture: test:protocol.studio-slice-architecture · anchored test binding · binding present ·
test/studio-slice.test.ts:579 - spec:consumers.spec-studio.diagram-kinds.scoped-architecture refines spec:consumers.spec-studio.diagram-kinds · declared
- impl:protocol.studio-slice-architecture satisfies spec:consumers.spec-studio.diagram-kinds.scoped-architecture · anchored
- test:protocol.studio-slice-architecture verifies spec:consumers.spec-studio.diagram-kinds.scoped-architecture · 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-slice-architecture· selected component grid with distinct planned identities and complete unit edges ·src/projections/studio/diagrams/slice.ts:219Component:
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.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
- spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values
- spec:consumers.spec-studio.diagram-kinds.scoped-architecture: A Spec set draws the architecture it touches
- spec:consumers.spec-studio.lenses.architecture: The architecture lens draws components by context and layer, the planned beside the built
- spec:consumers.spec-studio.slice-page: A slice page shows a Pack's design as one whole
- spec:model.planned-architecture: Components are designed ahead of their code
- spec:consumers.spec-studio.diagram-kinds.scoped-architecture dependsOn spec:consumers.design-slice · declared
- spec:consumers.spec-studio.diagram-kinds.scoped-architecture dependsOn spec:consumers.spec-studio.lenses.architecture · declared
- spec:consumers.spec-studio.diagram-kinds.scoped-architecture dependsOn spec:model.planned-architecture · declared
- spec:consumers.spec-studio.diagram-kinds.scoped-architecture refines spec:consumers.spec-studio.diagram-kinds · declared
- spec:consumers.spec-studio.slice-page dependsOn spec:consumers.spec-studio.diagram-kinds.scoped-architecture · declared — the scoped architecture drawing is a drawing kind, which owns layout, folding and the text equivalent
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.design-slice · stated ready, floor ready
- dependsOn · spec:consumers.spec-studio.lenses.architecture · stated ready, floor ready
- dependsOn · spec:model.planned-architecture · stated ready, floor ready
Rested on by
Distance 1
- spec:consumers.spec-studio.slice-page
Implementing units
impl:protocol.studio-slice-page·src/projections/studio/pages/slice-page.ts:25
Referencing units
None.
Enabled verifiers: test:protocol.studio-slice-page
Relations
| Relation and direction | Other end | Claim | Reason | Exercised keys |
|---|---|---|---|---|
| dependsOn · outgoing | A slice reads a Pack as one design, with the architecture it touches and what each member needs nextspec:consumers.design-slice · resolves | declared | None | None |
| dependsOn · outgoing | The architecture lens draws components by context and layer, the planned beside the builtspec:consumers.spec-studio.lenses.architecture · resolves | declared | None | None |
| dependsOn · outgoing | Components are designed ahead of their codespec:model.planned-architecture · 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 slice page shows a Pack's design as one wholespec:consumers.spec-studio.slice-page · resolves | declared | the scoped architecture drawing is a drawing kind, which owns layout, folding and the text equivalent | None |
Bindings
Implementation binding: present
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
Design reference: none
Verifier binding: present
- test:protocol.studio-slice-architecture · anchored ·
test/studio-slice.test.ts:579· 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.