Spec Studio

A Pack page's maturity map places every member by its stated rung and its floor

spec:consumers.spec-studio.pack-page.maturity-mapUse Case / Behavior · storyready floor ready

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

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

Findings: no errors, no warnings

specs/consumers/spec-studio.pack-page.maturity-map.sdp.md

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

A Pack's maturity map shows its distribution before its member lists. Equal-sized cells place each resolved member by stated readiness and floor reached. Populated cells show exact counts and member marks; faint empty cells show no number. The count table and ordered lists retain the reading in text.

Intent
outcome
Let a reviewer see at a glance where every member of a Pack stands, by the rung it states and the floor it reaches.
Behavior
rule.maturityMap line 22 · specs/consumers/spec-studio.pack-page.maturity-map.sdp.md:22
After the summary, show the categorical grid and full member lists defined by spec:consumers.spec-studio.diagram-kinds.maturity-picture. Every resolved member belongs to one stated-rung and floor cell; unresolved members are named apart. Populated cells link to their built lists, whose members stay in authored order.

no example exercises it

0 unkeyed rules.

UI
maturityMap line 25 · specs/consumers/spec-studio.pack-page.maturity-map.sdp.md:25
An sdp-maturity-map holds the static SVG grid, caption and accessible count table, followed by populated cells' full member lists in disclosures that print open. Equal-sized cells have explicit axes; the legend names matches, floor above statement and statement above floor once. The diagonal has an outline, empty cells are faint, and populated cells carry exact counts and member marks, up to 100 marks and solid fill above that. Every member links to its card.
Verification

Verifier bindings

  • test:protocol.studio-architecture-maturity-requirement · anchored · test anchor binding present · test/studio-panels.test.ts:35

    External run evidence from test/studio-panels.test.ts

    Test 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

    NameSuiteResultDuration
    orders both matrix axes by layer and id, links counts to supporting unit edges and keeps zeros compactarchitecture tables and registerpassed73.28 ms
    groups unfamiliar and omitted roles in code-unit order, with source rows and separate binding listsarchitecture tables and registerpassed32.56 ms
    draws equal categorical cells, exact counts and marks with ordered complete lists and unresolved members apartmaturity picturepassed46.28 ms
    places the map inside the page's expander so a cell link opens its member listmaturity picturepassed24.84 ms
    puts a uniform map behind a closed disclosure and uses solid fill above the mark boundmaturity picturepassed392.9 ms
    selects the subject, refiners and verifying examples and keeps declared and anchored claims separaterequirement drawingpassed36.4 ms
    keeps a refining verifier in the examples band and outside Specs apartrequirement drawingpassed12.74 ms
    offers requirement syntax for the supported exact relation subsetrequirement drawingpassed16.94 ms
    counts the subject example when reporting selected verifying examplesrequirement drawingpassed8.34 ms
    folds the largest exact relation group deterministically and keeps every original binding in textnot recordedpassed5.8 ms
    keeps a sparse large uses matrix readable with one visible zero legend and hidden cell wordsnot recordedpassed20.31 ms
    contains the matrix's hidden cell words inside their scroll regionnot recordedpassed0.45 ms
    does not assert missing bindings on a boundary Spec whose bindings are outside the selected setnot recordedpassed9.66 ms
    lets full component ids wrap so every uses column fits the printed pagenot recordedpassed0.6 ms
    keeps roles out of the pinned search record while preserving them on graph unitsnot recordedpassed3.09 ms
    lists a unit whose recorded component is missing in No component and in unresolved structurenot recordedpassed4.13 ms
    uses the singular member in a one-member Pack's uniform sentencenot recordedpassed8.24 ms
    states each absent requirement band without implying that a populated drawing is missingnot recordedpassed5.2 ms
    breaks equal requirement fold groups by 'kind' in lexical ordernot recordedpassed3.58 ms
    breaks equal requirement fold groups by 'direction' in lexical ordernot recordedpassed2.34 ms
    breaks equal requirement fold groups by 'claim' in lexical ordernot recordedpassed1.14 ms
    offers only the active relation and member renderers after requirement replaces realizationnot recordedpassed0.26 ms
    applies the closed-source print rule to both requirement and maturity drawingsnot recordedpassed0.29 ms
  • test:protocol.studio-panels · anchored · test anchor binding present · test/studio-s2.test.ts:256

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

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.pack-page.maturity-map
The diagram as text
  • spec:consumers.spec-studio.pack-page.maturity-map: A Pack page's maturity map places every member by its stated rung and its floor · declared Spec
  • spec:consumers.spec-studio.pack-page: A Pack page shows the Pack's design as one card per member · declared Spec
  • impl:protocol.studio-maturity-map: places resolved Pack members by their stated rung and floor in authored order · anchored code · src/projections/studio/pages/maturity-map.ts:7
  • 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-panels: test:protocol.studio-panels · anchored test binding · binding present · test/studio-s2.test.ts:256
  • spec:consumers.spec-studio.pack-page.maturity-map refines spec:consumers.spec-studio.pack-page · declared
  • impl:protocol.studio-maturity-map satisfies spec:consumers.spec-studio.pack-page.maturity-map · anchored
  • test:protocol.studio-architecture-maturity-requirement verifies spec:consumers.spec-studio.pack-page.maturity-map · anchored
  • test:protocol.studio-panels verifies spec:consumers.spec-studio.pack-page.maturity-map · 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-maturity-map · places resolved Pack members by their stated rung and floor in authored order · src/projections/studio/pages/maturity-map.ts:7

    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.pack-page.maturity-map
The diagram as text
  • spec:consumers.derived-readiness-banner: Derived readiness renders beside the stated rung and warns in one direction
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture: The maturity map is drawn as a grid of counts
  • spec:consumers.spec-studio.pack-page: A Pack page shows the Pack's design as one card per member
  • spec:consumers.spec-studio.pack-page.maturity-map: A Pack page's maturity map places every member by its stated rung and its floor
  • spec:consumers.spec-studio.pack-page.maturity-map dependsOn spec:consumers.derived-readiness-banner · declared — the map sets each stated rung beside the floor reached, as the banner reads them
  • spec:consumers.spec-studio.pack-page.maturity-map dependsOn spec:consumers.spec-studio.diagram-kinds.maturity-picture · declared — the map is drawn as the picture defines
  • spec:consumers.spec-studio.pack-page.maturity-map refines spec:consumers.spec-studio.pack-page · 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
dependsOn · outgoingDerived readiness renders beside the stated rung and warns in one direction
spec:consumers.derived-readiness-banner · resolves
declaredthe map sets each stated rung beside the floor reached, as the banner reads themNone
dependsOn · outgoingThe maturity map is drawn as a grid of counts
spec:consumers.spec-studio.diagram-kinds.maturity-picture · resolves
declaredthe map is drawn as the picture definesNone
refines · outgoingA Pack page shows the Pack's design as one card per member
spec:consumers.spec-studio.pack-page · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.studio-maturity-map · places resolved Pack members by their stated rung and floor in authored order · src/projections/studio/pages/maturity-map.ts:7 · 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-panels · anchored · test/studio-s2.test.ts:256 · 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.