Spec Studio

A shaping decision comes before its member

spec:consumers.design-slice.decision-backlinkExample / Scenario · storyready floor ready

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

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

Findings: no errors, no warnings

specs/consumers/design-slice.decision-backlink.sdp.md

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

Intent
outcome
A shaping decision comes before its member.
Behavior

Examples

Given a probe Pack whose members {structure: "include a decision that refines the member it shapes"}
Given one member depends on an outside Spec {outside: "that no code satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, matching every declared value"}
When the design slice runs over the probe Pack
Then the members read in depth order {order: "spec:probe.base, spec:probe.design, spec:probe.top"}
Verification

Verifier bindings

  • test:protocol.design-slice.decision-backlink · anchored · test anchor binding present · test/self-hosting-design-slice.test.ts:774

    External run evidence from test/self-hosting-design-slice.test.ts

    Test anchors: test:protocol.design-slice, test:protocol.design-slice.chain, test:protocol.design-slice.component-absent, test:protocol.design-slice.component-differing, test:protocol.design-slice.component-matching, test:protocol.design-slice.component-unreadable, test:protocol.design-slice.component-unrelated, test:protocol.design-slice.decision-backlink, test:protocol.design-slice.dependency-cycle, test:protocol.design-slice.folded-example, test:protocol.design-slice.independent-example, test:protocol.design-slice.outside-components, test:protocol.design-slice.outside-holding, test:protocol.design-slice.outside-satisfied, test:protocol.design-slice.outside-unbound. Specs verified by those bindings: spec:consumers.design-slice, spec:consumers.design-slice.chain, spec:consumers.design-slice.component-absent, spec:consumers.design-slice.component-differing, spec:consumers.design-slice.component-matching, spec:consumers.design-slice.component-unreadable, spec:consumers.design-slice.component-unrelated, spec:consumers.design-slice.decision-backlink, spec:consumers.design-slice.dependency-cycle, spec:consumers.design-slice.folded-example, spec:consumers.design-slice.independent-example, spec:consumers.design-slice.outside-components, spec:consumers.design-slice.outside-holding, spec:consumers.design-slice.outside-satisfied, spec:consumers.design-slice.outside-unbound.

    Run 1: external run evidence from vitest 4.1.10

    Build: CI 433 · Branch: fix/second-review-pass · Commit: 6375b6e431a7cf885a49befec76d7876cd3e538c · Start: 2026-11-04T07:12:23.076Z · Stop: 2026-11-04T07:15:49.695Z

    NameSuiteResultDuration
    keeps authored order while assigning depth and composing whole-Pack boundarydesign slicepassed38.98 ms
    keeps summary totals, selected full members and explicit omissionsdesign slicepassed40.6 ms
    reads an ordered Spec list and a narrowed Pack, marking excluded Pack membersdesign slicepassed16.15 ms
    only suppresses a refinement the target answers with dependsOndesign slicepassed6.76 ms
    only suppresses a refinement the target answers with constrainedBydesign slicepassed6.4 ms
    only suppresses a refinement the target answers with decidedBydesign slicepassed5.96 ms
    lists cycles at the depth after their deepest outside prerequisitedesign slicepassed8.89 ms
    does not fold an example with another refines in either direction or across the boundarydesign slicepassed13.05 ms
    does not fold an example with another dependsOn in either direction or across the boundarydesign slicepassed12.65 ms
    does not fold an example with another constrainedBy in either direction or across the boundarydesign slicepassed9.65 ms
    does not fold an example with another decidedBy in either direction or across the boundarydesign slicepassed11.19 ms
    accumulates diagnostics in contract order and skips dependent checksdesign slicepassed59.09 ms
    pins the component Design grammar and totals to recipe 43design slicepassed45.71 ms
    executes the bound example against a fresh worldOutside components stop at the touched components' neighbors (spec:consumers.design-slice.outside-components)passed12.73 ms
    executes the bound example against a fresh worldMembers rest on a chain (spec:consumers.design-slice.chain)passed7.69 ms
    executes the bound example against a fresh worldA shaping decision comes before its member (spec:consumers.design-slice.decision-backlink)passed6.86 ms
    executes the bound example against a fresh worldA cycle shares a depth (spec:consumers.design-slice.dependency-cycle)passed8.06 ms
    executes the bound example against a fresh worldAn example folds without lending its readiness (spec:consumers.design-slice.folded-example)passed9.01 ms
    executes the bound example against a fresh worldAn example with its own dependency stays unfolded (spec:consumers.design-slice.independent-example)passed6.78 ms
    executes the bound example against a fresh worldAn unanchored component design stays visible (spec:consumers.design-slice.component-absent)passed7.58 ms
    executes the bound example against a fresh worldAn anchor alone does not realize a component design (spec:consumers.design-slice.component-unrelated)passed5.9 ms
    executes the bound example against a fresh worldA realized component matches its declared values (spec:consumers.design-slice.component-matching)passed7.14 ms
    executes the bound example against a fresh worldA realized component keeps its differing layer and uses apart (spec:consumers.design-slice.component-differing)passed12.85 ms
    executes the bound example against a fresh worldAn unreadable declared layer stays visible (spec:consumers.design-slice.component-unreadable)passed7.72 ms
    executes the bound example against a fresh worldA prerequisite reaches its satisfying component (spec:consumers.design-slice.outside-satisfied)passed7.47 ms
    executes the bound example against a fresh worldAn unbound prerequisite invents no component (spec:consumers.design-slice.outside-unbound)passed6.55 ms
    executes the bound example against a fresh worldAn outside prerequisite names the member it holds (spec:consumers.design-slice.outside-holding)passed7.33 ms
    keeps unresolved targets and boundary relation reasons in the recipe answerdesign slice compositionpassed4.74 ms
    keeps bindings to unresolved components unplaced rather than touching an invented componentdesign slice compositionpassed8.04 ms
    pins every full and summary row shape to the carrying Design entriesdesign slice compositionpassed56.29 ms
    reports outside holds, waiting statements, decision replacements and own-Spec question holdsdesign slice compositionpassed29.18 ms
    the executable order observation rejects rest on each other in a chain with setDepth[index] = 1;design slice compositionpassed11.9 ms
    the executable order observation rejects include a decision that refines the member it shapes with setDepth[index] = 1;design slice compositionpassed14 ms
    the executable order observation rejects include a decision that refines the member it shapes with edge.orders = true;design slice compositionpassed10.26 ms
    the executable assertions reject missing rest on each other in a chain evidence for scopedesign slice compositionpassed16.66 ms
    the executable assertions reject missing rest on each other in a chain evidence for memberColumnsdesign slice compositionpassed9.17 ms
    the executable assertions reject missing include a decision that refines the member it shapes evidence for decisionsInScopedesign slice compositionpassed8.3 ms
    the executable assertions reject missing include an example that refines a member and depends on an outside Spec evidence for boundarydesign slice compositionpassed7.74 ms
    the executable assertions reject missing include two members that depend on each other evidence for depthdesign slice compositionpassed11.51 ms
    counts only example-kind declared verifiers as examples, keeping all verifiersdesign slice compositionpassed10.62 ms
    names the hold detail and decision shape lists the summary omitsdesign slice compositionpassed5.63 ms
    summarizes component and design rows without losing totalsdesign slice compositionpassed21.76 ms
    keeps all binding paths, unplaced units, pair counts and planned uses apartdesign slice compositionpassed12.05 ms
    reads outside decisions and orders their questions before non-blocking member questionsdesign slice compositionpassed12.06 ms
    reads declared values with the realization comparison grammar: {"layer":"`domain` explanation","context":"``probe`` explanation","role":"service","uses":"`none` explanation"}design slice compositionpassed9.91 ms
    reads declared values with the realization comparison grammar: {"layer":"Domain","context":"Bad","role":"bad_role","uses":"component:probe.bad, invalid"}design slice compositionpassed9.85 ms
    reads declared values with the realization comparison grammar: {"uses":"component:probe.z, component:probe.a, component:probe.z"}design slice compositionpassed10.98 ms
    reads declared values with the realization comparison grammar: {}design slice compositionpassed9.84 ms
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.design-slice.decision-backlink
The diagram as text
  • spec:consumers.design-slice.decision-backlink: A shaping decision comes before its member · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • test:protocol.design-slice.decision-backlink: test:protocol.design-slice.decision-backlink · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:774
  • spec:consumers.design-slice.decision-backlink refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.decision-backlink verifies spec:consumers.design-slice · declared
  • test:protocol.design-slice.decision-backlink verifies spec:consumers.design-slice.decision-backlink · 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.design-slice.decision-backlink
  • E2: verifies · declared
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.design-slice.decision-backlink: A shaping decision comes before its member
  • spec:consumers.design-slice.decision-backlink refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.decision-backlink verifies spec:consumers.design-slice · 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 · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
verifies · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNonerestsOn, depth, decisionsInScope

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.design-slice.decision-backlink · anchored · test/self-hosting-design-slice.test.ts:774 · 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.