Spec Studio

A check paired twice is named

spec:validation.validator-self-testing.duplicate-pair-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.duplicate-pair-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 holds one check's probe pair twice.
Behavior

Examples

Given the audit reads {table: "the shipped table with one pair twice"}
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: "duplicatePairs"}
Verification

Verifier bindings

  • test:protocol.validator-self-testing.duplicate-pair-named · anchored · test anchor binding present · test/validator-audit.test.ts:202

    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 380 · Branch: feature/roadmap-and-slices-v0 · Commit: 34909918bf0be0e849959644401797191cae379f · Start: 2026-10-22T17:40:31.456Z · Stop: 2026-10-22T17:42:16.171Z

    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)passed116.59 ms
    executes the bound example against a fresh worldA check that stops reporting is named silent (spec:validation.validator-self-testing.silent-check-named)passed53.95 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)passed48.87 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)passed51.14 ms
    executes the bound example against a fresh worldA check paired twice is named (spec:validation.validator-self-testing.duplicate-pair-named)passed73.99 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)passed44.88 ms
    reads all literal quote forms, ignores comments, and locates incomplete idsnot recordedpassed1.47 ms
    names stray pairs, runtime-only ids and unresolved source locations, once and sortednot recordedpassed0.33 ms
Design view

Requirement drawing

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