Spec Studio

A registered check without a probe pair is named unpaired

spec:validation.validator-self-testing.unpaired-check-namedExample / Scenario · storyready floor ready

Packs: pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/validation/validator-self-testing.unpaired-check-named.sdp.md

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

Intent
outcome
Execute the audit on a table that has lost one check's probe pair.
Behavior

Examples

Given the audit reads {table: "the shipped table without one pair"}
Given the check {findingId: "conformance/orphans"} behaves {behavior: "as shipped"}
Given the engine source also writes {extraSourceId: "nothing"}
When the audit runs
Then the audit {verdict: "fails"}
Then the audit names {named: "conformance/orphans"} as {list: "unpaired"}
Verification

Verifier bindings

  • test:protocol.validator-self-testing.unpaired-check-named · anchored · test anchor binding present · test/validator-audit.test.ts:187

    External run evidence from test/validator-audit.test.ts

    Test anchors: test:protocol.validator-self-testing.duplicate-pair-named, test:protocol.validator-self-testing.overeager-check-named, test:protocol.validator-self-testing.shipped-checks-paired, test:protocol.validator-self-testing.silent-check-named, test:protocol.validator-self-testing.unpaired-check-named, test:protocol.validator-self-testing.unregistered-id-named. Specs verified by those bindings: spec:validation.validator-self-testing, spec:validation.validator-self-testing.duplicate-pair-named, spec:validation.validator-self-testing.overeager-check-named, spec:validation.validator-self-testing.shipped-checks-paired, spec:validation.validator-self-testing.silent-check-named, spec:validation.validator-self-testing.unpaired-check-named, spec:validation.validator-self-testing.unregistered-id-named.

    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 worldEvery shipped check reports its refusing probe and leaves its near miss alone (spec:validation.validator-self-testing.shipped-checks-paired)passed112.97 ms
    executes the bound example against a fresh worldA check that stops reporting is named silent (spec:validation.validator-self-testing.silent-check-named)passed46.66 ms
    executes the bound example against a fresh worldA check that reports its near miss is named overeager (spec:validation.validator-self-testing.overeager-check-named)passed42.3 ms
    executes the bound example against a fresh worldA registered check without a probe pair is named unpaired (spec:validation.validator-self-testing.unpaired-check-named)passed45.52 ms
    executes the bound example against a fresh worldA check paired twice is named (spec:validation.validator-self-testing.duplicate-pair-named)passed90.29 ms
    executes the bound example against a fresh worldA finding id the source writes outside every registry is named (spec:validation.validator-self-testing.unregistered-id-named)passed64.41 ms
    reads all literal quote forms, ignores comments, and locates incomplete idsnot recordedpassed1.44 ms
    names stray pairs, runtime-only ids and unresolved source locations, once and sortednot recordedpassed0.26 ms
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:validation.validator-self-testing.unpaired-check-named
The diagram as text
  • spec:validation.validator-self-testing.unpaired-check-named: A registered check without a probe pair is named unpaired · declared Spec
  • spec:validation.validator-self-testing: Every validator ships evidence in both directions · declared Spec
  • test:protocol.validator-self-testing.unpaired-check-named: test:protocol.validator-self-testing.unpaired-check-named · anchored test binding · binding present · test/validator-audit.test.ts:187
  • spec:validation.validator-self-testing.unpaired-check-named refines spec:validation.validator-self-testing · declared
  • spec:validation.validator-self-testing.unpaired-check-named verifies spec:validation.validator-self-testing · declared
  • test:protocol.validator-self-testing.unpaired-check-named verifies spec:validation.validator-self-testing.unpaired-check-named · 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

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:validation.validator-self-testing.unpaired-check-named
  • E2: verifies · declared
The diagram as text
  • spec:validation.validator-self-testing: Every validator ships evidence in both directions
  • spec:validation.validator-self-testing.unpaired-check-named: A registered check without a probe pair is named unpaired
  • spec:validation.validator-self-testing.unpaired-check-named refines spec:validation.validator-self-testing · declared
  • spec:validation.validator-self-testing.unpaired-check-named verifies spec:validation.validator-self-testing · 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

No Spec rests on this Spec.

Relations

Relation and directionOther endClaimReasonExercised keys
refines · outgoingEvery validator ships evidence in both directions
spec:validation.validator-self-testing · resolves
declaredNoneNone
verifies · outgoingEvery validator ships evidence in both directions
spec:validation.validator-self-testing · resolves
declaredNoneclosedTable, probePairs

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.validator-self-testing.unpaired-check-named · anchored · test/validator-audit.test.ts:187 · 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.