Spec Studio

The Markdown parser reifies the ruled subset

spec:carrier.markdown-parserUse Case / Behavior · featureready floor ready

Packs: pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/carrier/markdown-parser.sdp.md

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

Intent
problem
Prevent carrier-specific graph and validation paths from diverging.
outcome
Reify authored Markdown without a second graph or validation path.
value
Markdown-carried intent remains subject to the Protocol's deterministic checks.
Behavior
rule line 21 · specs/carrier/markdown-parser.sdp.md:21
The parser accepts the grammar stated by spec:carrier.markdown-body-grammar, keeps matched code spans literal under spec:carrier.inline-code-spans, and excludes a malformed Markdown carrier while continuing healthy siblings.
rule line 22 · specs/carrier/markdown-parser.sdp.md:22
The ruled Markdown parser has bounded finding-class parity with the TypeScript carrier for extract/non-static-envelope, extract/invalid-id, extract/duplicate-id, extract/reserved-property, extract/unowned-prose, and extract/unrecognized-property; both carriers report each of these findings under the same validator id, while severity and extract-versus-refuse outcomes remain carrier-specific.
rule line 23 · specs/carrier/markdown-parser.sdp.md:23
Carrier-specific finding — extract/parse-error remains distinct because YAML/frontmatter parsing has no TypeScript parser-diagnostic analogue.
rule line 24 · specs/carrier/markdown-parser.sdp.md:24
Carrier-specific finding — extract/non-static-section remains distinct because TypeScript degrades optional section properties while Markdown refuses malformed documents whole.
rule line 25 · specs/carrier/markdown-parser.sdp.md:25
A static envelope field that cannot be reified fails extraction in either carrier. A non-static optional TypeScript section property drops with a warning, except the question failures below; a malformed Markdown carrier is refused whole.
rule line 26 · specs/carrier/markdown-parser.sdp.md:26
The TypeScript carrier refuses an integer-like Design or UI key or Model term with an error and drops only that member. An unknown property inside a question, or a malformed question key, is an error at that property; refusing it does not remove the question's blocking flag.
rule line 27 · specs/carrier/markdown-parser.sdp.md:27
In the TypeScript carrier, a non-static value under a question's decider, links, provisional or trigger field drops the whole question list with an error; a non-static question text or blocking flag drops the whole list with a warning.
rule line 28 · specs/carrier/markdown-parser.sdp.md:28
Carrier-specific finding — extract/unrecognized-statement remains distinct because Markdown owns prose and structures, not TypeScript statement recognition.
rule line 29 · specs/carrier/markdown-parser.sdp.md:29
Carrier-specific finding — extract/misplaced-authoring remains distinct because Markdown has no executable authoring-call surface.

9 unkeyed rules.

Verifying examples

One finding class is shared while the carriers' outcomes stay their own · spec:carrier.markdown-parser.bounded-parity · ready floor ready

Executable Spec

Given the paired carrier probes named {probe: "unrecognized-property"}
When both carriers reify their probe
Then both carriers report the finding class {findingId: "extract/unrecognized-property"}
Then the TypeScript carrier reports severity {typeScriptSeverity: "warning"} and extracts {typeScriptSpecs: 1} specs
Then the Markdown carrier reports severity {markdownSeverity: "error"} and extracts {markdownSpecs: 0} specs

Open example

Example space

Given the paired carrier probes named {probe:string}
When both carriers reify their probe
Then both carriers report the finding class {findingId:string}
Then the TypeScript carrier reports severity {typeScriptSeverity:"warning"|"error"} and extracts {typeScriptSpecs:number} specs
Then the Markdown carrier reports severity {markdownSeverity:"warning"|"error"} and extracts {markdownSpecs:number} specs
Verification · executable
criteria
  • Each same-class matrix row reports the same validator id from both carriers, with the specified severity and extraction outcome for each carrier; carrier-specific rows keep their distinct findings.
mode
executable
Verification

Verifier bindings

  • spec:carrier.markdown-parser.bounded-parity · One finding class is shared while the carriers' outcomes stay their own · declared · example enabled · specs/carrier/markdown-parser.bounded-parity.sdp.md

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

    Test anchors: test:protocol.markdown-parser.bounded-parity, test:protocol.open-question-fields.dropped-list-warns, test:protocol.slot-notation.one-literal-binding, test:protocol.slot-notation.refused-guess, test:protocol.slot-notation.typed-declaration. Specs verified by those bindings: spec:carrier.markdown-parser, spec:carrier.markdown-parser.bounded-parity, spec:carrier.slot-notation, spec:carrier.slot-notation.one-literal-binding, spec:carrier.slot-notation.refused-guess, spec:carrier.slot-notation.typed-declaration, spec:model.open-question-fields, spec:model.open-question-fields.dropped-list-warns.

    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
    executes the bound example against a fresh worldOne finding class is shared while the carriers' outcomes stay their own (spec:carrier.markdown-parser.bounded-parity)passed27.95 ms
    executes the bound example against a fresh worldA typed declaration normalizes to the skeleton its binding shares (spec:carrier.slot-notation.typed-declaration)passed0.52 ms
    executes the bound example against a fresh worldA stray brace stays prose while an unusable group stays a named slot (spec:carrier.slot-notation.refused-guess)passed0.38 ms
    executes the bound example against a fresh worldA one-literal group in a vocabulary is a binding that declares nothing (spec:carrier.slot-notation.one-literal-binding)passed2.37 ms
    executes the bound example against a fresh worldA TypeScript question list that cannot be read drops whole with a warning (spec:model.open-question-fields.dropped-list-warns)passed8.41 ms
    drops the whole question list for a non-static question textnot recordedpassed4.35 ms
    drops the whole question list for a non-static blocking flagnot recordedpassed3.64 ms
    drops the whole question list for a spread in the listnot recordedpassed6.65 ms
  • test:protocol.markdown-parser · Markdown reifier tests verify the ruled parser · anchored · test anchor binding present · test/markdown-reifier.test.ts:91

    External run evidence from test/markdown-reifier.test.ts

    Test anchors: test:protocol.envelope-contract, test:protocol.markdown-parser, test:protocol.prose-ownership. Specs verified by those bindings: spec:carrier.envelope-contract, spec:carrier.markdown-parser, spec:carrier.prose-ownership-rule.

    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
    reifies a lawful Markdown Pack manifestMarkdown frontmatter reifierpassed8.88 ms
    refuses a Spec-only key on a PackMarkdown frontmatter reifierpassed1.83 ms
    refuses Pack membership on a SpecMarkdown frontmatter reifierpassed2.21 ms
    refuses a Pack section headingMarkdown frontmatter reifierpassed1.2 ms
    refuses a wrong-namespace Pack memberMarkdown frontmatter reifierpassed0.88 ms
    refuses a reserved derived-name key on a PackMarkdown frontmatter reifierpassed0.67 ms
    refuses a pack: id that fails the id grammarMarkdown frontmatter reifierpassed0.88 ms
    reifies the frozen corpus envelopes at their id token linesMarkdown frontmatter reifierpassed9.43 ms
    maps scalar and list relations in authored orderMarkdown frontmatter reifierpassed1.69 ms
    distinguishes an explicit empty relation set from a missing relation keyMarkdown frontmatter reifierpassed1.69 ms
    refuses warning without throwingMarkdown frontmatter reifierpassed1 ms
    refuses directive without throwingMarkdown frontmatter reifierpassed0.97 ms
    refuses tag without throwingMarkdown frontmatter reifierpassed0.94 ms
    refuses anchor without throwingMarkdown frontmatter reifierpassed0.7 ms
    refuses alias without throwingMarkdown frontmatter reifierpassed0.75 ms
    refuses merge without throwingMarkdown frontmatter reifierpassed0.71 ms
    refuses complex key without throwingMarkdown frontmatter reifierpassed0.72 ms
    refuses non-string scalar without throwingMarkdown frontmatter reifierpassed0.44 ms
    refuses body delimiter without throwingMarkdown frontmatter reifierpassed0.16 ms
    caps findings and leaves a healthy sibling independently reifiableMarkdown frontmatter reifierpassed17.06 ms
    caps body findings with the frozen structure finding IDMarkdown frontmatter reifierpassed1.91 ms
    reports a genuine YAML document warningMarkdown frontmatter reifierpassed0.72 ms
    contains the YAML parser's unknown throw at the public reifier boundaryMarkdown frontmatter reifierpassed16.97 ms
    enforces the 256 KiB carrier byte limit at and immediately over its boundaryMarkdown frontmatter reifierpassed1.7 ms
    enforces the 32 KiB frontmatter byte limit at and immediately over its boundaryMarkdown frontmatter reifierpassed0.87 ms
    enforces the 16 KiB scalar byte limit at and immediately over its boundaryMarkdown frontmatter reifierpassed2.08 ms
    enforces the 2,000 node limit at and immediately over its boundaryMarkdown frontmatter reifierpassed594.17 ms
    enforces the depth limit of 16 at and immediately over its boundaryMarkdown frontmatter reifierpassed6.3 ms
    refuses duplicate relation keysMarkdown frontmatter reifierpassed0.68 ms
    refuses duplicate targets within one relation listMarkdown frontmatter reifierpassed0.43 ms
    refuses an empty relation sequenceMarkdown frontmatter reifierpassed0.48 ms
    refuses a wrong-namespace relation targetMarkdown frontmatter reifierpassed0.37 ms
    refuses an entry address in the Spec id at the field's lineMarkdown frontmatter reifierpassed0.59 ms
    refuses an entry address in a relation target at the field's lineMarkdown frontmatter reifierpassed0.4 ms
    refuses an entry address in a Pack member at the field's lineMarkdown frontmatter reifierpassed0.35 ms
    refuses an entry address in a Pack model reference at the field's lineMarkdown frontmatter reifierpassed1.93 ms
    refuses a Pack whose own id carries an entry address with the namespace reasonMarkdown frontmatter reifierpassed0.53 ms
    accepts distinct relation keys that share a targetMarkdown frontmatter reifierpassed0.53 ms
    accepts a pure CRLF carrierMarkdown frontmatter reifierpassed0.68 ms
    refuses a byte-order markMarkdown frontmatter reifierpassed0.14 ms
    refuses an indented openerMarkdown frontmatter reifierpassed0.07 ms
    refuses a document-end closerMarkdown frontmatter reifierpassed0.07 ms
    refuses a lone CR after a valid LF carrierMarkdown frontmatter reifierpassed0.06 ms
    refuses mixed CRLF and LF newlinesMarkdown frontmatter reifierpassed0.06 ms
    maps the ruled title, intent, and behavior lists from the bodyMarkdown frontmatter reifierpassed0.91 ms
    maps the ruled fences and every remaining typed ownerMarkdown frontmatter reifierpassed2.52 ms
    serializes owned prose canonically across both public carrier reifiersMarkdown frontmatter reifierpassed24.64 ms
    serializes GWT and behavior key permutations to identical bytesMarkdown frontmatter reifierpassed11.1 ms
    omits absent prose fields and rejects constraint-local prose from the TypeScript carrierMarkdown frontmatter reifierpassed5.03 ms
    uses the first minimum heading suggestion within edit distance twoMarkdown frontmatter reifierpassed2.31 ms
    refuses a missing H1 through the frozen body diagnosticMarkdown frontmatter reifierpassed0.59 ms
    refuses an empty H1 through the frozen body diagnosticMarkdown frontmatter reifierpassed0.43 ms
    refuses a heading beyond suggestion distance two through the frozen body diagnosticMarkdown frontmatter reifierpassed0.65 ms
    refuses a tied heading using the first minimum through the frozen body diagnosticMarkdown frontmatter reifierpassed0.75 ms
    refuses a blank line in a fence through the frozen body diagnosticMarkdown frontmatter reifierpassed1.94 ms
    refuses fence attributes through the frozen body diagnosticMarkdown frontmatter reifierpassed0.47 ms
    refuses an unclosed fence through the frozen body diagnosticMarkdown frontmatter reifierpassed0.42 ms
    refuses a gwt fence on a non-example through the frozen body diagnosticMarkdown frontmatter reifierpassed0.43 ms
    refuses an invalid Verification mode through the frozen body diagnosticMarkdown frontmatter reifierpassed0.46 ms
    refuses a repeated identical literal heading through the frozen body diagnosticMarkdown frontmatter reifierpassed0.36 ms
    refuses ordered dot list in narrativeMarkdown frontmatter reifierpassed0.43 ms
    refuses ordered parenthesis list in narrativeMarkdown frontmatter reifierpassed0.34 ms
    refuses star list in narrativeMarkdown frontmatter reifierpassed0.32 ms
    refuses plus list in narrativeMarkdown frontmatter reifierpassed0.33 ms
    refuses ordered dot tab list in narrativeMarkdown frontmatter reifierpassed0.31 ms
    refuses ordered parenthesis tab list in narrativeMarkdown frontmatter reifierpassed0.31 ms
    refuses star tab list in narrativeMarkdown frontmatter reifierpassed0.52 ms
    refuses plus tab list in narrativeMarkdown frontmatter reifierpassed1.2 ms
    refuses HTML comment in narrativeMarkdown frontmatter reifierpassed0.36 ms
    refuses setext equals underline in narrativeMarkdown frontmatter reifierpassed3.51 ms
    refuses setext dash underline in narrativeMarkdown frontmatter reifierpassed0.44 ms
    refuses star thematic break in narrativeMarkdown frontmatter reifierpassed0.36 ms
    refuses underscore thematic break in narrativeMarkdown frontmatter reifierpassed0.32 ms
    refuses ordered list in section proseMarkdown frontmatter reifierpassed0.32 ms
    refuses star list in section proseMarkdown frontmatter reifierpassed0.51 ms
    refuses plus list in section proseMarkdown frontmatter reifierpassed0.37 ms
    refuses setext underline in section proseMarkdown frontmatter reifierpassed0.85 ms
    refuses thematic break in section proseMarkdown frontmatter reifierpassed0.34 ms
    refuses bare HTML opener in section proseMarkdown frontmatter reifierpassed0.36 ms
    refuses dash tab list in section proseMarkdown frontmatter reifierpassed0.36 ms
    refuses HTML comment in section proseMarkdown frontmatter reifierpassed0.34 ms
    refuses processing instruction in section proseMarkdown frontmatter reifierpassed0.38 ms
    refuses declaration in section proseMarkdown frontmatter reifierpassed0.35 ms
    refuses mixed-mode Verification headings instead of overwriting the first sectionMarkdown frontmatter reifierpassed2.91 ms
    preserves Behavior rules when an example Intent appears after BehaviorMarkdown frontmatter reifierpassed0.87 ms
    refuses a GWT fence under ModelMarkdown frontmatter reifierpassed0.64 ms
    refuses an H3 under DesignMarkdown frontmatter reifierpassed0.51 ms
    refuses an open question before its H3 ownerMarkdown frontmatter reifierpassed0.61 ms
    refuses an Intent field after the open-questions H3Markdown frontmatter reifierpassed0.48 ms
    refuses frontmatter title through its ruled diagnosticMarkdown frontmatter reifierpassed0.49 ms
    refuses second H1 through its ruled diagnosticMarkdown frontmatter reifierpassed0.39 ms
    refuses near-miss heading through its ruled diagnosticMarkdown frontmatter reifierpassed0.46 ms
    refuses indented list through its ruled diagnosticMarkdown frontmatter reifierpassed0.43 ms
    refuses empty list through its ruled diagnosticMarkdown frontmatter reifierpassed0.4 ms
    refuses nested list through its ruled diagnosticMarkdown frontmatter reifierpassed0.51 ms
    refuses extra heading space through its ruled diagnosticMarkdown frontmatter reifierpassed0.35 ms
    refuses extra list space through its ruled diagnosticMarkdown frontmatter reifierpassed0.34 ms
    refuses invalid GWT phase through its ruled diagnosticMarkdown frontmatter reifierpassed0.4 ms
    refuses late description through its ruled diagnosticMarkdown frontmatter reifierpassed0.34 ms
    refuses raw HTML through its ruled diagnosticMarkdown frontmatter reifierpassed3.58 ms
    refuses inline raw HTML through its ruled diagnosticMarkdown frontmatter reifierpassed0.43 ms
    refuses trailing prose through its ruled diagnosticMarkdown frontmatter reifierpassed0.5 ms
    refuses unsupported block through its ruled diagnosticMarkdown frontmatter reifierpassed0.36 ms
    refuses reserved authored fact through its ruled diagnosticMarkdown frontmatter reifierpassed0.49 ms
    reads a key after the flag and leaves an unkeyed question without oneopen question keys in the Markdown markerpassed1.41 ms
    refuses the carrier whole on a key with an upper-case first letteropen question keys in the Markdown markerpassed0.47 ms
    refuses the carrier whole on a key with an empty keyopen question keys in the Markdown markerpassed0.39 ms
    refuses the carrier whole on a key with a hyphenopen question keys in the Markdown markerpassed0.36 ms
    refuses the carrier whole on a key with a digit firstopen question keys in the Markdown markerpassed0.37 ms
    refuses the carrier whole on a key with a space insideopen question keys in the Markdown markerpassed0.38 ms
    refuses the carrier whole on a key with a non-ASCII letteropen question keys in the Markdown markerpassed0.34 ms
    refuses the carrier whole on a key an earlier question of the Spec carriesopen question keys in the Markdown markerpassed0.6 ms
    keeps distinct keys that differ only in caseopen question keys in the Markdown markerpassed1.36 ms
    keeps today's refusal for a marker with no space before the hashopen question keys in the Markdown markerpassed0.49 ms
    keeps today's refusal for a marker with two spaces before the hashopen question keys in the Markdown markerpassed1.65 ms
    keeps today's refusal for a marker with a key without its hashopen question keys in the Markdown markerpassed0.37 ms
    refuses a keyed question outside its H3 owner as an unkeyed one is refusedopen question keys in the Markdown markerpassed0.45 ms

Example space

  • probe · string · declared by the paired carrier probes named {probe}

Bound points

Exampleprobe
spec:carrier.markdown-parser.bounded-parity"unrecognized-property"

Oracle binding: none

Coverage

probe: "unrecognized-property" · spec:carrier.markdown-parser.bounded-parity · not enumerable

Unbound

  • probe: None
Design view

Requirement drawing

Requirement drawing for spec:carrier.markdown-parser
The diagram as text
  • spec:carrier.markdown-parser: The Markdown parser reifies the ruled subset · declared Spec
  • spec:carrier.markdown-parser.bounded-parity: One finding class is shared while the carriers' outcomes stay their own · declared Spec
  • spec:carrier.markdown-authoring: Markdown authoring enters the one graph · declared Spec
  • impl:protocol.markdown-parser: reifies Markdown Specs and Packs through one carrier boundary · anchored code · src/extract/markdown.ts:37
  • impl:protocol.static-reification: reifies authored carriers from the AST and never evaluates them · anchored code · src/extract/reify.ts:2139
  • test:protocol.markdown-parser: Markdown reifier tests verify the ruled parser · anchored test binding · binding present · test/markdown-reifier.test.ts:91
  • test:protocol.markdown-parser.bounded-parity: the bounded-parity point verifies one shared finding class and its split outcomes · anchored test binding · binding present · test/self-hosting-carrier.test.ts:149
  • spec:carrier.markdown-parser refines spec:carrier.markdown-authoring · declared
  • spec:carrier.markdown-parser.bounded-parity refines spec:carrier.markdown-parser · declared
  • spec:carrier.markdown-parser.bounded-parity verifies spec:carrier.markdown-parser · declared
  • impl:protocol.markdown-parser satisfies spec:carrier.markdown-parser · anchored
  • impl:protocol.static-reification satisfies spec:carrier.markdown-parser · anchored
  • test:protocol.markdown-parser verifies spec:carrier.markdown-parser · anchored
  • test:protocol.markdown-parser.bounded-parity verifies spec:carrier.markdown-parser.bounded-parity · 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.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol

    Uses

    • component:protocol.graph · the one graph and its semantic decisions · src/graph/schema.ts:34 · layer domain · context protocol
    • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol
    • component:protocol.notation · the leaf step codec · src/notation/slots.ts:261 · layer domain · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.markdown-parser · reifies Markdown Specs and Packs through one carrier boundary · src/extract/markdown.ts:37

    Component: component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol

    Uses

    None.

  • impl:protocol.static-reification · reifies authored carriers from the AST and never evaluates them · src/extract/reify.ts:2139

    Component: component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · 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
Relations of spec:carrier.markdown-parser
The diagram as text
  • spec:carrier.envelope-contract: The Markdown envelope is explicit and bounded
  • spec:carrier.inline-code-spans: Inline code is content, never markup
  • spec:carrier.markdown-authoring: Markdown authoring enters the one graph
  • spec:carrier.markdown-body-grammar: The Markdown body accepts one closed form per section
  • spec:carrier.markdown-pack-authoring: A Pack has a Markdown manifest carrier
  • spec:carrier.markdown-parser: The Markdown parser reifies the ruled subset
  • spec:carrier.markdown-parser.bounded-parity: One finding class is shared while the carriers' outcomes stay their own
  • spec:validation.duplicate-ids: Duplicate carrier IDs are excluded loudly
  • spec:carrier.markdown-parser constrainedBy spec:carrier.inline-code-spans · declared
  • spec:carrier.markdown-parser dependsOn spec:carrier.envelope-contract · declared
  • spec:carrier.markdown-parser dependsOn spec:carrier.markdown-body-grammar · declared
  • spec:carrier.markdown-parser refines spec:carrier.markdown-authoring · declared
  • spec:carrier.markdown-authoring dependsOn spec:carrier.markdown-parser · declared
  • spec:carrier.markdown-pack-authoring dependsOn spec:carrier.markdown-parser · declared
  • spec:validation.duplicate-ids dependsOn spec:carrier.markdown-parser · declared — duplicate exclusion includes the default Markdown carrier
  • spec:carrier.markdown-parser.bounded-parity refines spec:carrier.markdown-parser · declared
  • spec:carrier.markdown-parser.bounded-parity verifies spec:carrier.markdown-parser · 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

Relations

Relation and directionOther endClaimReasonExercised keys
constrainedBy · outgoingInline code is content, never markup
spec:carrier.inline-code-spans · resolves
declaredNoneNone
dependsOn · outgoingThe Markdown envelope is explicit and bounded
spec:carrier.envelope-contract · resolves
declaredNoneNone
dependsOn · outgoingThe Markdown body accepts one closed form per section
spec:carrier.markdown-body-grammar · resolves
declaredNoneNone
refines · outgoingMarkdown authoring enters the one graph
spec:carrier.markdown-authoring · resolves
declaredNoneNone
dependsOn · incomingMarkdown authoring enters the one graph
spec:carrier.markdown-authoring · resolves
declaredNoneNone
dependsOn · incomingA Pack has a Markdown manifest carrier
spec:carrier.markdown-pack-authoring · resolves
declaredNoneNone
dependsOn · incomingDuplicate carrier IDs are excluded loudly
spec:validation.duplicate-ids · resolves
declaredduplicate exclusion includes the default Markdown carrierNone
refines · incomingOne finding class is shared while the carriers' outcomes stay their own
spec:carrier.markdown-parser.bounded-parity · resolves
declaredNoneNone
verifies · incomingOne finding class is shared while the carriers' outcomes stay their own
spec:carrier.markdown-parser.bounded-parity · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.markdown-parser · reifies Markdown Specs and Packs through one carrier boundary · src/extract/markdown.ts:37 · role extractor · component component:protocol.extract · layer application · context protocol
  • impl:protocol.static-reification · reifies authored carriers from the AST and never evaluates them · src/extract/reify.ts:2139 · role extractor · component component:protocol.extract · layer application · context protocol

Design reference: none

Verifier binding: present

  • spec:carrier.markdown-parser.bounded-parity · One finding class is shared while the carriers' outcomes stay their own · declared · specs/carrier/markdown-parser.bounded-parity.sdp.md · example enabled
  • test:protocol.markdown-parser · Markdown reifier tests verify the ruled parser · anchored · test/markdown-reifier.test.ts:91 · 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.