outcomeA Pack page's maturity map places every member by its stated rung and its floor
spec:consumers.spec-studio.pack-page.maturity-mapPacks: 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
- 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.maturityMapline 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
maturityMapline 25 ·specs/consumers/spec-studio.pack-page.maturity-map.sdp.md:25- An
sdp-maturity-mapholds 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 to100marks 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: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-panels · anchored · test anchor binding present ·
test/studio-s2.test.ts:256External run evidence from
test/studio-s2.test.tsTest 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
Name Suite Result Duration marks every displayed file and line across the Studio page set for source links not recorded passed 109.94 ms renders citation labels consistently on Spec and declaration pages not recorded passed 39.55 ms executes the bound example against a fresh world A pinned declaration shows the test line that cites it (spec:consumers.spec-studio.spec-page.cited-declaration) passed 12.75 ms executes the bound example against a fresh world Each keyed rule shows the examples that exercise it, or that none does (spec:consumers.spec-studio.verification-panels.rule-coverage) passed 16.15 ms renders the five open panels in order, the space, bound values, absent evidence, and empty composing slots Spec panels passed 14.06 ms gives keyed terms address ids, source lines, and citations while hiding termKeys metadata Spec panels passed 15.16 ms places resolved Pack members in stated/floor cells in authored order Spec panels passed 22.35 ms keeps the maturity heading and axis explanations inside the embeddable element Spec panels passed 20.36 ms distinguishes test lines from citations by files with unrelated anchors Spec panels passed 21.31 ms renders composing slots beside unkeyed questions using the Spec scope Spec panels passed 14.33 ms keeps the unbound-verifier sentence to graph bindings without run input Spec panels passed 19.45 ms renders source locations, component links, decisions and transitive impact by distance Structural panels and targets passed 30.62 ms states absence on unwritten examples and unset constraint targets Structural panels and targets passed 22.85 ms labels a keyed rule's unbound example as not enabled Structural panels and targets passed 10.05 ms renders structure from recipe answers and reader records without exposing raw graph data Structural panels and targets passed 19.72 ms renders verifying examples for a Model without Behavior and keeps short cards to their summary not recorded passed 10.67 ms keeps example steps and composing actions outside a short Spec card not recorded passed 18.09 ms keeps trace and requirement description and arrow ids distinct for one Spec subject not recorded passed 15.14 ms
Design view
Requirement drawing
- Declared verifying examples: no declared verifying example.
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:7Component:
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.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
- refines · spec:consumers.spec-studio.pack-page · stated ready, floor ready
- dependsOn · spec:consumers.derived-readiness-banner · stated ready, floor ready
- dependsOn · spec:consumers.spec-studio.diagram-kinds.maturity-picture · stated ready, floor ready
Rested on by
No Spec rests on this Spec.
Relations
| Relation and direction | Other end | Claim | Reason | Exercised keys |
|---|---|---|---|---|
| dependsOn · outgoing | Derived readiness renders beside the stated rung and warns in one directionspec:consumers.derived-readiness-banner · resolves | declared | the map sets each stated rung beside the floor reached, as the banner reads them | None |
| dependsOn · outgoing | The maturity map is drawn as a grid of countsspec:consumers.spec-studio.diagram-kinds.maturity-picture · resolves | declared | the map is drawn as the picture defines | None |
| refines · outgoing | A Pack page shows the Pack's design as one card per memberspec:consumers.spec-studio.pack-page · resolves | declared | None | None |
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.