Spec Studio

The Protocol owns the envelope grammar

spec:decisions.envelope-grammar-postureDecision Record · featureready floor ready

Packs: pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/decisions/envelope-grammar-posture.sdp.md

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

Intent
outcome
Keep authored envelope meaning stable while retaining a replaceable parsing representation.
Decision
context
YAML parsing behavior alone cannot define the Protocol's authored contract.
decision
The Protocol owns a bounded envelope grammar and parser policy; the pinned YAML library is a swappable representation behind that contract.
rationale
  • Permissive parsing lets library behavior define meaning, while an owned YAML parser recreates the rejected grammar-maintenance burden.
consequences
  • Unsupported YAML constructs are refused within explicit resource bounds instead of silently becoming carrier semantics.
Verification

Verifier bindings

No verifier binding recorded.

Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
  • Satisfying or referencing units: no recorded binding.
  • Test or oracle bindings: no recorded binding.
Requirement drawing for spec:decisions.envelope-grammar-posture

Arrows: refines (declared).

The diagram as text
  • spec:decisions.envelope-grammar-posture: The Protocol owns the envelope grammar · declared Spec
  • spec:carrier.envelope-contract: The Markdown envelope is explicit and bounded · declared Spec
  • spec:decisions.envelope-grammar-posture refines spec:carrier.envelope-contract · declared
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:decisions.envelope-grammar-posture
The diagram as text
  • spec:carrier.envelope-contract: The Markdown envelope is explicit and bounded
  • spec:decisions.envelope-grammar-posture: The Protocol owns the envelope grammar
  • spec:decisions.envelope-grammar-posture refines spec:carrier.envelope-contract · declared
  • spec:carrier.envelope-contract decidedBy spec:decisions.envelope-grammar-posture · 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

  • spec:carrier.envelope-contract

    Implementing units

    • impl:protocol.envelope-contract · src/extract/markdown-frontmatter.ts:33
    • impl:protocol.markdown-yaml-policy · src/extract/markdown-yaml-policy.ts:33

    Referencing units

    None.

    Enabled verifiers: test:protocol.envelope-contract

    Packs: pack:self-hosting-v1

Distance 2

Distance 3

Distance 4

Distance 5

Distance 6

Distance 7

Distance 8

Distance 9

Distance 10

Relations

Relation and directionOther endClaimReasonExercised keys
refines · outgoingThe Markdown envelope is explicit and bounded
spec:carrier.envelope-contract · resolves
declaredNoneNone
decidedBy · incomingThe Markdown envelope is explicit and bounded
spec:carrier.envelope-contract · resolves
declaredNoneNone

Bindings

Implementation binding: none

Design reference: none

Verifier binding: none

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

Composing (0)

Composing needs the script.