Spec Studio

Example verification and oracle bindings resolve honestly

spec:validation.verification-linkageBusiness Rule · featureready floor ready

Packs: pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/validation/verification-linkage.sdp.md

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

Intent
outcome
Keep declared example verification bound to a resolving test anchor, and keep an oracle's expected-outcome binding resolved to its example space.
Rule
rule line 15 · specs/validation/verification-linkage.sdp.md:15
A declared verifies from an example stands as verification evidence only when a resolving test anchor binds that example. An oracle's anchored models edge records expected-outcome semantics for a Spec that owns an example space and confers no delivery fact.
rule line 16 · specs/validation/verification-linkage.sdp.md:16
A non-resolving trace confers no delivery fact. Which unbound declared verifiers warn is stated by spec:validation.unbound-example-posture; ineligible oracle bindings are reported by the oracle-linkage check.
rule line 17 · specs/validation/verification-linkage.sdp.md:17
At most one expected-outcome authority may model an example space: a second resolving oracle binding on the same space is an error, because two authorities leave the modeled outcome ambiguous.

3 unkeyed rules.

Verifying examples

A declared verifier no test binds confers nothing · spec:validation.verification-linkage.unbound-example · ready floor ready

Executable Spec

Given the graph holds a parent spec {parentId: "spec:probe.create-order"}
Given a non-resolving {verifierKind: "example spec"} named {verifierId: "spec:probe.create-order.valid-cart"} points at it
Given the example verifier states ready
When the graph is validated
Then the report names {findingId: "conformance/verifies-linkage"} at severity {severity: "warning"}
Then the parent earns the delivery fact has-verifier: {conferred: false}

Open example

An oracle targeting a Spec with no example space is refused · spec:validation.verification-linkage.unresolved-oracle · ready floor ready

Executable Spec

Given the graph holds a parent spec {parentId: "spec:probe.order-policy"}
Given a non-resolving {verifierKind: "oracle anchor"} named {verifierId: "oracle:probe.order-policy"} points at it
When the graph is validated
Then the report names {findingId: "conformance/oracle-linkage"} at severity {severity: "error"}
Then the parent earns the delivery fact has-verifier: {conferred: false}

Open example

Example space

Given the graph holds a parent spec {parentId:string}
Given a non-resolving {verifierKind:"example spec"|"oracle anchor"} named {verifierId:string} points at it
Given the example verifier states ready
When the graph is validated
Then the report names {findingId:string} at severity {severity:"warning"|"error"}
Then the parent earns the delivery fact has-verifier: {conferred:boolean}
Verification

Verifier bindings

Example space

  • parentId · string · declared by the graph holds a parent spec {parentId}
  • verifierKind · "example spec" | "oracle anchor" · declared by a non-resolving {verifierKind} named {verifierId} points at it
  • verifierId · string · declared by a non-resolving {verifierKind} named {verifierId} points at it

Bound points

ExampleparentIdverifierKindverifierId
spec:validation.verification-linkage.unbound-example"spec:probe.create-order""example spec""spec:probe.create-order.valid-cart"
spec:validation.verification-linkage.unresolved-oracle"spec:probe.order-policy""oracle anchor""oracle:probe.order-policy"

Oracle binding: none

Coverage

parentId: "spec:probe.create-order" · spec:validation.verification-linkage.unbound-example; "spec:probe.order-policy" · spec:validation.verification-linkage.unresolved-oracle · not enumerable

verifierId: "spec:probe.create-order.valid-cart" · spec:validation.verification-linkage.unbound-example; "oracle:probe.order-policy" · spec:validation.verification-linkage.unresolved-oracle · not enumerable

Unbound

  • parentId: None
  • verifierKind: None
  • verifierId: None
Design view

Requirement drawing

Requirement drawing for spec:validation.verification-linkage
The diagram as text
  • spec:validation.verification-linkage: Example verification and oracle bindings resolve honestly · declared Spec
  • spec:validation.oracle-target-eligibility: Oracle eligibility follows example-space ownership · declared Spec
  • spec:validation.unbound-example-posture: An unbound example below ready is data, not a warning · declared Spec
  • spec:validation.verification-linkage.unbound-example: A declared verifier no test binds confers nothing · declared Spec
  • spec:validation.verification-linkage.unresolved-oracle: An oracle targeting a Spec with no example space is refused · declared Spec
  • spec:validation.oracle-target-eligibility.missing-space-refused: A target without an example space refuses an oracle · declared Spec
  • spec:validation.oracle-target-eligibility.rule-space-accepted: A rule owning an example space accepts an oracle · declared Spec
  • spec:validation.unbound-example-posture.lower-rungs: Below-ready examples keep declared verifier data · declared Spec
  • spec:validation.unbound-example-posture.parent-traces: Parent gaps follow enabled bindings and preserve the decision exemption · declared Spec
  • spec:validation.unbound-example-posture.warning-cases: Ready examples and non-example verifiers keep warnings · declared Spec
  • spec:validation.two-check-families: Validation separates well-formedness from non-pretending · declared Spec
  • impl:protocol.oracle-linkage: resolves and de-duplicates expected-outcome oracle bindings · anchored code · src/validate/validators.ts:913
  • impl:protocol.oracle-target-eligibility: resolves oracle targets by example-space ownership across Spec kinds · anchored code · src/graph/oracle-bindings.ts:25
  • impl:protocol.unbound-example-posture: limits unbound example warnings to stated ready · anchored code · src/validate/validators.ts:847
  • impl:protocol.verifies-linkage: resolves declared example verification through enabled test bindings · anchored code · src/validate/validators.ts:838
  • oracle:protocol.oracle-target-eligibility: expected oracle-linkage result by example-space ownership · anchored oracle binding · test/self-hosting-validators.oracle.ts:8
  • oracle:protocol.unbound-example-posture: expected verification signals by posture matrix · anchored oracle binding · test/self-hosting-unbound-example.test.ts:32
  • test:protocol.oracle-target-eligibility.missing-space-refused: the missing-space point verifies fail-closed oracle resolution · anchored test binding · binding present · test/self-hosting-validators.test.ts:1244
  • test:protocol.oracle-target-eligibility.rule-space-accepted: the rule-space point verifies kind-neutral oracle resolution · anchored test binding · binding present · test/self-hosting-validators.test.ts:1218
  • test:protocol.unbound-example-posture.lower-rungs: verifies declared-only examples below ready · anchored test binding · binding present · test/self-hosting-unbound-example.test.ts:206
  • test:protocol.unbound-example-posture.parent-traces: verifies parent gaps and unchanged oracle signals · anchored test binding · binding present · test/self-hosting-unbound-example.test.ts:220
  • test:protocol.unbound-example-posture.warning-cases: verifies ready and wrong-kind linkage warnings · anchored test binding · binding present · test/self-hosting-unbound-example.test.ts:213
  • test:protocol.verification-linkage.unbound-example: the unbound-example point verifies the incomplete spec-to-test trace · anchored test binding · binding present · test/self-hosting-validators.test.ts:1106
  • test:protocol.verification-linkage.unresolved-oracle: the unresolved-oracle point verifies the oracle binding refusal · anchored test binding · binding present · test/self-hosting-validators.test.ts:1123
  • spec:validation.oracle-target-eligibility refines spec:validation.verification-linkage · declared
  • spec:validation.oracle-target-eligibility.missing-space-refused refines spec:validation.oracle-target-eligibility · declared
  • spec:validation.oracle-target-eligibility.missing-space-refused verifies spec:validation.oracle-target-eligibility · declared
  • spec:validation.oracle-target-eligibility.rule-space-accepted refines spec:validation.oracle-target-eligibility · declared
  • spec:validation.oracle-target-eligibility.rule-space-accepted verifies spec:validation.oracle-target-eligibility · declared
  • spec:validation.unbound-example-posture refines spec:validation.verification-linkage · declared
  • spec:validation.unbound-example-posture.lower-rungs refines spec:validation.unbound-example-posture · declared
  • spec:validation.unbound-example-posture.lower-rungs verifies spec:validation.unbound-example-posture · declared
  • spec:validation.unbound-example-posture.parent-traces refines spec:validation.unbound-example-posture · declared
  • spec:validation.unbound-example-posture.parent-traces verifies spec:validation.unbound-example-posture · declared
  • spec:validation.unbound-example-posture.warning-cases refines spec:validation.unbound-example-posture · declared
  • spec:validation.unbound-example-posture.warning-cases verifies spec:validation.unbound-example-posture · declared
  • spec:validation.verification-linkage refines spec:validation.two-check-families · declared
  • spec:validation.verification-linkage.unbound-example refines spec:validation.verification-linkage · declared
  • spec:validation.verification-linkage.unbound-example verifies spec:validation.verification-linkage · declared
  • spec:validation.verification-linkage.unresolved-oracle refines spec:validation.verification-linkage · declared
  • spec:validation.verification-linkage.unresolved-oracle verifies spec:validation.verification-linkage · declared
  • impl:protocol.oracle-linkage satisfies spec:validation.verification-linkage · anchored
  • impl:protocol.oracle-linkage satisfies spec:validation.oracle-target-eligibility · anchored
  • impl:protocol.oracle-target-eligibility satisfies spec:validation.oracle-target-eligibility · anchored
  • impl:protocol.unbound-example-posture satisfies spec:validation.unbound-example-posture · anchored
  • impl:protocol.verifies-linkage satisfies spec:validation.verification-linkage · anchored
  • oracle:protocol.oracle-target-eligibility models spec:validation.oracle-target-eligibility · anchored
  • oracle:protocol.unbound-example-posture models spec:validation.unbound-example-posture · anchored
  • test:protocol.oracle-target-eligibility.missing-space-refused verifies spec:validation.oracle-target-eligibility.missing-space-refused · anchored
  • test:protocol.oracle-target-eligibility.rule-space-accepted verifies spec:validation.oracle-target-eligibility.rule-space-accepted · anchored
  • test:protocol.unbound-example-posture.lower-rungs verifies spec:validation.unbound-example-posture.lower-rungs · anchored
  • test:protocol.unbound-example-posture.parent-traces verifies spec:validation.unbound-example-posture.parent-traces · anchored
  • test:protocol.unbound-example-posture.warning-cases verifies spec:validation.unbound-example-posture.warning-cases · anchored
  • test:protocol.verification-linkage.unbound-example verifies spec:validation.verification-linkage.unbound-example · anchored
  • test:protocol.verification-linkage.unresolved-oracle verifies spec:validation.verification-linkage.unresolved-oracle · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

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

Decisions

No decision record named.

Runtime
  • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol

    Uses

  • impl:protocol.oracle-linkage · resolves and de-duplicates expected-outcome oracle bindings · src/validate/validators.ts:913

    Component: component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol

    Uses

    None.

  • impl:protocol.verifies-linkage · resolves declared example verification through enabled test bindings · src/validate/validators.ts:838

    Component: component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · 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:validation.verification-linkage
The diagram as text
  • spec:validation.oracle-target-eligibility: Oracle eligibility follows example-space ownership
  • spec:validation.two-check-families: Validation separates well-formedness from non-pretending
  • spec:validation.unbound-example-posture: An unbound example below ready is data, not a warning
  • spec:validation.verification-linkage: Example verification and oracle bindings resolve honestly
  • spec:validation.verification-linkage.unbound-example: A declared verifier no test binds confers nothing
  • spec:validation.verification-linkage.unresolved-oracle: An oracle targeting a Spec with no example space is refused
  • spec:validation.verification-linkage refines spec:validation.two-check-families · declared
  • spec:validation.oracle-target-eligibility refines spec:validation.verification-linkage · declared
  • spec:validation.unbound-example-posture refines spec:validation.verification-linkage · declared
  • spec:validation.verification-linkage.unbound-example refines spec:validation.verification-linkage · declared
  • spec:validation.verification-linkage.unresolved-oracle refines spec:validation.verification-linkage · declared
  • spec:validation.verification-linkage.unbound-example verifies spec:validation.verification-linkage · declared
  • spec:validation.verification-linkage.unresolved-oracle verifies spec:validation.verification-linkage · 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

Relations

Relation and directionOther endClaimReasonExercised keys
refines · outgoingValidation separates well-formedness from non-pretending
spec:validation.two-check-families · resolves
declaredNoneNone
refines · incomingOracle eligibility follows example-space ownership
spec:validation.oracle-target-eligibility · resolves
declaredNoneNone
refines · incomingAn unbound example below ready is data, not a warning
spec:validation.unbound-example-posture · resolves
declaredNoneNone
refines · incomingA declared verifier no test binds confers nothing
spec:validation.verification-linkage.unbound-example · resolves
declaredNoneNone
refines · incomingAn oracle targeting a Spec with no example space is refused
spec:validation.verification-linkage.unresolved-oracle · resolves
declaredNoneNone
verifies · incomingA declared verifier no test binds confers nothing
spec:validation.verification-linkage.unbound-example · resolves
declaredNoneNone
verifies · incomingAn oracle targeting a Spec with no example space is refused
spec:validation.verification-linkage.unresolved-oracle · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.oracle-linkage · resolves and de-duplicates expected-outcome oracle bindings · src/validate/validators.ts:913 · role validator · component component:protocol.validate · layer domain · context protocol
  • impl:protocol.verifies-linkage · resolves declared example verification through enabled test bindings · src/validate/validators.ts:838 · role validator · component component:protocol.validate · layer domain · context protocol

Design reference: none

Verifier binding: present

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

Composing (0)

Composing needs the script.