Spec Studio

The Pack context carries the Pack's design

spec:consumers.pack-designUse Case / Behavior · featureready floor ready

Packs: pack:design-management-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/pack-design.sdp.md

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

A capability designed ahead of its code is read as a Pack: its members in reading order, how far each has matured, what design each carries, what it rests on, and which code answers to it. The reader holds every one of those facts. This Spec assembles them once on the Pack context so a page, a recipe and an adopter's script read one answer.

Intent
problem
Reading a Pack's design means joining member readiness, the floor one rung above the stated rung, design entries, decisions, open questions, code bindings with their components, and the Specs outside the Pack, and every consumer that joins them by hand reads the floor or the boundary a different way.
outcome
Give each Pack member its design columns and give the Pack its boundary on the Pack context, so the Design Review, a recipe and an adopter's page read the design from one assembly.
Behavior
rule line 28 · specs/consumers/pack-design.sdp.md:28
One helper derives a Spec's design columns; the Spec context carries them as designColumns and each resolved Pack member carries the same value as design, while the Pack context carries the boundary.
rule line 29 · specs/consumers/pack-design.sdp.md:29
A member's stated next rung is the rung above its stated rung, none when it states ready. Its unmet clauses come from the one floor evaluator with that rung as the target, each failure with its targets when it has them. The list is empty when the floor already holds the stated next rung, so the rung waits for its author's statement, never a promotion. The floor reached and the failures at the rung above it are separate readings.
rule line 30 · specs/consumers/pack-design.sdp.md:30
A member's design columns count its keyed design and ui entries other than description, its pinned declarations under the contract-declarations rule, and its open questions with how many block. They list each question with its zero-based authored index, text, blocking flag, optional key, decider, links, provisional and trigger as present, and optional source line from the location table. They list the decisions it names through decidedBy, each with its stated rung or unresolved when the target is no Spec. The columns are counts and lists read from the graph, never a score or a rung.
rule line 31 · specs/consumers/pack-design.sdp.md:31
A member lists the code units that satisfy it and those that reference it as code unit bindings; each binding carries codeId and claim, plus label, file, line and role when recorded. A component unit carries its own optional layer and context; a memberOf edge adds its component's id and optional layer and context. The Spec context carries the same bindings.
rule line 32 · specs/consumers/pack-design.sdp.md:32
A member counts its verifiers and enabled verifiers, and the example Specs that declare verifies on it with how many are enabled, using the reader's verifier decoding.
rule line 33 · specs/consumers/pack-design.sdp.md:33
The Pack's boundary lists the Specs outside the Pack joined to a member by an authored relation. A Spec a member relates to by refines, dependsOn, constrainedBy or decidedBy is one the Pack rests on; a Spec that relates to a member by the same four relations is one that rests on the Pack. The boundary lists inbound verifies separately as verifiedBy and inbound supersedes as supersededBy, with the same row shape. Each row carries the outside Spec's id, title, stated rung and whether it carries implemented, and for each relation type the members it joins, the types in the closed relation list's order and the members in authored order. A relation whose target is not a Spec in the graph is left to referential integrity and does not appear.
rule line 34 · specs/consumers/pack-design.sdp.md:34
Members keep the manifest's authored order, unresolved members carry their unresolved row without design columns, and boundary rows sort by id in code-unit order.
rule line 35 · specs/consumers/pack-design.sdp.md:35
The assembly is a pure function of the graph: it reads no carrier file, records nothing, and confers no delivery fact or readiness.

8 unkeyed rules.

Verification

Verifier bindings

  • test:protocol.pack-design · the Pack context carries each member's design and the Pack's boundary · anchored · test anchor binding present · test/pack-design.test.ts:18

    External run evidence from test/pack-design.test.ts

    Test anchors: test:protocol.pack-design. Specs verified by those bindings: spec:consumers.pack-design, spec:model.design-maturity.

    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
    keeps the manifest's order and every existing fieldthe Pack design on the Pack contextpassed11.36 ms
    names the stated next rung's unmet clauses, with the targets a dependency clause namesthe Pack design on the Pack contextpassed2.6 ms
    reads an empty list where the floor already holds the stated next rungthe Pack design on the Pack contextpassed1.11 ms
    keeps the stated reading apart from the floor-reached readingthe Pack design on the Pack contextpassed1.77 ms
    names no next rung above readythe Pack design on the Pack contextpassed1.24 ms
    counts the design columns: keyed entries, pinned declarations and questionsthe Pack design on the Pack contextpassed1.74 ms
    exposes the same design columns on Spec context and Pack membersthe Pack design on the Pack contextpassed3.29 ms
    lists the decisions a member names, unresolved when the target is no Specthe Pack design on the Pack contextpassed1.11 ms
    carries each realizing and referencing unit with its component on the member and on the Spec contextthe Pack design on the Pack contextpassed2.17 ms
    counts verifiers and verifying examples with how many are enabledthe Pack design on the Pack contextpassed2.06 ms
    counts a verifying Spec of another kind as a verifier, never as an examplethe Pack design on the Pack contextpassed0.47 ms
    lists the boundary both ways, rows by id and members in authored orderthe Pack design on the Pack contextpassed1.01 ms
    keeps verification and supersession outside restedOnBy, ignoring anchored verifiersthe Pack design on the Pack contextpassed1.66 ms
    marks an outside Spec that carries the implementation factthe Pack design on the Pack contextpassed0.98 ms
    keeps an unresolved member's existing row and nothing morethe Pack design on the Pack contextpassed0.81 ms
    carries each Spec's location rows on its Spec context, sorted by entrythe Pack design on the Pack contextpassed1.47 ms
    is a pure function of the graph: two reads of one graph are equalthe Pack design on the Pack contextpassed1.69 ms
    joins many members to one outside Spec in one step each, members in authored orderthe Pack design on the Pack contextpassed1016.4 ms
Design view

Requirement drawing

Requirement drawing for spec:consumers.pack-design

Scroll horizontally to read the whole drawing.

Requirement drawing for spec:consumers.pack-designrefines, verifies · declaredsatisfies · anchoredsatisfies · anchoredreferences · anchoredmodels · anchoredrefines · declaredrefines · declaredrefines · declaredverifies · anchoredverifies · anchoredIntended Specsspec:consumers.design-sliceA slice reads a Pack as onedesign, with thearchitecture it touches andwhat each member needs next…consumers.design-slicedeclared Specspec:consumers.pack-designThe Pack context carriesthe Pack's design…consumers.pack-designdeclared SpecDeclared verifying examples14 verifying examples · declared; 14 test bindings · anchored, folded14 verifying examples ·declared14 test bindings · anchored ·foldedSatisfying or referencingunitsimpl:protocol.design-slice-reciperealizes the design slicein the shipped recipecatalog…protocol.design-slice-recipeanchored codeimpl:protocol.pack-designthe Pack design helpers andthe Pack context assemblythey serveimpl:protocol.pack-designanchored codeimpl:protocol.studio-slice-answerfull design slice answerconsumed by the page anddrawings…protocol.studio-slice-answeranchored codeTest or oracle bindingsoracle:protocol.design-sliceoracle:protocol.design-sliceoracle:protocol.design-sliceanchored oracle bindingtest:protocol.design-slicetest:protocol.design-slicetest:protocol.design-sliceanchored test binding ·binding presenttest:protocol.pack-designthe Pack context carrieseach member's design andthe Pack's boundarytest:protocol.pack-designanchored test binding ·binding presentOutside the selected setspec:consumers.readerThe reader bridges agententry points to composablegraph context…consumers.readerdeclared Specspec:consumers.spec-studio.slice-pageA slice page shows a Pack'sdesign as one whole…consumers.spec-studio.slice-pagedeclared Spec
The diagram as text
  • spec:consumers.pack-design: The Pack context carries the Pack's design · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • spec:consumers.design-slice.chain: Members rest on a chain · declared Spec
  • spec:consumers.design-slice.component-absent: An unanchored component design stays visible · declared Spec
  • spec:consumers.design-slice.component-differing: A realized component keeps its differing layer and uses apart · declared Spec
  • spec:consumers.design-slice.component-matching: A realized component matches its declared values · declared Spec
  • spec:consumers.design-slice.component-unreadable: An unreadable declared layer stays visible · declared Spec
  • spec:consumers.design-slice.component-unrelated: An anchor alone does not realize a component design · declared Spec
  • spec:consumers.design-slice.decision-backlink: A shaping decision comes before its member · declared Spec
  • spec:consumers.design-slice.dependency-cycle: A cycle shares a depth · declared Spec
  • spec:consumers.design-slice.folded-example: An example folds without lending its readiness · declared Spec
  • spec:consumers.design-slice.independent-example: An example with its own dependency stays unfolded · declared Spec
  • spec:consumers.design-slice.outside-components: Outside components stop at the touched components' neighbors · declared Spec
  • spec:consumers.design-slice.outside-holding: An outside prerequisite names the member it holds · declared Spec
  • spec:consumers.design-slice.outside-satisfied: A prerequisite reaches its satisfying component · declared Spec
  • spec:consumers.design-slice.outside-unbound: An unbound prerequisite invents no component · declared Spec
  • spec:consumers.reader: The reader bridges agent entry points to composable graph context · declared Spec
  • spec:consumers.spec-studio.slice-page: A slice page shows a Pack's design as one whole · declared Spec
  • impl:protocol.design-slice-recipe: realizes the design slice in the shipped recipe catalog · anchored code · test/self-hosting-design-slice.test.ts:148
  • impl:protocol.pack-design: the Pack design helpers and the Pack context assembly they serve · anchored code · src/reader/reader.ts:499
  • impl:protocol.studio-slice-answer: full design slice answer consumed by the page and drawings · anchored code · src/projections/studio/slice-answer.ts:1
  • oracle:protocol.design-slice: oracle:protocol.design-slice · anchored oracle binding · test/self-hosting-design-slice.test.ts:549
  • test:protocol.design-slice: test:protocol.design-slice · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:155
  • test:protocol.design-slice.chain: test:protocol.design-slice.chain · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:768
  • test:protocol.design-slice.component-absent: test:protocol.design-slice.component-absent · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:798
  • test:protocol.design-slice.component-differing: test:protocol.design-slice.component-differing · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:816
  • test:protocol.design-slice.component-matching: test:protocol.design-slice.component-matching · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:810
  • test:protocol.design-slice.component-unreadable: test:protocol.design-slice.component-unreadable · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:822
  • test:protocol.design-slice.component-unrelated: test:protocol.design-slice.component-unrelated · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:804
  • test:protocol.design-slice.decision-backlink: test:protocol.design-slice.decision-backlink · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:774
  • test:protocol.design-slice.dependency-cycle: test:protocol.design-slice.dependency-cycle · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:780
  • test:protocol.design-slice.folded-example: test:protocol.design-slice.folded-example · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:786
  • test:protocol.design-slice.independent-example: test:protocol.design-slice.independent-example · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:792
  • test:protocol.design-slice.outside-components: test:protocol.design-slice.outside-components · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:762
  • test:protocol.design-slice.outside-holding: test:protocol.design-slice.outside-holding · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:840
  • test:protocol.design-slice.outside-satisfied: test:protocol.design-slice.outside-satisfied · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:828
  • test:protocol.design-slice.outside-unbound: test:protocol.design-slice.outside-unbound · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:834
  • test:protocol.pack-design: the Pack context carries each member's design and the Pack's boundary · anchored test binding · binding present · test/pack-design.test.ts:18
  • spec:consumers.design-slice refines spec:consumers.pack-design · declared — a slice reads a Pack's design as one whole, with its architecture and open decisions beside it
  • spec:consumers.design-slice.chain refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.chain verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-absent refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-absent verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-differing refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-differing verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-matching refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-matching verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unreadable refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unreadable verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unrelated refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unrelated verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.decision-backlink refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.decision-backlink verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.dependency-cycle refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.dependency-cycle verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.folded-example refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.folded-example verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.independent-example refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.independent-example verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-components refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-components verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-holding refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-holding verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-satisfied refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-satisfied verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-unbound refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-unbound verifies spec:consumers.design-slice · declared
  • spec:consumers.pack-design refines spec:consumers.reader · declared
  • spec:consumers.spec-studio.slice-page refines spec:consumers.design-slice · declared — the page is the design slice's reading for a person
  • impl:protocol.design-slice-recipe satisfies spec:consumers.design-slice · anchored
  • impl:protocol.pack-design satisfies spec:consumers.pack-design · anchored
  • impl:protocol.studio-slice-answer references spec:consumers.design-slice · anchored
  • oracle:protocol.design-slice models spec:consumers.design-slice · anchored
  • test:protocol.design-slice verifies spec:consumers.design-slice · anchored
  • test:protocol.design-slice.chain verifies spec:consumers.design-slice.chain · anchored
  • test:protocol.design-slice.component-absent verifies spec:consumers.design-slice.component-absent · anchored
  • test:protocol.design-slice.component-differing verifies spec:consumers.design-slice.component-differing · anchored
  • test:protocol.design-slice.component-matching verifies spec:consumers.design-slice.component-matching · anchored
  • test:protocol.design-slice.component-unreadable verifies spec:consumers.design-slice.component-unreadable · anchored
  • test:protocol.design-slice.component-unrelated verifies spec:consumers.design-slice.component-unrelated · anchored
  • test:protocol.design-slice.decision-backlink verifies spec:consumers.design-slice.decision-backlink · anchored
  • test:protocol.design-slice.dependency-cycle verifies spec:consumers.design-slice.dependency-cycle · anchored
  • test:protocol.design-slice.folded-example verifies spec:consumers.design-slice.folded-example · anchored
  • test:protocol.design-slice.independent-example verifies spec:consumers.design-slice.independent-example · anchored
  • test:protocol.design-slice.outside-components verifies spec:consumers.design-slice.outside-components · anchored
  • test:protocol.design-slice.outside-holding verifies spec:consumers.design-slice.outside-holding · anchored
  • test:protocol.design-slice.outside-satisfied verifies spec:consumers.design-slice.outside-satisfied · anchored
  • test:protocol.design-slice.outside-unbound verifies spec:consumers.design-slice.outside-unbound · anchored
  • test:protocol.pack-design verifies spec:consumers.pack-design · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

Preferred syntax: requirementDiagram. Chosen syntax: flowchart TB because models, references, folds require exact labels unavailable in requirement syntax.

Decisions

  • Architectural significance is annotated where it is realized

    Architectural significance is annotated on the anchor of the unit that realizes it. A code anchor may carry role, the architectural pattern the unit plays; a component: anchor may additionally carry layer, one of edge, application, domain, adapter, or infrastructure, and context, its bounded context. The component: anchor is anchored architecture: it is the declared component, and there is no separate architecture file, because the anchor sits where the component is realized. It is not the original design's declared Component that could exist before code; an unrealized component lives in Specs and never as an invented CodeNode. A role is a free, corpus-owned vocabulary whose taxonomy the census renders with counts from the graph; service, decider, projection, read-model, codec, contract, barrel, and utility are the lineage set, not a closed list. layer is a closed set, and a value outside it is an envelope error; layer or context on a non-component anchor is an envelope error. All three attributes are optional, and omission is lawful.

Runtime
  • component:protocol.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol

    Uses

    • 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.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.pack-design · the Pack design helpers and the Pack context assembly they serve · src/reader/reader.ts:499

    Component: component:protocol.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · 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.pack-design
The diagram as text
  • spec:consumers.agent-surface.design-recipes: Design work reads its answers from catalog recipes
  • spec:consumers.design-review.pack-design-page: A Pack page shows where the Pack's design stands
  • 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.obsidian-vault.bases: A Pack's members and the standing queries are tables over the reader's values
  • spec:consumers.pack-design: The Pack context carries the Pack's design
  • spec:consumers.reader: The reader bridges agent entry points to composable graph context
  • spec:consumers.review-perspectives: A Pack is read from a named perspective
  • spec:consumers.spec-studio.data: The Studio renders from the reader's values and embeds only what its script reads
  • spec:consumers.spec-studio.pack-page: A Pack page shows the Pack's design as one card per member
  • spec:consumers.spec-studio.spec-page: A Spec page shows one Spec in collapsible panels, in a fixed order
  • spec:decisions.architectural-annotation: Architectural significance is annotated where it is realized
  • spec:decisions.pack-design-page: The Design Review's Pack page presents the Pack's design
  • spec:extraction.contract-declarations: Pinned declarations give an adopter a derived module to typecheck
  • spec:extraction.entry-locations: The graph records where each addressable entry is written
  • spec:extraction.pack-member-order: A Pack node keeps its members in authored order
  • spec:model.design-maturity: What a Spec's design carries is derived, beside its readiness
  • spec:model.open-question-fields: An open question may name who decides it, its links, a provisional reading and a re-entry trigger
  • spec:validation.next-rung-floor: The floor names what blocks the floor's next rung
  • spec:consumers.pack-design decidedBy spec:decisions.architectural-annotation · declared — a code unit binding carries the role, layer and context its anchors state
  • spec:consumers.pack-design dependsOn spec:extraction.contract-declarations · declared
  • spec:consumers.pack-design dependsOn spec:extraction.entry-locations · declared
  • spec:consumers.pack-design dependsOn spec:extraction.pack-member-order · declared
  • spec:consumers.pack-design dependsOn spec:model.open-question-fields · declared — each listed open question carries its fields
  • spec:consumers.pack-design dependsOn spec:validation.next-rung-floor · declared
  • spec:consumers.pack-design refines spec:consumers.reader · declared
  • spec:consumers.agent-surface.design-recipes dependsOn spec:consumers.pack-design · declared
  • spec:consumers.design-review.pack-design-page dependsOn spec:consumers.pack-design · declared
  • spec:consumers.obsidian-vault.bases dependsOn spec:consumers.pack-design · declared — a Pack's Base shows the members, rungs and design columns the Pack design assembles
  • spec:consumers.review-perspectives dependsOn spec:consumers.pack-design · declared
  • spec:consumers.spec-studio.data dependsOn spec:consumers.pack-design · declared
  • spec:consumers.spec-studio.pack-page dependsOn spec:consumers.pack-design · declared — the page renders the Pack design the Pack context carries
  • spec:consumers.spec-studio.spec-page dependsOn spec:consumers.pack-design · declared
  • spec:decisions.pack-design-page dependsOn spec:consumers.pack-design · declared
  • spec:model.design-maturity dependsOn spec:consumers.pack-design · declared
  • spec:consumers.design-slice refines spec:consumers.pack-design · declared — a slice reads a Pack's design as one whole, with its architecture and open decisions beside it
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

Distance 3

Distance 4

Distance 5

Distance 6

Distance 7

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingArchitectural significance is annotated where it is realized
spec:decisions.architectural-annotation · resolves
declareda code unit binding carries the role, layer and context its anchors stateNone
dependsOn · outgoingPinned declarations give an adopter a derived module to typecheck
spec:extraction.contract-declarations · resolves
declaredNoneNone
dependsOn · outgoingThe graph records where each addressable entry is written
spec:extraction.entry-locations · resolves
declaredNoneNone
dependsOn · outgoingA Pack node keeps its members in authored order
spec:extraction.pack-member-order · 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
declaredeach listed open question carries its fieldsNone
dependsOn · outgoingThe floor names what blocks the floor's next rung
spec:validation.next-rung-floor · resolves
declaredNoneNone
refines · outgoingThe reader bridges agent entry points to composable graph context
spec:consumers.reader · resolves
declaredNoneNone
dependsOn · incomingDesign work reads its answers from catalog recipes
spec:consumers.agent-surface.design-recipes · resolves
declaredNoneNone
dependsOn · incomingA Pack page shows where the Pack's design stands
spec:consumers.design-review.pack-design-page · resolves
declaredNoneNone
dependsOn · incomingA Pack's members and the standing queries are tables over the reader's values
spec:consumers.obsidian-vault.bases · resolves
declareda Pack's Base shows the members, rungs and design columns the Pack design assemblesNone
dependsOn · incomingA Pack is read from a named perspective
spec:consumers.review-perspectives · resolves
declaredNoneNone
dependsOn · incomingThe Studio renders from the reader's values and embeds only what its script reads
spec:consumers.spec-studio.data · resolves
declaredNoneNone
dependsOn · incomingA Pack page shows the Pack's design as one card per member
spec:consumers.spec-studio.pack-page · resolves
declaredthe page renders the Pack design the Pack context carriesNone
dependsOn · incomingA Spec page shows one Spec in collapsible panels, in a fixed order
spec:consumers.spec-studio.spec-page · resolves
declaredNoneNone
dependsOn · incomingThe Design Review's Pack page presents the Pack's design
spec:decisions.pack-design-page · resolves
declaredNoneNone
dependsOn · incomingWhat a Spec's design carries is derived, beside its readiness
spec:model.design-maturity · resolves
declaredNoneNone
refines · incomingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declareda slice reads a Pack's design as one whole, with its architecture and open decisions beside itNone

Bindings

Implementation binding: present

  • impl:protocol.pack-design · the Pack design helpers and the Pack context assembly they serve · src/reader/reader.ts:499 · role reader · component component:protocol.reader · layer application · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.pack-design · the Pack context carries each member's design and the Pack's boundary · anchored · test/pack-design.test.ts:18 · 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.