Spec Studio

The maturity map is drawn as a grid of counts

spec:consumers.spec-studio.diagram-kinds.maturity-pictureUse Case / Behavior · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Design: 6 design entries · 1 pinned declaration · no decisions

Findings: no errors, no warnings

specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md

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

Intent
outcome
See whether a Pack's statements match, lag or exceed its floors without a wall of member cards inside the picture.
Behavior
rule.discreteCells line 15 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:15
Draw one equal-sized cell per stated-rung and floor pair. A populated cell shows its exact count and one mark per member, up to 100 marks, beyond which it is filled solid, and links to that cell's full ordered member list; an empty cell is a faint outline with no number. matches, floor above statement and statement above floor are named once each in the legend, and the diagonal carries an outline. Floor none is distinct from idea, and unresolved members are listed apart.

no example exercises it

rule.noScore line 16 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:16
Use categorical cell position, never normalized coordinates, a quality score, area proportional to maturity, completion percentage or a recommendation to implement. Marks count members and score nothing.

no example exercises it

rule.fullMembership line 17 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:17
Every resolved member appears in exactly one cell list in authored order. The picture holds cell counts, not per-member cards. Without script every populated cell links to its already-built list and every member links to its card.

no example exercises it

rule.oneCell line 18 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:18
When every resolved member falls in one cell, one sentence before the grid names that cell's stated rung and floor with its count and links to the cell's member list, and the grid sits in a closed disclosure; when two or more cells hold members, the grid shows with no disclosure. The sentence scores nothing, and print opens the disclosure.

no example exercises it

0 unkeyed rules.

Design
matrix line 21 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:21
Rows run stated idea, scoped, defined, ready from top to bottom; columns run floor none, idea, scoped, defined, ready from left to right. The grid including axes fits the shared width budget. Empty cells show only a faint outline; the matching diagonal has a stronger outline. Relation phrases appear once in the legend.
bound line 22 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:22
The fixed categorical cells fit the shared box bound and have no edges. Membership volume does not grow the picture; complete lists follow in closed disclosures and print open. Overlong lists are never truncated.
oneCellDisclosure line 23 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:23
the disclosure that holds a one-cell grid reads Stated readiness by floor reached as its summary; the grid inside it keeps its element ids.
textEquivalent line 24 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:24
Keep the accessible table of cell counts and complete member lists as the diagram's text equivalent; identify every member by its full id, title, stated rung and floor. The axis explanation belongs to the caption.
elementIds line 25 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:25
Use diagram.<subject>.maturity.text and diagram.<subject>.maturity.cell.<stated>.<floor>; cell links target the built list, with unique member-card targets supplied by the Pack page.
mermaidKind line 26 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:26
block with a fixed categorical grid, cell labels and counts. This is not a quadrant chart; source includes each cell's full membership as comments and names its accessible table.

no citation recorded

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

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.diagram-kinds.maturity-picture
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture: The maturity map is drawn as a grid of counts · declared Spec
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values · 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
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture refines spec:consumers.spec-studio.diagram-kinds · declared
  • impl:protocol.studio-maturity-map satisfies spec:consumers.spec-studio.diagram-kinds.maturity-picture · anchored
  • test:protocol.studio-architecture-maturity-requirement verifies spec:consumers.spec-studio.diagram-kinds.maturity-picture · 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.diagram-kinds.maturity-picture
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture: The maturity map is drawn as a grid of counts
  • 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.diagram-kinds.maturity-picture refines spec:consumers.spec-studio.diagram-kinds · declared
  • 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
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

Relations

Relation and directionOther endClaimReasonExercised keys
refines · outgoingThe Studio chooses diagram kinds from graph values
spec:consumers.spec-studio.diagram-kinds · resolves
declaredNoneNone
dependsOn · incomingA Pack page's maturity map places every member by its stated rung and its floor
spec:consumers.spec-studio.pack-page.maturity-map · resolves
declaredthe map is drawn as the picture definesNone

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

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

Composing (0)

Composing needs the script.