outcomeA malformed relation target is refused
spec:carrier.gherkin-authoring.malformed-relation-refusedPacks: pack:self-hosting-v1
Design: no design entries · no pinned declarations · no decisions
Findings: no errors, no warnings
specs/carrier/gherkin-authoring.malformed-relation-refused.sdp.md
No open questions and no blocking questions; implementation binding none, verifier binding present, and expected-outcome oracle none.
Given
the Gherkin fixture corpus {probe: "malformed-relation"}When
the fixture corpus is extracted and validated
Then
extraction reports {findingCount: 1} findings
the first finding is {findingId: "extract/invalid-id"} at line {line: 4}
the graph omits the Spec {absentId: "spec:fixture.malformed-relation"}Composing needs the script.
Intent
- Prove every Gherkin relation target restores to a lawful Spec ID before it can enter the graph.
Behavior
Examples
Given the Gherkin fixture corpus {probe: "malformed-relation"}
When the fixture corpus is extracted and validated
Then extraction reports {findingCount: 1} findings
Then the first finding is {findingId: "extract/invalid-id"} at line {line: 4}
Then the graph omits the Spec {absentId: "spec:fixture.malformed-relation"}Verification
Verifier bindings
- test:protocol.gherkin-authoring.malformed-relation-refused · the malformed-relation-refused point verifies the Gherkin carrier contract · anchored · test anchor binding present ·
test/self-hosting-carrier-gherkin.test.ts:481External run evidence from
test/self-hosting-carrier-gherkin.test.tsTest anchors:
test:protocol.gherkin-authoring.authored-fact-refused,test:protocol.gherkin-authoring.contract-parity,test:protocol.gherkin-authoring.description-location-refused,test:protocol.gherkin-authoring.duplicate-surface-refused,test:protocol.gherkin-authoring.example-space-extraction,test:protocol.gherkin-authoring.malformed-relation-refused,test:protocol.gherkin-authoring.missing-id-refused,test:protocol.gherkin-authoring.multi-finding-bounded,test:protocol.gherkin-authoring.parent-child-extraction,test:protocol.gherkin-authoring.step-less-scenario-refused,test:protocol.gherkin-authoring.unbound-ready-refused,test:protocol.gherkin-authoring.unknown-tag-refused,test:protocol.gherkin-authoring.unsupported-construct-refused. Specs verified by those bindings: spec:carrier.gherkin-authoring, spec:carrier.gherkin-authoring.authored-fact-refused, spec:carrier.gherkin-authoring.contract-parity, spec:carrier.gherkin-authoring.description-location-refused, spec:carrier.gherkin-authoring.duplicate-surface-refused, spec:carrier.gherkin-authoring.example-space-extraction, spec:carrier.gherkin-authoring.malformed-relation-refused, spec:carrier.gherkin-authoring.missing-id-refused, spec:carrier.gherkin-authoring.multi-finding-bounded, spec:carrier.gherkin-authoring.parent-child-extraction, spec:carrier.gherkin-authoring.step-less-scenario-refused, spec:carrier.gherkin-authoring.unbound-ready-refused, spec:carrier.gherkin-authoring.unknown-tag-refused, spec:carrier.gherkin-authoring.unsupported-construct-refused, spec:validation.kind-evidence.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
Name Suite Result Duration executes the bound example against a fresh world An authored delivery fact lookalike is refused (spec:carrier.gherkin-authoring.authored-fact-refused) passed 8.77 ms executes the bound example against a fresh world Markdown and Gherkin twins derive equal graphs and contracts (spec:carrier.gherkin-authoring.contract-parity) passed 25.13 ms executes the bound example against a fresh world Duplicate Markdown and Gherkin surfaces are both excluded (spec:carrier.gherkin-authoring.duplicate-surface-refused) passed 2.76 ms executes the bound example against a fresh world The pseudo-scenario supplies example space without a node (spec:carrier.gherkin-authoring.example-space-extraction) passed 1.66 ms executes the bound example against a fresh world A malformed relation target is refused (spec:carrier.gherkin-authoring.malformed-relation-refused) passed 1.32 ms executes the bound example against a fresh world A Feature without identity is refused (spec:carrier.gherkin-authoring.missing-id-refused) passed 1.16 ms executes the bound example against a fresh world A Feature and Scenario enter the graph as parent and child (spec:carrier.gherkin-authoring.parent-child-extraction) passed 1.84 ms executes the bound example against a fresh world A Gherkin example with an unbound used slot fails its stated readiness floor (spec:carrier.gherkin-authoring.unbound-ready-refused) passed 5.39 ms executes the bound example against a fresh world A graph-aware tag near miss is refused (spec:carrier.gherkin-authoring.unknown-tag-refused) passed 2 ms executes the bound example against a fresh world A Scenario Outline is refused (spec:carrier.gherkin-authoring.unsupported-construct-refused) passed 1.89 ms executes the bound example against a fresh world A bad description key reports its physical source line (spec:carrier.gherkin-authoring.description-location-refused) passed 1.28 ms executes the bound example against a fresh world A step-less Scenario is refused at its Scenario line (spec:carrier.gherkin-authoring.step-less-scenario-refused) passed 1.05 ms executes the bound example against a fresh world Multiple findings exclude one carrier and keep a healthy sibling (spec:carrier.gherkin-authoring.multi-finding-bounded) passed 2.56 ms
Design view
Requirement drawing
- Satisfying or referencing units: no recorded binding.
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
- E2: verifies · declared
Rests on
- refines · spec:carrier.gherkin-authoring · stated ready, floor ready
Rested on by
No Spec rests on this Spec.
Relations
| Relation and direction | Other end | Claim | Reason | Exercised keys |
|---|---|---|---|---|
| refines · outgoing | Gherkin authoring enters the one graphspec:carrier.gherkin-authoring · resolves | declared | None | None |
| verifies · outgoing | Gherkin authoring enters the one graphspec:carrier.gherkin-authoring · resolves | declared | None | None |
Bindings
Implementation binding: none
Design reference: none
Verifier binding: present
- test:protocol.gherkin-authoring.malformed-relation-refused · the malformed-relation-refused point verifies the Gherkin carrier contract · anchored ·
test/self-hosting-carrier-gherkin.test.ts:481· 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.