Spec Studio

The package ships the Specs and on-ramps its skills cite

spec:consumers.shipped-protocol-corpusUse Case / Behavior · storyready floor ready

Packs: pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/shipped-protocol-corpus.sdp.md

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

The skills and the recipe catalog also send their reader to the glossary, and the catalog to the decision registry, so both ship beside the Specs. An installed package sits under node_modules, which discovery skips, so the shipped Specs never mix into an adopter's own graph.

Intent
problem
The shipped skills and recipes cite Specs by id. An adopter that installs the package has no Spec to read, and an adopter that runs the CLI from a source checkout has the Specs on disk and no pointer to them.
outcome
Ship the Protocol's own corpus in the package and point at it from the CLI, so every cited Spec id leads either adopter to a readable carrier.
Behavior
rule line 21 · specs/consumers/shipped-protocol-corpus.sdp.md:21
Beside the runtime and runnable recipe files in dist/, the package ships the Protocol's Spec and Pack carriers under specs/, the glossary CONTEXT.md, the decision registry docs/concept/DECISIONS.md, the reading, authoring, session, Studio and vault skills under .agents/skills/, the recipe catalog and architecture walkthrough under docs/agent-surface/, and the change-proposal schema under schemas/; package metadata, README and license files also ship.
rule line 22 · specs/consumers/shipped-protocol-corpus.sdp.md:22
An adopter reads a cited Spec through the front door by selecting the package's specs/ directory, installed or checked out, as the root, or by opening the carrier file. sdp --help names that path, as spec:consumers.adopter-on-ramp#rule.helpNamesOnRamps requires.
rule line 23 · specs/consumers/shipped-protocol-corpus.sdp.md:23
The shipped corpus stays outside an adopter's own graph under the canonical discovery rules in spec:extraction.excludes.
rule line 24 · specs/consumers/shipped-protocol-corpus.sdp.md:24
The package ships no source anchors. A graph derived from the shipped corpus answers what the Protocol intends; its delivery facts are empty, and verifier-gap and example-verifier-linkage warnings caused by the absent bindings are not evidence about the Protocol's realization.

4 unkeyed rules.

Verification

Verifier bindings

  • test:protocol.shipped-protocol-corpus · package smoke checks verify the shipped corpus · anchored · test anchor binding present · test/package-smoke.test.ts:259

    External run evidence from test/package-smoke.test.ts

    Test anchors: test:protocol.shipped-protocol-corpus. Specs verified by those bindings: spec:consumers.adopter-on-ramp, spec:consumers.shipped-protocol-corpus.

    Run 1: external run evidence from vitest 4.1.10

    Build: CI 380 · Branch: feature/roadmap-and-slices-v0 · Commit: 34909918bf0be0e849959644401797191cae379f · Start: 2026-10-22T17:40:31.456Z · Stop: 2026-10-22T17:42:16.171Z

    NameSuiteResultDuration
    packing leaves every repository dist file's inode, size and mtime untouchedpublished package surfacepassed874.76 ms
    packs the same files and bytes as npm 11 selects from the built repositorypublished package surfacepassed13214.67 ms
    dist/adapters/vitest.js keeps Vitest runner code outside the packagepublished package surfacepassed2.26 ms
    dist/index.cjs keeps Vitest runner code outside the packagepublished package surfacepassed2.7 ms
    registers and passes one bindExample test with the installed consumer's Vitestpublished package surfacepassed3009.76 ms
    proves the installed tarball lists import, dry-runs conversion without writes, and exposes the barrelpublished package surfacepassed6409 ms
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.shipped-protocol-corpus
The diagram as text
  • spec:consumers.shipped-protocol-corpus: The package ships the Specs and on-ramps its skills cite · declared Spec
  • spec:consumers.authoring-on-ramp: Authors move one Spec from intent to reviewed evidence · declared Spec
  • impl:protocol.shipped-protocol-corpus: asserts the published package ships the Protocol corpus · anchored code · test/package-smoke.test.ts:252
  • test:protocol.shipped-protocol-corpus: package smoke checks verify the shipped corpus · anchored test binding · binding present · test/package-smoke.test.ts:259
  • spec:consumers.shipped-protocol-corpus refines spec:consumers.authoring-on-ramp · declared
  • impl:protocol.shipped-protocol-corpus satisfies spec:consumers.shipped-protocol-corpus · anchored
  • test:protocol.shipped-protocol-corpus verifies spec:consumers.shipped-protocol-corpus · 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
  • impl:protocol.shipped-protocol-corpus · asserts the published package ships the Protocol corpus · test/package-smoke.test.ts:252

    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:consumers.shipped-protocol-corpus
The diagram as text
  • spec:consumers.adopter-on-ramp: An adopter learns graph homes, carrier grammar and shipped paths from the on-ramps
  • spec:consumers.authoring-on-ramp: Authors move one Spec from intent to reviewed evidence
  • spec:consumers.shipped-protocol-corpus: The package ships the Specs and on-ramps its skills cite
  • spec:extraction.excludes: Extraction exclusions are strict consumer input
  • spec:consumers.shipped-protocol-corpus dependsOn spec:extraction.excludes · declared — the shipped corpus stays out of an adopter's graph under its canonical discovery rules
  • spec:consumers.shipped-protocol-corpus refines spec:consumers.authoring-on-ramp · declared
  • spec:consumers.adopter-on-ramp dependsOn spec:consumers.shipped-protocol-corpus · declared — the help points the reader at the corpus the package ships
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

  • spec:consumers.adopter-on-ramp

    Implementing units

    • impl:protocol.adopter-help · src/cli/help.ts:167
    • impl:protocol.adopter-on-ramp · test/skills.test.ts:712

    Referencing units

    None.

    Enabled verifiers: test:protocol.adopter-on-ramp, test:protocol.shipped-protocol-corpus

    Packs: pack:self-hosting-v1

Distance 2

Distance 3

Distance 4

Distance 5

Distance 6

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingExtraction exclusions are strict consumer input
spec:extraction.excludes · resolves
declaredthe shipped corpus stays out of an adopter's graph under its canonical discovery rulesNone
refines · outgoingAuthors move one Spec from intent to reviewed evidence
spec:consumers.authoring-on-ramp · resolves
declaredNoneNone
dependsOn · incomingAn adopter learns graph homes, carrier grammar and shipped paths from the on-ramps
spec:consumers.adopter-on-ramp · resolves
declaredthe help points the reader at the corpus the package shipsNone

Bindings

Implementation binding: present

  • impl:protocol.shipped-protocol-corpus · asserts the published package ships the Protocol corpus · test/package-smoke.test.ts:252

Design reference: none

Verifier binding: present

  • test:protocol.shipped-protocol-corpus · package smoke checks verify the shipped corpus · anchored · test/package-smoke.test.ts:259 · 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.