Spec Studio

The Protocol authors and validates itself

spec:protocol.self-hostingUse Case / Behavior · epicready floor ready

Packs: pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/protocol/self-hosting.sdp.md

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

The Protocol's own delivery model exercises the same carrier, graph, checks, and projections offered to consumers.

Intent
outcome
Show that the Protocol carries its own intended truth through the extraction, validators and projections it offers adopters.
Behavior
rule line 28 · specs/protocol/self-hosting.sdp.md:28
All authored carriers derive one regenerable graph through one validation path.
rule line 29 · specs/protocol/self-hosting.sdp.md:29
Self-hosting remains deterministic in a clean clone.

2 unkeyed rules.

Verification

Verifier bindings

  • test:protocol.self-hosting · checks that the corpus derives one graph through the one validation path · anchored · test anchor binding present · test/self-hosting-graph.test.ts:81

    External run evidence from test/self-hosting-graph.test.ts

    Test anchors: test:protocol.self-hosting, test:protocol.structural-self-binding. Specs verified by those bindings: spec:model.structural-patterns, spec:protocol.self-hosting, spec:protocol.significant-units-review, spec:protocol.structural-self-binding.

    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
    traces changes to 'test/self-hosting-oracle/structural-e…' through its realizing anchorthe self-hosting corpuspassed82.88 ms
    traces changes to 'test/helpers/validator-probes.ts' through its realizing anchorthe self-hosting corpuspassed48.41 ms
    reifies the root corpus without an extraction findingthe self-hosting corpuspassed0.27 ms
    reports exactly the retained verifier gaps and no unbacked prose mentionthe self-hosting corpuspassed42.46 ms
    holds the frozen corpus totalsthe self-hosting corpuspassed2.28 ms
    permits a named second diagram view in the authored element-id contractthe self-hosting corpuspassed86.41 ms
    states the owner queue's reader lookup by Spec and question keythe self-hosting corpuspassed35.31 ms
    names vault and stamp beside every other help verb in the authored contractthe self-hosting corpuspassed38.73 ms
    rosters exactly the authored Spec, Pack, and anchor node idsthe self-hosting corpuspassed1.9 ms
    carries the authored descriptors of the carrier familythe self-hosting corpuspassed3 ms
    carries the authored descriptors of the protocol familythe self-hosting corpuspassed0.6 ms
    carries the authored descriptors of the extraction familythe self-hosting corpuspassed1.39 ms
    carries the authored descriptors of the validation familythe self-hosting corpuspassed3.28 ms
    carries the authored descriptors of the model familythe self-hosting corpuspassed1.68 ms
    carries the authored descriptors of the observation familythe self-hosting corpuspassed0.45 ms
    carries the authored descriptors of the consumers familythe self-hosting corpuspassed7.69 ms
    carries the authored descriptors of the decisions familythe self-hosting corpuspassed3.55 ms
    leaves no authored Spec outside the familiesthe self-hosting corpuspassed0.99 ms
    derives exactly the authored declared relationsthe self-hosting corpuspassed9.73 ms
    holds the frozen stated-readiness distributionthe self-hosting corpuspassed0.66 ms
    derives the Pack membership edges from the manifest, in manifest orderthe self-hosting corpuspassed2.59 ms
    carries the Pack aggregate nodes exactly as authoredthe self-hosting corpuspassed0.47 ms
    derives the independent zero-to-many binding edge rosterthe self-hosting corpuspassed7.9 ms
    rosters exactly the accepted component setthe self-hosting corpuspassed0.39 ms
    gives every owned impl/api CodeNode exactly one componentthe self-hosting corpuspassed20.85 ms
    derives exactly the sparse authored component uses edgesthe self-hosting corpuspassed0.46 ms
    covers every accepted architecturally significant unitthe self-hosting corpuspassed858.17 ms
    gives every accepted unit a readable responsibility labelthe self-hosting corpuspassed4.54 ms
    detects a missing accepted member independently of the sourcethe self-hosting corpuspassed8.37 ms
    detects extra unrostered membership independently of the sourcethe self-hosting corpuspassed62 ms
    finds every converted comment anchor at its block's first linethe self-hosting corpuspassed15.34 ms
    projects every anchor and code node at the line its declaration occupiesthe self-hosting corpuspassed91.42 ms
    rejects comment-only and string activation sites and accepts executable callsthe self-hosting corpuspassed1.32 ms
    keeps every anchor beside the site it bindsthe self-hosting corpuspassed1187.88 ms
    derives the duplicate-ids delivery facts from the bindings, never from authoringthe self-hosting corpuspassed1.09 ms
    derives sdp-import realization from its direct code and child verifier bindingsthe self-hosting corpuspassed0.26 ms
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:protocol.self-hosting
Requirement drawing for spec:protocol.self-hostingrefines · declaredsatisfies · anchoredsatisfies · anchoredrefines · declaredrefines · declaredrefines · declaredverifies · anchoredverifies · anchoredverifies · anchoredverifies · anchoredIntended Specs8 refining Specs · declared, folded8 refining Specs · declaredspec:protocol.self-hostingThe Protocol authors andvalidates itselfspec:protocol.self-hostingdeclared SpecSatisfying or referencingunits4 satisfying units · anchored, folded4 satisfying units ·anchoredTest or oracle bindingstest:protocol.capability-epicstest:protocol.capability-epics…capability-epicsanchored test binding ·binding presenttest:protocol.roadmap-practicetest:protocol.roadmap-practice…roadmap-practiceanchored test binding ·binding presenttest:protocol.self-hostingchecks that the corpusderives one graph throughthe one validation pathtest:protocol.self-hostinganchored test binding ·binding presenttest:protocol.structural-self-bindingchecks the acceptedmembership and helpercoverage, authored uses,and pinned anchor roles,layers and contexts…structural-self-bindinganchored test binding ·binding presentOutside the selected setspec:protocol.delivery-record-cleanupThe Protocol removes itsfrozen plans, reviewreports and supersededconcept material…delivery-record-cleanupdeclared Specspec:protocol.role-vocabularyThe engine's architecturalroles each name one pattern…role-vocabularydeclared Specspec:protocol.significant-units-reviewThe engine's accepted setcovers its significantabstractions and only those…significant-units-reviewdeclared Spec
The diagram as text
  • spec:protocol.self-hosting: The Protocol authors and validates itself · declared Spec
  • spec:decisions.adopt-the-nouns: Delivery nouns remain familiar without workflow gates · declared Spec
  • spec:decisions.concept-docs-dissolve: Concept documents may dissolve after executable truth lands · declared Spec
  • spec:decisions.executable-meta-model: The Protocol is an executable meta-model · declared Spec
  • spec:decisions.plain-language-references: Durable references lead with meaning · declared Spec
  • spec:decisions.protocol-naming: The meta-model is a software delivery protocol · declared Spec
  • spec:protocol.capability-epics: The Protocol organizes its own features in capability epics · declared Spec
  • spec:protocol.roadmap-replaces-plans: The Protocol reads its next work from its roadmap and keeps its delivery record in git and its pull requests · declared Spec
  • spec:protocol.structural-self-binding: The engine's structural self-binding covers its architecturally significant units · declared Spec
  • spec:protocol.delivery-record-cleanup: The Protocol removes its frozen plans, review reports and superseded concept material · declared Spec
  • spec:protocol.role-vocabulary: The engine's architectural roles each name one pattern · declared Spec
  • spec:protocol.significant-units-review: The engine's accepted set covers its significant abstractions and only those · declared Spec
  • impl:protocol.capability-epics: asserts realization of the capability epics in the shipped corpus's refinement · anchored code · test/recipes.test.ts:8173
  • impl:protocol.roadmap-practice: realizes the roadmap handbook and its current-record gate · anchored code · test/check-self-hosting-gates.test.ts:52
  • impl:protocol.self-hosting: realizes the self-hosted corpus through the shared extraction and validation path · anchored code · test/self-hosting-graph.test.ts:136
  • impl:protocol.structural-self-binding: realizes the declared significant-unit set and its structural self-binding · anchored code · test/self-hosting-oracle/structural-edges.ts:76
  • test:protocol.capability-epics: test:protocol.capability-epics · anchored test binding · binding present · test/recipes.test.ts:8179
  • test:protocol.roadmap-practice: test:protocol.roadmap-practice · anchored test binding · binding present · test/check-self-hosting-gates.test.ts:59
  • test:protocol.self-hosting: checks that the corpus derives one graph through the one validation path · anchored test binding · binding present · test/self-hosting-graph.test.ts:81
  • test:protocol.structural-self-binding: checks the accepted membership and helper coverage, authored uses, and pinned anchor roles, layers and contexts · anchored test binding · binding present · test/self-hosting-graph.test.ts:88
  • spec:decisions.adopt-the-nouns refines spec:protocol.self-hosting · declared
  • spec:decisions.concept-docs-dissolve refines spec:protocol.self-hosting · declared
  • spec:decisions.executable-meta-model refines spec:protocol.self-hosting · declared
  • spec:decisions.plain-language-references refines spec:protocol.self-hosting · declared
  • spec:decisions.protocol-naming refines spec:protocol.self-hosting · declared
  • spec:protocol.capability-epics refines spec:protocol.self-hosting · declared
  • spec:protocol.delivery-record-cleanup refines spec:protocol.roadmap-replaces-plans · declared — carries out the removal the roadmap and the pull request record made possible for frozen history
  • spec:protocol.roadmap-replaces-plans refines spec:protocol.self-hosting · declared
  • spec:protocol.role-vocabulary refines spec:protocol.structural-self-binding · declared — names what each role value the engine's significant units carry means
  • spec:protocol.significant-units-review refines spec:protocol.structural-self-binding · declared — states what the independently reviewed accepted set must contain and exclude
  • spec:protocol.structural-self-binding refines spec:protocol.self-hosting · declared
  • impl:protocol.capability-epics satisfies spec:protocol.capability-epics · anchored
  • impl:protocol.roadmap-practice satisfies spec:protocol.roadmap-replaces-plans · anchored
  • impl:protocol.self-hosting satisfies spec:protocol.self-hosting · anchored
  • impl:protocol.structural-self-binding satisfies spec:protocol.structural-self-binding · anchored
  • test:protocol.capability-epics verifies spec:protocol.capability-epics · anchored
  • test:protocol.roadmap-practice verifies spec:protocol.roadmap-replaces-plans · anchored
  • test:protocol.self-hosting verifies spec:protocol.self-hosting · anchored
  • test:protocol.structural-self-binding verifies spec:protocol.structural-self-binding · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

Preferred syntax: requirementDiagram. Chosen syntax: flowchart TB because folds require exact labels unavailable in requirement syntax.

Decisions

Runtime
  • impl:protocol.self-hosting · realizes the self-hosted corpus through the shared extraction and validation path · test/self-hosting-graph.test.ts:136

    Uses

    None.

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:protocol.self-hosting
The diagram as text
  • spec:carrier.markdown-authoring: Markdown authoring enters the one graph
  • spec:decisions.adopt-the-nouns: Delivery nouns remain familiar without workflow gates
  • spec:decisions.concept-docs-dissolve: Concept documents may dissolve after executable truth lands
  • spec:decisions.executable-meta-model: The Protocol is an executable meta-model
  • spec:decisions.one-validation-path: Validation follows one graph
  • spec:decisions.plain-language-references: Durable references lead with meaning
  • spec:decisions.protocol-naming: The meta-model is a software delivery protocol
  • spec:model.core-model: The Protocol models delivery with one enrichable Spec
  • spec:protocol.capability-epics: The Protocol organizes its own features in capability epics
  • spec:protocol.roadmap-replaces-plans: The Protocol reads its next work from its roadmap and keeps its delivery record in git and its pull requests
  • spec:protocol.self-hosting: The Protocol authors and validates itself
  • spec:protocol.structural-self-binding: The engine's structural self-binding covers its architecturally significant units
  • spec:protocol.self-hosting decidedBy spec:decisions.adopt-the-nouns · declared
  • spec:protocol.self-hosting decidedBy spec:decisions.concept-docs-dissolve · declared
  • spec:protocol.self-hosting decidedBy spec:decisions.executable-meta-model · declared
  • spec:protocol.self-hosting decidedBy spec:decisions.one-validation-path · declared
  • spec:protocol.self-hosting decidedBy spec:decisions.plain-language-references · declared
  • spec:protocol.self-hosting decidedBy spec:decisions.protocol-naming · declared
  • spec:protocol.self-hosting dependsOn spec:carrier.markdown-authoring · declared — the self-hosted corpus uses the Markdown carrier
  • spec:protocol.self-hosting dependsOn spec:model.core-model · declared — the self-hosted corpus is authored as Specs on the Protocol's core model
  • spec:decisions.adopt-the-nouns refines spec:protocol.self-hosting · declared
  • spec:decisions.concept-docs-dissolve refines spec:protocol.self-hosting · declared
  • spec:decisions.executable-meta-model refines spec:protocol.self-hosting · declared
  • spec:decisions.plain-language-references refines spec:protocol.self-hosting · declared
  • spec:decisions.protocol-naming refines spec:protocol.self-hosting · declared
  • spec:protocol.capability-epics refines spec:protocol.self-hosting · declared
  • spec:protocol.roadmap-replaces-plans refines spec:protocol.self-hosting · declared
  • spec:protocol.structural-self-binding refines spec:protocol.self-hosting · 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

Distance 1

Distance 2

Distance 3

Distance 4

Distance 5

Distance 6

Distance 7

Distance 8

Distance 9

Distance 10

Distance 11

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingDelivery nouns remain familiar without workflow gates
spec:decisions.adopt-the-nouns · resolves
declaredNoneNone
decidedBy · outgoingConcept documents may dissolve after executable truth lands
spec:decisions.concept-docs-dissolve · resolves
declaredNoneNone
decidedBy · outgoingThe Protocol is an executable meta-model
spec:decisions.executable-meta-model · resolves
declaredNoneNone
decidedBy · outgoingValidation follows one graph
spec:decisions.one-validation-path · resolves
declaredNoneNone
decidedBy · outgoingDurable references lead with meaning
spec:decisions.plain-language-references · resolves
declaredNoneNone
decidedBy · outgoingThe meta-model is a software delivery protocol
spec:decisions.protocol-naming · resolves
declaredNoneNone
dependsOn · outgoingMarkdown authoring enters the one graph
spec:carrier.markdown-authoring · resolves
declaredthe self-hosted corpus uses the Markdown carrierNone
dependsOn · outgoingThe Protocol models delivery with one enrichable Spec
spec:model.core-model · resolves
declaredthe self-hosted corpus is authored as Specs on the Protocol's core modelNone
refines · incomingDelivery nouns remain familiar without workflow gates
spec:decisions.adopt-the-nouns · resolves
declaredNoneNone
refines · incomingConcept documents may dissolve after executable truth lands
spec:decisions.concept-docs-dissolve · resolves
declaredNoneNone
refines · incomingThe Protocol is an executable meta-model
spec:decisions.executable-meta-model · resolves
declaredNoneNone
refines · incomingDurable references lead with meaning
spec:decisions.plain-language-references · resolves
declaredNoneNone
refines · incomingThe meta-model is a software delivery protocol
spec:decisions.protocol-naming · resolves
declaredNoneNone
refines · incomingThe Protocol organizes its own features in capability epics
spec:protocol.capability-epics · resolves
declaredNoneNone
refines · incomingThe Protocol reads its next work from its roadmap and keeps its delivery record in git and its pull requests
spec:protocol.roadmap-replaces-plans · resolves
declaredNoneNone
refines · incomingThe engine's structural self-binding covers its architecturally significant units
spec:protocol.structural-self-binding · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.self-hosting · realizes the self-hosted corpus through the shared extraction and validation path · test/self-hosting-graph.test.ts:136

Design reference: none

Verifier binding: present

  • test:protocol.self-hosting · checks that the corpus derives one graph through the one validation path · anchored · test/self-hosting-graph.test.ts:81 · 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.