outcomeOne run of sdp generate leaves all five roots current
spec:consumers.command-line.generate-writes-every-rootPacks: pack:adopter-speed-v1, pack:self-hosting-v1
Design: no design entries · no pinned declarations · no decisions
Findings: no errors, no warnings
specs/consumers/command-line.generate-writes-every-root.sdp.md
No open questions and no blocking questions; implementation binding none, verifier binding present, and expected-outcome oracle none.
Given
an extraction root holding two authored Specs and {roots: "a stale page in each of the five projection roots"}When
the command {command: "sdp generate"} runs at that rootThen
the command exits {exitCode: 0}
the stale pages survive: {staleSurvive: false}
the roots holding the current pages for those Specs are {currentRoots: "design-review, census, mermaid, gherkin, spec-studio"}
the absent projection roots are {absentRoots: ""}Composing needs the script.
Intent
- Execute the all-roots verb over a root whose five projection roots each hold a stale page.
assumptions- The world writes an extraction root of two story-altitude behavior Specs stating
idea, each with an Intent outcome, the second declaringrefineson the first, so the Protocol's validators report no finding, and plants one stale page in each of the five projection roots. It runssdp generateon the root, then checks that no stale page survives and that each root's files equal the files its own publisher writes when run alone on a copy of the same root. A list of roots names each by its directory undergenerated/, in the verb's root order, joined by a comma and a space.
- The world writes an extraction root of two story-altitude behavior Specs stating
Behavior
Examples
Given an extraction root holding two authored Specs and {roots: "a stale page in each of the five projection roots"}
When the command {command: "sdp generate"} runs at that root
Then the command exits {exitCode: 0}
Then the stale pages survive: {staleSurvive: false}
Then the roots holding the current pages for those Specs are {currentRoots: "design-review, census, mermaid, gherkin, spec-studio"}
Then the absent projection roots are {absentRoots: ""}Verification
Verifier bindings
- test:protocol.command-line.generate-writes-every-root · anchored · test anchor binding present ·
test/self-hosting-command-line.test.ts:180External run evidence from
test/self-hosting-command-line.test.tsTest anchors:
test:protocol.command-line.generate-check-failure,test:protocol.command-line.generate-writes-every-root,test:protocol.command-line.verb-help-touches-nothing. Specs verified by those bindings: spec:consumers.command-line, spec:consumers.command-line.generate-check-failure, spec:consumers.command-line.generate-writes-every-root, spec:consumers.command-line.verb-help-touches-nothing.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 One run of sdp generate leaves all five roots current (spec:consumers.command-line.generate-writes-every-root) passed 122.72 ms executes the bound example against a fresh world A root that fails its check is removed while sdp generate writes the others (spec:consumers.command-line.generate-check-failure) passed 81.13 ms executes the bound example against a fresh world A publisher's --help prints its help and touches no root (spec:consumers.command-line.verb-help-touches-nothing) passed 2.44 ms
Design view
Requirement drawing
- Satisfying or referencing units: no recorded binding.
The diagram as text
- spec:consumers.command-line.generate-writes-every-root: One run of sdp generate leaves all five roots current · declared Spec
- spec:consumers.command-line: Every verb answers --help, and one verb writes every projection root · declared Spec
- test:protocol.command-line.generate-writes-every-root: test:protocol.command-line.generate-writes-every-root · anchored test binding · binding present ·
test/self-hosting-command-line.test.ts:180 - spec:consumers.command-line.generate-writes-every-root refines spec:consumers.command-line · declared
- spec:consumers.command-line.generate-writes-every-root verifies spec:consumers.command-line · declared
- test:protocol.command-line.generate-writes-every-root verifies spec:consumers.command-line.generate-writes-every-root · 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.command-line: Every verb answers --help, and one verb writes every projection root
- spec:consumers.command-line.generate-writes-every-root: One run of sdp generate leaves all five roots current
- spec:consumers.command-line.generate-writes-every-root refines spec:consumers.command-line · declared
- spec:consumers.command-line.generate-writes-every-root verifies spec:consumers.command-line · 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.command-line · 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 | Every verb answers --help, and one verb writes every projection rootspec:consumers.command-line · resolves | declared | None | None |
| verifies · outgoing | Every verb answers --help, and one verb writes every projection rootspec:consumers.command-line · resolves | declared | None | generateVerb, sameBytes, generateExit |
Bindings
Implementation binding: none
Design reference: none
Verifier binding: present
- test:protocol.command-line.generate-writes-every-root · anchored ·
test/self-hosting-command-line.test.ts:180· 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.