Spec Studio

The owner queue lists a waiting statement after the one it rests on

spec:consumers.spec-studio.owner-queue.dependency-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.owner-queue.dependency-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 queue's order: a waiting statement that rests on another waiting statement comes after it, whatever their id order, and links it.
assumptions
  • The world writes a root where both Specs state scoped while their floors allow a higher rung, and the first declares dependsOn on the second; it builds the page set and reads the queue's statement rows in order.
Behavior

Examples

Given a Spec {dependent: "spec:probe.alpha"} that waits for a statement its floor allows and rests on a Spec {dependency: "spec:probe.zeta"} that waits for one too
When the build renders the owner queue page
Then the queue lists {first: "spec:probe.zeta"} first
Then the row of the Spec that rests on the other links it: {linked: true}
Verification

Verifier bindings

  • test:protocol.studio-queue-dependency-first · anchored · test anchor binding present · test/studio-s3.test.ts:142

    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 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
    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)passed35.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)passed19.95 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)passed21.64 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)passed8.31 ms
    renders declaration citations, decision reasons and design backlog from the shipped answersStudio register pagespassed34.81 ms
    reaches each page in order, marks it current and omits every diff reference without a baseStudio register pagespassed10.2 ms
    refuses malformed base flags and unreadable JSON before extractionStudio register pagespassed1.96 ms
    refuses a base in generated output before writing through graphStudio base comparisonpassed21.29 ms
    refuses a base in generated output before writing through nestedStudio base comparisonpassed15.24 ms
    refuses a base in generated output before writing through file aliasStudio base comparisonpassed17.97 ms
    refuses a base in generated output before writing through root aliasStudio base comparisonpassed6.75 ms
    refuses a base in generated output before writing through input aliasStudio base comparisonpassed10.5 ms
    renders only existing sides for added and removed entries and one value for moved entriesStudio base comparisonpassed13.63 ms
    shows per-Pack diagnostics without no-change claims for invalid graphStudio base comparisonpassed19.84 ms
    shows per-Pack diagnostics without no-change claims for different schemaStudio base comparisonpassed15.35 ms
    keeps additions, removals, Pack order and anchor bindings apart and escapes compared valuesStudio base comparisonpassed24.48 ms
    shows unreadable graph values as the recipe's diagnostics on the named diff pageStudio base comparisonpassed2.54 ms
    leaves the base file unchanged and certifies repeat publication with the same inputStudio base comparisonpassed28.52 ms
    keeps a cycle's round separate from statements that rest on nothing, and lists owner holdsStudio base comparisonpassed12.27 ms
    sorts terms without locale collation and keeps non-letter headings addressableStudio base comparisonpassed5.74 ms
    orders queue floor options by rung and carries the Pack and floor on each rowStudio base comparisonpassed16.78 ms
    uses authored term keys and orders duplicate terms by Spec idStudio base comparisonpassed6.7 ms
    reads each owner question's provisional reading from its reader Spec and keynot recordedpassed9.69 ms
    renders a keying proposal as one line per keyed entry and readable changed rule textnot recordedpassed9.43 ms
    lists keyed lines in head rule order with rendered text for added, renamed and removed keysnot recordedpassed14.46 ms
    counts keyed rules apart from changed parts, mixed changes: falsenot recordedpassed6.09 ms
    counts keyed rules apart from changed parts, mixed changes: truenot recordedpassed6.9 ms
    names one keyed rule in the singularnot recordedpassed7.97 ms
    marks only members with exclusively keyed changes as keyed onlynot recordedpassed13.49 ms
    renders changed list values as lists instead of raw JSON arraysnot recordedpassed6.06 ms
    retains the owning list when readable rule text moves to a flownot recordedpassed5.57 ms
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.spec-studio.owner-queue.dependency-first
The diagram as text
  • spec:consumers.spec-studio.owner-queue.dependency-first: The owner queue lists a waiting statement after the one it rests on · declared Spec
  • spec:consumers.spec-studio.owner-queue: The owner queue page orders the statements and questions only a person can settle · declared Spec
  • test:protocol.studio-queue-dependency-first: test:protocol.studio-queue-dependency-first · anchored test binding · binding present · test/studio-s3.test.ts:142
  • spec:consumers.spec-studio.owner-queue.dependency-first refines spec:consumers.spec-studio.owner-queue · declared
  • spec:consumers.spec-studio.owner-queue.dependency-first verifies spec:consumers.spec-studio.owner-queue · declared
  • test:protocol.studio-queue-dependency-first verifies spec:consumers.spec-studio.owner-queue.dependency-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.owner-queue.dependency-first
  • E2: verifies · declared
The diagram as text
  • spec:consumers.spec-studio.owner-queue: The owner queue page orders the statements and questions only a person can settle
  • spec:consumers.spec-studio.owner-queue.dependency-first: The owner queue lists a waiting statement after the one it rests on
  • spec:consumers.spec-studio.owner-queue.dependency-first refines spec:consumers.spec-studio.owner-queue · declared
  • spec:consumers.spec-studio.owner-queue.dependency-first verifies spec:consumers.spec-studio.owner-queue · 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 owner queue page orders the statements and questions only a person can settle
spec:consumers.spec-studio.owner-queue · resolves
declaredNoneNone
verifies · outgoingThe owner queue page orders the statements and questions only a person can settle
spec:consumers.spec-studio.owner-queue · resolves
declaredNonewaitingStatements

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.studio-queue-dependency-first · anchored · test/studio-s3.test.ts:142 · 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.