Spec Studio

The questions page lists the Specs with a blocking question first

spec:consumers.spec-studio.registers.blocking-firstExample / Scenario · storyready floor ready

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

Design: no design entries · no pinned declarations · no decisions

Findings: no errors, no warnings

specs/consumers/spec-studio.registers.blocking-first.sdp.md

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

Intent
outcome
Execute the questions page's order: a Spec with a blocking question comes before one with only non-blocking questions, whatever their id order.
assumptions
  • The world writes a root with the two Specs, the first holding one blocking open question and the second one non-blocking open question, builds the page set, and reads the order of the Specs on the questions page.
Behavior

Examples

Given a Spec {blockingSpec: "spec:probe.zeta"} with a blocking open question and a Spec {otherSpec: "spec:probe.alpha"}, before it in id order, with only a non-blocking one
When the build renders the questions page
Then the page lists {first: "spec:probe.zeta"} first
Verification

Verifier bindings

  • test:protocol.studio-registers-blocking-first · anchored · test anchor binding present · test/studio-s3.test.ts:89

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

    Test anchors: test:protocol.studio-diff-changed-entry, test:protocol.studio-glossary-same-word-twice, test:protocol.studio-navigation, test:protocol.studio-queue-dependency-first, test:protocol.studio-registers-blocking-first. Specs verified by those bindings: spec:consumers.spec-studio.diff-page, spec:consumers.spec-studio.diff-page.changed-entry, spec:consumers.spec-studio.glossary-page, spec:consumers.spec-studio.glossary-page.same-word-twice, spec:consumers.spec-studio.navigation, spec:consumers.spec-studio.owner-queue, spec:consumers.spec-studio.owner-queue.dependency-first, spec:consumers.spec-studio.registers, spec:consumers.spec-studio.registers.blocking-first.

    Run 1: external run evidence from vitest 4.1.10

    Build: CI 380 · Branch: feature/roadmap-and-slices-v0 · Commit: 34909918bf0be0e849959644401797191cae379f · Start: 2026-10-22T17:40:31.456Z · Stop: 2026-10-22T17:42:16.171Z

    NameSuiteResultDuration
    executes the bound example against a fresh worldThe questions page lists the Specs with a blocking question first (spec:consumers.spec-studio.registers.blocking-first)passed37.62 ms
    executes the bound example against a fresh worldThe owner queue lists a waiting statement after the one it rests on (spec:consumers.spec-studio.owner-queue.dependency-first)passed24.75 ms
    executes the bound example against a fresh worldThe diff page shows a changed entry's base and built values (spec:consumers.spec-studio.diff-page.changed-entry)passed22.28 ms
    executes the bound example against a fresh worldA word two Specs define appears once per Spec on the glossary page (spec:consumers.spec-studio.glossary-page.same-word-twice)passed11.45 ms
    renders declaration citations, decision reasons and design backlog from the shipped answersStudio register pagespassed39.22 ms
    reaches each page in order, marks it current and omits every diff reference without a baseStudio register pagespassed6.54 ms
    refuses malformed base flags and unreadable JSON before extractionStudio register pagespassed1.23 ms
    refuses a base in generated output before writing through graphStudio base comparisonpassed15.97 ms
    refuses a base in generated output before writing through nestedStudio base comparisonpassed28 ms
    refuses a base in generated output before writing through file aliasStudio base comparisonpassed15.08 ms
    refuses a base in generated output before writing through root aliasStudio base comparisonpassed6.55 ms
    refuses a base in generated output before writing through input aliasStudio base comparisonpassed9.33 ms
    renders only existing sides for added and removed entries and one value for moved entriesStudio base comparisonpassed12.09 ms
    shows per-Pack diagnostics without no-change claims for invalid graphStudio base comparisonpassed18.4 ms
    shows per-Pack diagnostics without no-change claims for different schemaStudio base comparisonpassed16.77 ms
    keeps additions, removals, Pack order and anchor bindings apart and escapes compared valuesStudio base comparisonpassed30.65 ms
    shows unreadable graph values as the recipe's diagnostics on the named diff pageStudio base comparisonpassed3.27 ms
    leaves the base file unchanged and certifies repeat publication with the same inputStudio base comparisonpassed39.36 ms
    keeps a cycle's round separate from statements that rest on nothing, and lists owner holdsStudio base comparisonpassed11.47 ms
    sorts terms without locale collation and keeps non-letter headings addressableStudio base comparisonpassed5.22 ms
    orders queue floor options by rung and carries the Pack and floor on each rowStudio base comparisonpassed19.62 ms
    uses authored term keys and orders duplicate terms by Spec idStudio base comparisonpassed5.83 ms
    reads each owner question's provisional reading from its reader Spec and keynot recordedpassed7.54 ms
    renders a keying proposal as one line per keyed entry and readable changed rule textnot recordedpassed7.28 ms
    lists keyed lines in head rule order with rendered text for added, renamed and removed keysnot recordedpassed15.17 ms
    counts keyed rules apart from changed parts, mixed changes: falsenot recordedpassed6.13 ms
    counts keyed rules apart from changed parts, mixed changes: truenot recordedpassed5.87 ms
    names one keyed rule in the singularnot recordedpassed11.75 ms
    marks only members with exclusively keyed changes as keyed onlynot recordedpassed16.34 ms
    renders changed list values as lists instead of raw JSON arraysnot recordedpassed5.82 ms
    retains the owning list when readable rule text moves to a flownot recordedpassed5.4 ms
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.spec-studio.registers.blocking-first
The diagram as text
  • spec:consumers.spec-studio.registers.blocking-first: The questions page lists the Specs with a blocking question first · declared Spec
  • spec:consumers.spec-studio.registers: The corpus's registers are pages a reviewer opens from a link · declared Spec
  • test:protocol.studio-registers-blocking-first: test:protocol.studio-registers-blocking-first · anchored test binding · binding present · test/studio-s3.test.ts:89
  • spec:consumers.spec-studio.registers.blocking-first refines spec:consumers.spec-studio.registers · declared
  • spec:consumers.spec-studio.registers.blocking-first verifies spec:consumers.spec-studio.registers · declared
  • test:protocol.studio-registers-blocking-first verifies spec:consumers.spec-studio.registers.blocking-first · 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

No implementation neighborhood recorded.

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.registers.blocking-first
  • E2: verifies · declared
The diagram as text
  • spec:consumers.spec-studio.registers: The corpus's registers are pages a reviewer opens from a link
  • spec:consumers.spec-studio.registers.blocking-first: The questions page lists the Specs with a blocking question first
  • spec:consumers.spec-studio.registers.blocking-first refines spec:consumers.spec-studio.registers · declared
  • spec:consumers.spec-studio.registers.blocking-first verifies spec:consumers.spec-studio.registers · 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
refines · outgoingThe corpus's registers are pages a reviewer opens from a link
spec:consumers.spec-studio.registers · resolves
declaredNoneNone
verifies · outgoingThe corpus's registers are pages a reviewer opens from a link
spec:consumers.spec-studio.registers · resolves
declaredNoneregisterPages, questionsPage

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.studio-registers-blocking-first · anchored · test/studio-s3.test.ts:89 · 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.