outcomeGenerated artifacts are disposable projections
spec:extraction.regenerabilityPacks: pack:self-hosting-v1
Design: no design entries · no pinned declarations · no decisions
Findings: no errors, no warnings
specs/extraction/regenerability.sdp.md
No open questions and no blocking questions; implementation binding present, verifier binding present, and expected-outcome oracle none.
Intent
- Keep the repository canonical while allowing every graph and projection to be rebuilt safely.
Rule
ruleline 15 ·specs/extraction/regenerability.sdp.md:15- Generated artifacts are disposable: deleting them and rebuilding from the same committed repository produces the same bytes.
ruleline 16 ·specs/extraction/regenerability.sdp.md:16- Consumers read the graph or link to source locations recorded in it; they never re-parse source or keep a parallel model.
ruleline 17 ·specs/extraction/regenerability.sdp.md:17- The graph is one JSON document queried in memory.
3 unkeyed rules.
Verification
Verifier bindings
- test:protocol.regenerability · delete and rebuild tests verify byte-identical generated artifacts · anchored · test anchor binding present ·
test/cli.test.ts:53External run evidence from
test/cli.test.tsTest anchors:
test:protocol.engine-provenance,test:protocol.extraction-determinism,test:protocol.projections-model.publication,test:protocol.regenerability,test:protocol.validate-watch. Specs verified by those bindings: spec:consumers.engine-provenance, spec:consumers.projections-model, spec:consumers.validate-watch, spec:extraction.determinism, spec:extraction.regenerability.Run 2: external run evidence from vitest 4.1.10
Build: CI 380 · Branch: feature/roadmap-and-slices-v0 · Commit: 34909918bf0be0e849959644401797191cae379f · Start: 2026-10-22T17:42:16.533Z · Stop: 2026-10-22T17:42:27.785Z
Name Suite Result Duration prints the exact help text for no args sdp cli passed 1.39 ms points operators to the shipped on-ramps and Protocol corpus sdp cli passed 1.4 ms describes both anchor forms and non-failing warnings in help sdp cli passed 0.33 ms prints the exact help text for --help sdp cli passed 0.14 ms builds the checkout-v1 example: writes graph, contracts, and registrar manifest atomically sdp cli passed 92.85 ms invalidates an existing Design Review when build replaces its source graph sdp cli passed 51.1 ms views the self-hosting corpus from the default repository root sdp cli passed 8406.8 ms renders contracts warnings through the one formatter and counts them in the summary sdp cli passed 6.91 ms withholds case-colliding contract paths with a warning: graph kept, nothing gates sdp cli passed 3.45 ms passes --check-clean on the example (determinism self-check through the CLI) sdp cli passed 28.36 ms end-to-end determinism self-check: delete generated/, rebuild, byte-identical sdp cli passed 106.14 ms fails clean on a root that is not a directory: one line, exit 1, never a stack trace sdp cli passed 0.32 ms rejects an unknown option: one line, exit 1, nothing runs sdp cli passed 0.1 ms accepts repeatable --exclude paths for build sdp cli passed 3.25 ms accepts repeatable --exclude paths for validate sdp cli passed 3.57 ms accepts repeatable --exclude paths for view sdp cli passed 4.61 ms uses the identical normalized exclusions in both --check-clean extractions sdp cli passed 4.99 ms refuses invalid --exclude path "" before build writes sdp cli passed 0.75 ms refuses invalid --exclude path "." before build writes sdp cli passed 0.21 ms refuses invalid --exclude path "./explorations" before build writes sdp cli passed 0.27 ms refuses invalid --exclude path "explorations/" before build writes sdp cli passed 0.16 ms refuses invalid --exclude path "/explorations" before build writes sdp cli passed 0.19 ms refuses invalid --exclude path "../x" before build writes sdp cli passed 0.18 ms refuses invalid --exclude path "a/../b" before build writes sdp cli passed 0.13 ms refuses invalid --exclude path "a//b" before build writes sdp cli passed 0.12 ms refuses invalid --exclude path "a\\b" before build writes sdp cli passed 0.21 ms refuses a missing --exclude operand before build writes sdp cli passed 0.28 ms names a flag supplied as an --exclude operand before build writes sdp cli passed 0.19 ms documents repeatable --exclude paths in help sdp cli passed 0.06 ms rejects a second root argument: one line, exit 1, nothing runs sdp cli passed 0.16 ms notes an empty authored model: zero spec files still builds and exits 0, but says where it looked sdp cli passed 0.59 ms renders a finding's location exactly once, from the structured fields: file:line — [severity] sdp cli passed 2.19 ms renders a Gherkin parser failure through the public CLI sdp cli passed 1.24 ms exits 1, writes nothing, and removes a stale graph.json on a hard-error corpus sdp cli passed 1.87 ms fails build on an integer-like design key holding a static value sdp cli passed 1.25 ms fails build on an integer-like design key holding a non-static value sdp cli passed 1.05 ms fails build on an integer-like design key holding a method sdp cli passed 1.09 ms fails build on an integer-like design key holding an accessor sdp cli passed 1.22 ms fails --check-clean on a diverging second extraction: exit 1, the stale graph.json removed sdp cli passed 7.21 ms fails --check-clean on a diverging second contract generation: exit 1, no artifact survives sdp cli passed 18.15 ms owns the contracts tree wholesale: with nothing to generate, a stale contracts dir is removed sdp cli passed 2.71 ms reconciles a registrar sibling that a later generation no longer owes sdp cli passed 19.57 ms fails --check-clean on registrar-byte drift and removes the uncertified known set sdp cli passed 26.76 ms passes --check-clean without a prior manifest when no registrars are owed sdp cli passed 3.91 ms fails --check-clean on registrar manifest whitespace drift sdp cli passed 26 ms fails --check-clean on registrar manifest ignored property drift sdp cli passed 26.54 ms removes graph, contracts, manifest, and registrar siblings after a staged write failure sdp cli passed 19.02 ms fails clean when extraction throws past discovery: one line, exit 1, the stale graph.json removed sdp cli passed 0.6 ms fails clean when generated exists as a file: one line each for build and view, never a stack trace sdp cli passed 5.38 ms names the survivor when a recovery-path removal is denied: a stale artifact never silently reads as current sdp cli passed 0.56 ms stops a build when an existing Design Review cannot be invalidated sdp cli passed 1.62 ms fails clean when the checks throw: one line, exit 1, the built graph.json stays sdp cli passed 2.52 ms suppresses the empty-model note when spec files were found but none reified — a failed file is not an absent one sdp cli passed 1.52 ms treats a root of only ordinary .feature files as an empty authored model, not a missing-identity error sdp cli passed 0.65 ms suppresses the empty-model note when a failed .sdp.gherkin finding.file matches the carrier suffix predicate sdp cli passed 1.01 ms builds a mixed root with one .sdp.gherkin carrier and ignores the ordinary .feature sibling sdp cli passed 0.88 ms removes the temp twin on a failed build and a failed view — no partial .tmp artifact survives sdp cli passed 8.95 ms recognizes the published-bin path: a .bin-style symlink resolves to the entry module sdp cli passed 0.43 ms exits 0 quietly on a stdout EPIPE and stays fatal for any other stream error sdp cli passed 0.53 ms validates the example: exit 0, the artifact written, and no warning sdp cli passed 28.78 ms gates on the checks, not the build: a clean-building broken link validates to exit 1 with the artifact kept sdp cli passed 2.67 ms short-circuits the checks on extraction hard errors: validate keeps build semantics sdp cli passed 1.64 ms prints help plus an unknown-command error sdp cli passed 0.13 ms views the example: validate + the Design Review written, with no warning sdp cli passed 33.87 ms owns the view directory wholesale: a stale page does not survive a re-render sdp cli passed 15.8 ms regenerates the view byte-identically: delete generated/, re-view, same bytes sdp cli passed 24.79 ms writes the view even when checks fail: findings render in it, the exit code is validate's sdp cli passed 2.06 ms keeps build semantics on extraction hard errors: no graph, no view, stale view removed sdp cli passed 1.87 ms fails view --check-clean on a diverging second render: exit 1, the stale view removed sdp cli passed 6.53 ms fails clean when the render throws: one line on stderr, exit 1, the stale view removed sdp cli passed 2.71 ms closes the compiled watch process with exit 0 after operator SIGINT sdp validate --watch passed 299.82 ms documents --watch as a validate-only authoring loop sdp validate --watch passed 0.19 ms rejects --watch on build with a named error and no watcher sdp validate --watch passed 0.18 ms rejects --watch on view with a named error and no watcher sdp validate --watch passed 0.06 ms rejects --watch on census with a named error and no watcher sdp validate --watch passed 0.05 ms rejects --watch on mermaid with a named error and no watcher sdp validate --watch passed 0.05 ms rejects --watch on gherkin with a named error and no watcher sdp validate --watch passed 0.04 ms rejects --watch on import with a named error and no watcher sdp validate --watch passed 0.17 ms rejects --watch on new with a named error and no watcher sdp validate --watch passed 0.2 ms rejects --watch on q with a named error and no watcher sdp validate --watch passed 0.18 ms rejects --watch --check-clean with a named error and no watcher sdp validate --watch passed 0.12 ms installs the watcher before the first validation cycle sdp validate --watch passed 4.45 ms catches an edit during the first cycle with exactly one coalesced rerun sdp validate --watch passed 5.23 ms coalesces a burst during an active cycle into exactly one rerun sdp validate --watch passed 4.92 ms prints validation findings and keeps watching until abort exits 0 sdp validate --watch passed 2.68 ms ignores generated, dist, node_modules, coverage, dot directories, and configured excludes sdp validate --watch passed 5.24 ms coalesces production-shaped events from later turns into one pending rerun sdp validate --watch passed 7.83 ms does not natively subscribe to excluded or generated subtrees sdp validate --watch passed 69.25 ms routes a native watcher error through a typed channel and closes once sdp validate --watch passed 3.1 ms clean-repo determinism: the full pipeline at a different absolute path is byte-identical not recorded passed 67.67 ms prints one line naming the package version and the recorded commit, and exits 0 sdp --version passed 0.49 ms names the commit unknown when the build recorded none or recorded something else sdp --version passed 0.33 ms reads the version from the package manifest two directories above the CLI module sdp --version passed 0.38 ms documents --version and --params in the usage text sdp --version passed 0.14 ms records the checked-out commit at build time, or unknown when git cannot name one sdp --version passed 11.15 ms publishes the commit the build step reads from git beside the CLI sdp --version passed 0.9 ms builds commit metadata from a substituted git archive extracted without .git sdp --version passed 64.59 ms uses only a full archive commit when git gives none, keeping git first sdp --version passed 0.68 ms answers from the compiled CLI with the commit its build recorded beside it sdp --version passed 327.1 ms runs recipe 4 as shipped, its changed files passed with --params @PATH a shipped recipe file through the compiled CLI passed 363.4 ms
Design view
Requirement drawing
- Declared verifying examples: no declared verifying example.
The diagram as text
- spec:extraction.regenerability: Generated artifacts are disposable projections · declared Spec
- spec:extraction.determinism: Committed source derives byte-identical output · declared Spec
- impl:protocol.build-pipeline-emit: stages build outputs, checks determinism and invalidates projections · anchored code ·
src/cli/build-command.ts:251 - test:protocol.regenerability: delete and rebuild tests verify byte-identical generated artifacts · anchored test binding · binding present ·
test/cli.test.ts:53 - spec:extraction.regenerability refines spec:extraction.determinism · declared
- impl:protocol.build-pipeline-emit satisfies spec:extraction.regenerability · anchored
- test:protocol.regenerability verifies spec:extraction.regenerability · 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
component:protocol.cli· entry points, shared build and publication ·src/cli/build-command.ts:32· layer edge · context protocol Uses
component:protocol.adapters· external runtime and source adapters ·src/adapters/vitest.ts:23· layer adapter · context protocol component:protocol.codegen· contracts and registrar output ·src/codegen/contracts.ts:633· layer application · context protocol component:protocol.extract· the carrier and source pipeline ·src/extract/index.ts:192· layer application · context protocol component:protocol.graph· the one graph and its semantic decisions ·src/graph/schema.ts:34· layer domain · context protocol component:protocol.import· canonical conversion with a fidelity boundary ·src/import/import.ts:45· layer application · context protocol component:protocol.model· the authored contracts and stable ids ·src/model/anchors.ts:100· layer domain · context protocol component:protocol.projections· read-only output, layout and owned publication ·src/projections/design-review.ts:29· layer edge · context protocol component:protocol.reader· the typed graph contract and body evaluator ·src/reader/reader.ts:671· layer application · context protocol component:protocol.validate· one finding currency and ordered checks ·src/validate/validators.ts:72· layer domain · context protocol
impl:protocol.build-pipeline-emit· stages build outputs, checks determinism and invalidates projections ·src/cli/build-command.ts:251Component:
component:protocol.cli· entry points, shared build and publication ·src/cli/build-command.ts:32· layer edge · context protocol Uses
None.
Runtime observation: not tracked.
Evidence
Runtime observation: not tracked.
Build attestations: not tracked.
Deployments: not tracked.
Bills of materials: not tracked.
Impact
The diagram as text
- spec:decisions.studio-html-surface: The Studio renders HTML, and the HTML stays derived
- spec:extraction.determinism: Committed source derives byte-identical output
- spec:extraction.regenerability: Generated artifacts are disposable projections
- spec:extraction.regenerability refines spec:extraction.determinism · declared
- spec:decisions.studio-html-surface dependsOn spec:extraction.regenerability · declared — disposable HTML can be regenerated from the graph instead of committed as authored source
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:extraction.determinism · stated ready, floor ready
Rested on by
Distance 1
- spec:decisions.studio-html-surface
Implementing units
None.
Referencing units
None.
Enabled verifiers: None
Distance 2
- spec:consumers.spec-studio
Implementing units
impl:protocol.studio-command·src/cli/studio-command.ts:106impl:protocol.studio-data·src/projections/studio/data.ts:279impl:protocol.studio-frame·src/projections/studio/pages/frame.ts:6
Referencing units
None.
Enabled verifiers: test:protocol.studio-publisher
Distance 3
- spec:consumers.spec-studio.cited-line-text
Implementing units
None.
Referencing units
None.
Enabled verifiers: None
Packs: pack:roadmap, pack:self-hosting-v1
- spec:consumers.spec-studio.components
Implementing units
component:protocol.studio-elements·src/studio-elements/index.ts:13impl:protocol.studio-compose·src/studio-elements/compose.ts:13impl:protocol.studio-diagram-element·src/studio-elements/diagram.ts:23impl:protocol.studio-filter·src/studio-elements/filter.ts:25impl:protocol.studio-intent-panel-element·src/studio-elements/intent-panel-element.ts:14impl:protocol.studio-maturity-map·src/projections/studio/pages/maturity-map.ts:7impl:protocol.studio-pack-page·src/projections/studio/pages/pack-page.ts:68impl:protocol.studio-scenario-editor·src/studio-elements/scenario-editor.ts:17impl:protocol.studio-search-results·src/studio-elements/search-results.ts:95impl:protocol.studio-spec-structure·src/projections/studio/pages/spec-structure.ts:44impl:protocol.studio-verification-panels·src/projections/studio/pages/spec-verification.ts:74
Referencing units
None.
Enabled verifiers: test:protocol.studio-intent-handoff
- spec:consumers.spec-studio.data
Implementing units
impl:protocol.studio-data·src/projections/studio/data.ts:279
Referencing units
None.
Enabled verifiers: test:protocol.studio-data
- spec:consumers.spec-studio.diff-page
Implementing units
impl:protocol.studio-diff·src/projections/studio/pages/diff-page.ts:91
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.diff-page.changed-entry, test:protocol.roadmap-priority
- spec:consumers.spec-studio.export
Implementing units
impl:protocol.studio-diagram-element·src/studio-elements/diagram.ts:23impl:protocol.studio-expander·src/studio-elements/expander.ts:16impl:protocol.studio-pack-export·src/projections/studio/pages/export-page.ts:35impl:protocol.studio-pack-page·src/projections/studio/pages/pack-page.ts:68
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.export.self-contained, test:protocol.studio-intent-handoff
- spec:consumers.spec-studio.glossary-page
Implementing units
impl:protocol.studio-glossary·src/projections/studio/pages/glossary-page.ts:7
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.glossary-page.same-word-twice
- spec:consumers.spec-studio.lenses
Implementing units
impl:protocol.studio-architecture-lens·src/projections/studio/pages/architecture-page.ts:50impl:protocol.studio-evidence-lens·src/projections/studio/pages/evidence-page.ts:3impl:protocol.studio-frame·src/projections/studio/pages/frame.ts:6impl:protocol.studio-tests-lens·src/projections/studio/pages/tests-page.ts:34
Referencing units
None.
Enabled verifiers: test:protocol.studio-lenses
- spec:consumers.spec-studio.navigation
Implementing units
impl:protocol.studio-frame·src/projections/studio/pages/frame.ts:6impl:protocol.studio-index-page·src/projections/studio/pages/index-page.ts:8
Referencing units
None.
Enabled verifiers: test:protocol.studio-navigation, test:protocol.studio-roadmap-page
- spec:consumers.spec-studio.owner-queue
Implementing units
impl:protocol.studio-owner-queue·src/projections/studio/pages/queue-page.ts:9
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.owner-queue.dependency-first
- spec:consumers.spec-studio.pack-page
Implementing units
impl:protocol.studio-pack-page·src/projections/studio/pages/pack-page.ts:68
Referencing units
None.
Enabled verifiers: test:protocol.roadmap-priority, test:protocol.studio-pages
- spec:consumers.spec-studio.publisher
Implementing units
impl:protocol.build-pipeline-emit·src/cli/build-command.ts:251impl:protocol.studio-command·src/cli/studio-command.ts:106impl:protocol.studio-page-catalog·src/projections/studio/pages/index.ts:21impl:protocol.studio-paths·src/projections/studio/paths.ts:2impl:protocol.studio-publish·src/projections/studio/publish.ts:24
Referencing units
None.
Enabled verifiers: test:protocol.studio-data, test:protocol.studio-publisher
- spec:consumers.spec-studio.register-input
Implementing units
None.
Referencing units
None.
Enabled verifiers: None
Packs: pack:roadmap, pack:self-hosting-v1
- spec:consumers.spec-studio.registers
Implementing units
impl:protocol.studio-registers·src/projections/studio/pages/registers-page.ts:47
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.registers.blocking-first
- spec:consumers.spec-studio.responsive
Implementing units
impl:protocol.studio-diagram-element·src/studio-elements/diagram.ts:23impl:protocol.studio-frame·src/projections/studio/pages/frame.ts:6
Referencing units
None.
Enabled verifiers: test:protocol.studio-intent-handoff
- spec:consumers.spec-studio.roadmap-page
Implementing units
impl:protocol.studio-roadmap-page·src/projections/studio/pages/roadmap-page.ts:168
Referencing units
None.
Enabled verifiers: test:protocol.studio-roadmap-page
- spec:consumers.spec-studio.runs-page
Implementing units
impl:protocol.studio-run-rows·src/projections/studio/pages/run-rows.ts:69impl:protocol.studio-runs-page·src/projections/studio/pages/runs-page.ts:6
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.runs-page.external-evidence
- spec:consumers.spec-studio.sharing
Implementing units
impl:protocol.stamp-command·src/cli/stamp-command.ts:8impl:protocol.studio-preview-workflow·test/studio-s4.test.ts:742impl:protocol.studio-stamp·src/studio-elements/stamp.ts:30
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.sharing.stamp-written-apart
- spec:consumers.spec-studio.shell
Implementing units
impl:protocol.studio-code-spans·src/projections/studio/pages/code-spans.ts:9impl:protocol.studio-frame·src/projections/studio/pages/frame.ts:6impl:protocol.studio-html·src/projections/studio/pages/html.ts:8impl:protocol.studio-text·src/projections/studio/pages/text.ts:7
Referencing units
None.
Enabled verifiers: test:protocol.studio-pages
- spec:consumers.spec-studio.slice-page
Implementing units
impl:protocol.studio-slice-page·src/projections/studio/pages/slice-page.ts:25
Referencing units
None.
Enabled verifiers: test:protocol.studio-slice-page
- spec:consumers.spec-studio.spec-page
Implementing units
impl:protocol.studio-requirement-view·src/projections/studio/pages/requirement-view.ts:8impl:protocol.studio-spec-page·src/projections/studio/pages/spec-page.ts:201impl:protocol.studio-spec-structure·src/projections/studio/pages/spec-structure.ts:44
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.spec-page.cited-declaration, test:protocol.studio-architecture-maturity-requirement, test:protocol.studio-panels
- spec:decisions.studio-web-components
Implementing units
None.
Referencing units
None.
Enabled verifiers: None
Distance 4
- spec:consumers.command-line
Implementing units
impl:protocol.adopter-help·src/cli/help.ts:167impl:protocol.agent-surface-cli·src/cli/sdp.ts:94impl:protocol.build-args·src/cli/build-args.ts:11impl:protocol.generate-command·src/cli/generate-command.ts:34
Referencing units
None.
Enabled verifiers: spec:consumers.command-line.generate-check-failure, spec:consumers.command-line.generate-writes-every-root, spec:consumers.command-line.verb-help-touches-nothing
- spec:consumers.spec-studio.capability-map-page
Implementing units
impl:protocol.studio-capabilities-page·src/projections/studio/pages/capabilities-page.ts:78impl:protocol.studio-filter·src/studio-elements/filter.ts:25impl:protocol.studio-frame·src/projections/studio/pages/frame.ts:6impl:protocol.studio-index-page·src/projections/studio/pages/index-page.ts:8
Referencing units
None.
Enabled verifiers: test:protocol.studio-capabilities
- spec:consumers.spec-studio.data.inputs
Implementing units
impl:protocol.studio-base-input·src/cli/studio-inputs.ts:9impl:protocol.studio-command·src/cli/studio-command.ts:106impl:protocol.studio-inputs·src/projections/studio/inputs.ts:1
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.data.inputs.both-given, spec:consumers.spec-studio.data.inputs.graph-only
- spec:consumers.spec-studio.data.recipe-answers
Implementing units
impl:protocol.studio-recipes·src/projections/studio/recipes.ts:34
Referencing units
impl:protocol.studio-register-contracts·src/projections/studio/pages/register-answers.ts:4
Enabled verifiers: test:protocol.studio-lenses
- spec:consumers.spec-studio.diagram-kinds.legibility
Implementing units
impl:protocol.studio-diagram-element·src/studio-elements/diagram.ts:23impl:protocol.studio-diagram-layout·src/projections/studio/diagrams/layout.ts:140impl:protocol.studio-diagrams·src/projections/studio/diagrams/svg.ts:73
Referencing units
None.
Enabled verifiers: test:protocol.studio-diagram-core
- spec:consumers.spec-studio.diagram-kinds.requirement-trace
Implementing units
impl:protocol.studio-requirement-diagram·src/projections/studio/diagrams/requirement.ts:12impl:protocol.studio-requirement-view·src/projections/studio/pages/requirement-view.ts:8
Referencing units
None.
Enabled verifiers: test:protocol.studio-architecture-maturity-requirement, test:protocol.studio-diagram-core
- spec:consumers.spec-studio.diagrams
Implementing units
impl:protocol.studio-architecture-diagrams·src/projections/studio/diagrams/architecture.ts:4impl:protocol.studio-diagram-element·src/studio-elements/diagram.ts:23impl:protocol.studio-diagram-model·src/projections/studio/diagrams/model.ts:1impl:protocol.studio-diagrams·src/projections/studio/diagrams/svg.ts:73impl:protocol.studio-relation-diagrams·src/projections/studio/diagrams/bands.ts:10
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.diagrams.folds-by-context, spec:consumers.spec-studio.diagrams.folds-by-layer, spec:consumers.spec-studio.diagrams.within-bound, test:protocol.studio-diagram-core
- spec:consumers.spec-studio.diff-page.changed-entry
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-diff-changed-entry
- spec:consumers.spec-studio.export.self-contained
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-export-contained
- spec:consumers.spec-studio.glossary-page.same-word-twice
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-glossary-same-word-twice
- spec:consumers.spec-studio.index-page
Implementing units
impl:protocol.studio-index-page·src/projections/studio/pages/index-page.ts:8
Referencing units
None.
Enabled verifiers: test:protocol.studio-pages
- spec:consumers.spec-studio.lenses.architecture
Implementing units
impl:protocol.studio-architecture-lens·src/projections/studio/pages/architecture-page.ts:50
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.lenses.architecture.planned-apart, test:protocol.studio-architecture-maturity-requirement
- spec:consumers.spec-studio.lenses.evidence
Implementing units
impl:protocol.studio-evidence-lens·src/projections/studio/pages/evidence-page.ts:3
Referencing units
None.
Enabled verifiers: test:protocol.studio-lenses
- spec:consumers.spec-studio.lenses.packs
Implementing units
impl:protocol.studio-index-page·src/projections/studio/pages/index-page.ts:8
Referencing units
None.
Enabled verifiers: test:protocol.studio-lenses
- spec:consumers.spec-studio.lenses.tests
Implementing units
impl:protocol.studio-tests-lens·src/projections/studio/pages/tests-page.ts:34
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.lenses.tests.coverage-row
- spec:consumers.spec-studio.owner-queue.dependency-first
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-queue-dependency-first
- spec:consumers.spec-studio.pack-page.maturity-map
Implementing units
impl:protocol.studio-maturity-map·src/projections/studio/pages/maturity-map.ts:7
Referencing units
None.
Enabled verifiers: test:protocol.studio-architecture-maturity-requirement, test:protocol.studio-panels
- spec:consumers.spec-studio.page-elements
Implementing units
component:protocol.studio-elements·src/studio-elements/index.ts:13impl:protocol.studio-copy·src/studio-elements/copy.ts:22impl:protocol.studio-expander·src/studio-elements/expander.ts:16impl:protocol.studio-filter·src/studio-elements/filter.ts:25impl:protocol.studio-search-form·src/studio-elements/search.ts:18impl:protocol.studio-search-results·src/studio-elements/search-results.ts:95impl:protocol.studio-stamp·src/studio-elements/stamp.ts:30
Referencing units
None.
Enabled verifiers: test:protocol.studio-copy-source, test:protocol.studio-page-elements
- spec:consumers.spec-studio.publisher.watch
Implementing units
impl:protocol.studio-watch·src/cli/studio-command.ts:122
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.publisher.watch.matches-plain-run
- spec:consumers.spec-studio.registers.blocking-first
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-registers-blocking-first
- spec:consumers.spec-studio.runs-page.external-evidence
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.run-external
- spec:consumers.spec-studio.search
Implementing units
impl:protocol.studio-concept-match·src/reader/concept-match.ts:43impl:protocol.studio-search-page·src/projections/studio/pages/search-page.ts:5impl:protocol.studio-search-results·src/studio-elements/search-results.ts:95
Referencing units
None.
Enabled verifiers: test:protocol.studio-concept-match, test:protocol.studio-page-elements, test:protocol.studio-pages
- spec:consumers.spec-studio.sharing.stamp-written-apart
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-stamp-apart
- spec:consumers.spec-studio.spec-page.cited-declaration
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-cited-declaration
- spec:consumers.spec-studio.spec-page.core
Implementing units
impl:protocol.studio-spec-page·src/projections/studio/pages/spec-page.ts:201
Referencing units
None.
Enabled verifiers: test:protocol.studio-pages
- spec:consumers.spec-studio.verification-panels
Implementing units
impl:protocol.studio-run-rows·src/projections/studio/pages/run-rows.ts:69impl:protocol.studio-verification-panels·src/projections/studio/pages/spec-verification.ts:74
Referencing units
None.
Enabled verifiers: spec:consumers.spec-studio.verification-panels.rule-coverage, test:protocol.studio-panels
- spec:consumers.studio-on-ramp
Implementing units
impl:protocol.studio-on-ramp·test/skills.test.ts:1693
Referencing units
None.
Enabled verifiers: test:protocol.studio-on-ramp
- spec:decisions.studio-build-renders
Implementing units
None.
Referencing units
impl:protocol.studio-architecture-lens·src/projections/studio/pages/architecture-page.ts:50impl:protocol.studio-diagram-element·src/studio-elements/diagram.ts:23impl:protocol.studio-diagrams·src/projections/studio/diagrams/svg.ts:73impl:protocol.studio-evidence-lens·src/projections/studio/pages/evidence-page.ts:3impl:protocol.studio-recipes·src/projections/studio/recipes.ts:34impl:protocol.studio-tests-lens·src/projections/studio/pages/tests-page.ts:34
Enabled verifiers: None
- spec:decisions.studio-diagram-renderer
Implementing units
None.
Referencing units
impl:protocol.studio-diagram-element·src/studio-elements/diagram.ts:23impl:protocol.studio-diagrams·src/projections/studio/diagrams/svg.ts:73
Enabled verifiers: None
Distance 5
- spec:consumers.command-line.generate-check-failure
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.command-line.generate-check-failure
- spec:consumers.command-line.generate-writes-every-root
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.command-line.generate-writes-every-root
- spec:consumers.command-line.verb-help-touches-nothing
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.command-line.verb-help-touches-nothing
- spec:consumers.engine-provenance
Implementing units
impl:protocol.build-artifacts·src/cli/build-artifacts.ts:182impl:protocol.engine-provenance-cli·src/cli/sdp.ts:102
Referencing units
None.
Enabled verifiers: test:protocol.engine-provenance
- spec:consumers.spec-studio.data.inputs.both-given
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-inputs-both-given
- spec:consumers.spec-studio.data.inputs.graph-only
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-graph-only
- spec:consumers.spec-studio.diagram-kinds
Implementing units
impl:protocol.studio-architecture-lens·src/projections/studio/pages/architecture-page.ts:50impl:protocol.studio-capability-diagrams·src/projections/studio/diagrams/capability.ts:101impl:protocol.studio-diagram-layout·src/projections/studio/diagrams/layout.ts:140impl:protocol.studio-diagram-source·src/projections/studio/diagrams/mermaid.ts:13impl:protocol.studio-diagrams·src/projections/studio/diagrams/svg.ts:73impl:protocol.studio-maturity-map·src/projections/studio/pages/maturity-map.ts:7impl:protocol.studio-requirement-diagram·src/projections/studio/diagrams/requirement.ts:12impl:protocol.studio-slice-architecture·src/projections/studio/diagrams/slice.ts:219impl:protocol.studio-slice-dependencies·src/projections/studio/diagrams/slice.ts:10
Referencing units
None.
Enabled verifiers: test:protocol.studio-diagram-catalog
- spec:consumers.spec-studio.diagram-kinds.edge-routing
Implementing units
impl:protocol.studio-diagram-routing·src/projections/studio/diagrams/routing.ts:38impl:protocol.studio-diagrams·src/projections/studio/diagrams/svg.ts:73
Referencing units
None.
Enabled verifiers: test:protocol.studio-diagram-core
- spec:consumers.spec-studio.diagram-kinds.mermaid-source
Implementing units
impl:protocol.studio-diagram-source·src/projections/studio/diagrams/mermaid.ts:13impl:protocol.studio-diagrams·src/projections/studio/diagrams/svg.ts:73
Referencing units
None.
Enabled verifiers: test:protocol.studio-diagram-core
- spec:consumers.spec-studio.diagram-kinds.scoped-architecture
Implementing units
impl:protocol.studio-slice-architecture·src/projections/studio/diagrams/slice.ts:219
Referencing units
None.
Enabled verifiers: test:protocol.studio-slice-architecture
- spec:consumers.spec-studio.diagrams.folds-by-context
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-diagram-folds-context
- spec:consumers.spec-studio.diagrams.folds-by-layer
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-diagram-folds-layer
- spec:consumers.spec-studio.diagrams.within-bound
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-diagram-within-bound
- spec:consumers.spec-studio.lenses.architecture.planned-apart
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-architecture-planned-apart
- spec:consumers.spec-studio.lenses.architecture.unit-register
Implementing units
impl:protocol.studio-unit-register·src/projections/studio/pages/architecture-register.ts:7
Referencing units
None.
Enabled verifiers: test:protocol.studio-architecture-maturity-requirement
Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1, pack:spec-studio-v1
- spec:consumers.spec-studio.lenses.tests.coverage-row
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-tests-coverage-row
- spec:consumers.spec-studio.publisher.watch.matches-plain-run
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-watch-plain
- spec:consumers.spec-studio.verification-panels.rule-coverage
Implementing units
None.
Referencing units
None.
Enabled verifiers: test:protocol.studio-rule-coverage
- spec:consumers.structural-mermaid
Implementing units
None.
Referencing units
None.
Enabled verifiers: None
Distance 6
- spec:consumers.spec-studio.diagram-kinds.capability-tree
Implementing units
impl:protocol.studio-capability-diagrams·src/projections/studio/diagrams/capability.ts:101impl:protocol.studio-diagram-source·src/projections/studio/diagrams/mermaid.ts:13
Referencing units
None.
Enabled verifiers: test:protocol.studio-capabilities
- spec:consumers.spec-studio.diagram-kinds.dependency
Implementing units
impl:protocol.studio-slice-dependencies·src/projections/studio/diagrams/slice.ts:10
Referencing units
None.
Enabled verifiers: test:protocol.studio-slice-dependency
- spec:consumers.spec-studio.diagram-kinds.maturity-picture
Implementing units
impl:protocol.studio-maturity-map·src/projections/studio/pages/maturity-map.ts:7
Referencing units
None.
Enabled verifiers: test:protocol.studio-architecture-maturity-requirement
Relations
| Relation and direction | Other end | Claim | Reason | Exercised keys |
|---|---|---|---|---|
| refines · outgoing | Committed source derives byte-identical outputspec:extraction.determinism · resolves | declared | None | None |
| dependsOn · incoming | The Studio renders HTML, and the HTML stays derivedspec:decisions.studio-html-surface · resolves | declared | disposable HTML can be regenerated from the graph instead of committed as authored source | None |
Bindings
Implementation binding: present
impl:protocol.build-pipeline-emit· stages build outputs, checks determinism and invalidates projections ·src/cli/build-command.ts:251· role service · component component:protocol.cli· layer edge · context protocol
Design reference: none
Verifier binding: present
- test:protocol.regenerability · delete and rebuild tests verify byte-identical generated artifacts · anchored ·
test/cli.test.ts:53· 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.