outcomeThe Spec another rests on comes first in the queue
spec:consumers.readiness-planner.dependency-orderPacks: pack:adopter-speed-v1, pack:self-hosting-v1
Design: no design entries · no pinned declarations · no decisions
Findings: no errors, no warnings
specs/consumers/readiness-planner.dependency-order.sdp.md
No open questions and no blocking questions; implementation binding none, verifier binding present, and expected-outcome oracle none.
Given
a probe corpus in which {corpus: "one waiting Spec depends on another"}When
the statement queue runs over the probe corpus
Then
the queue lists {queue: "spec:probe.base, spec:probe.dependent"} in that order
round 1 holds {firstRound: "spec:probe.base"}
the queue reports {cycles: 0} cyclesComposing needs the script.
Intent
- Execute the order on two waiting Specs, one depending on the other.
assumptions- The world writes a probe corpus of two story-altitude behavior Specs, a base and a dependent, each stating
definedwith an Intent outcome and one rule, plus a decision statingreadywith its context and choice. The decision refines the base, the base names it throughdecidedBy, and the dependent declaresdependsOnon the base, so both behavior Specs' floors reachreadyand the decision waits on nothing. The Specs carry the ids the queue names. The world runs the shipped statement queue file throughsdp q --jsonon the probe root; a list reads as ids joined by a comma and a space.
- The world writes a probe corpus of two story-altitude behavior Specs, a base and a dependent, each stating
Behavior
Examples
Given a probe corpus in which {corpus: "one waiting Spec depends on another"}
When the statement queue runs over the probe corpus
Then the queue lists {queue: "spec:probe.base, spec:probe.dependent"} in that order
Then round 1 holds {firstRound: "spec:probe.base"}
Then the queue reports {cycles: 0} cyclesVerification
Verifier bindings
- test:protocol.readiness-planner.dependency-order · anchored · test anchor binding present ·
test/self-hosting-readiness-planner.test.ts:204External run evidence from
test/self-hosting-readiness-planner.test.tsTest anchors:
test:protocol.readiness-planner.cycle-shares-a-round,test:protocol.readiness-planner.decision-first,test:protocol.readiness-planner.dependency-order,test:protocol.readiness-planner.owner-question-holds. Specs verified by those bindings: spec:consumers.readiness-planner, spec:consumers.readiness-planner.cycle-shares-a-round, spec:consumers.readiness-planner.decision-first, spec:consumers.readiness-planner.dependency-order, spec:consumers.readiness-planner.owner-question-holds.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 executes the bound example against a fresh world The Spec another rests on comes first in the queue (spec:consumers.readiness-planner.dependency-order) passed 28.37 ms executes the bound example against a fresh world A waiting decision comes before the Spec it shapes (spec:consumers.readiness-planner.decision-first) passed 5.84 ms executes the bound example against a fresh world Waiting Specs that rest on each other share a round and report a cycle (spec:consumers.readiness-planner.cycle-shares-a-round) passed 4.2 ms executes the bound example against a fresh world An owner's blocking question lists the Specs it holds (spec:consumers.readiness-planner.owner-question-holds) passed 4.25 ms diagnoses invalid decider null statement queue details passed 7.23 ms diagnoses invalid decider false statement queue details passed 4.92 ms diagnoses invalid decider 1 statement queue details passed 3.28 ms diagnoses invalid decider "" statement queue details passed 2.82 ms diagnoses invalid decider "Owner" statement queue details passed 10.22 ms diagnoses invalid decider "two words" statement queue details passed 3.6 ms diagnoses invalid decider "with_underscore" statement queue details passed 2.3 ms orders SCCs by longest dependency chain, ignores non-ordering and self edges, and sorts ids by code unit statement queue details passed 5.7 ms yields refines to the reverse dependsOn relation statement queue details passed 2.38 ms yields refines to the reverse constrainedBy relation statement queue details passed 2.54 ms yields refines to the reverse decidedBy relation statement queue details passed 1.85 ms chooses a shortest cycle path before breaking ties by target id statement queue details passed 4 ms selects every higher floor, ignores lower or equal floors, and orders only direct waiting links statement queue details passed 3.06 ms selects questions, counts undecided ones, and holds direct typed dependents by stated rung statement queue details passed 4.51 ms
Design view
Requirement drawing
- Satisfying or referencing units: no recorded binding.
The diagram as text
- spec:consumers.readiness-planner.dependency-order: The Spec another rests on comes first in the queue · declared Spec
- spec:consumers.readiness-planner: The readiness planner orders the statements a person can make · declared Spec
- test:protocol.readiness-planner.dependency-order: test:protocol.readiness-planner.dependency-order · anchored test binding · binding present ·
test/self-hosting-readiness-planner.test.ts:204 - spec:consumers.readiness-planner.dependency-order refines spec:consumers.readiness-planner · declared
- spec:consumers.readiness-planner.dependency-order verifies spec:consumers.readiness-planner · declared
- test:protocol.readiness-planner.dependency-order verifies spec:consumers.readiness-planner.dependency-order · 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
- E2: verifies · declared
The diagram as text
- spec:consumers.readiness-planner: The readiness planner orders the statements a person can make
- spec:consumers.readiness-planner.dependency-order: The Spec another rests on comes first in the queue
- spec:consumers.readiness-planner.dependency-order refines spec:consumers.readiness-planner · declared
- spec:consumers.readiness-planner.dependency-order verifies spec:consumers.readiness-planner · 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.readiness-planner · stated ready, floor ready
Rested on by
No Spec rests on this Spec.
Relations
| Relation and direction | Other end | Claim | Reason | Exercised keys |
|---|---|---|---|---|
| refines · outgoing | The readiness planner orders the statements a person can makespec:consumers.readiness-planner · resolves | declared | None | None |
| verifies · outgoing | The readiness planner orders the statements a person can makespec:consumers.readiness-planner · resolves | declared | None | waiting, restsOn, rounds, order |
Bindings
Implementation binding: none
Design reference: none
Verifier binding: present
- test:protocol.readiness-planner.dependency-order · anchored ·
test/self-hosting-readiness-planner.test.ts:204· 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.