Spec Studio

A warning from a corpus rule informs and passes

spec:validation.corpus-rules.warning-finding-informsExample / Scenario · storyready floor ready

Packs: pack:corpus-checks-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/validation/corpus-rules.warning-finding-informs.sdp.md

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

Intent
outcome
Execute the exit rule on one rules file that returns one warning finding over a corpus the Protocol finds clean.
assumptions
  • The world writes the probe corpus of the error example. The rules file's body returns { findings: [{ validatorId: "probe-rule", subjectId: "probe-subject", severity: "warning", message: "the probe rule reports its subject" }] }. The world runs sdp validate on the probe root with that file named by --rules and reads the exit code and standard output.
Behavior

Examples

Given a probe corpus the Protocol's validators find clean
Given a first rules file that {first: "returns one warning finding"}
When the probe corpus is validated with the rules files named by --rules in that order
Then the command exits {exitCode: 0}
Then the Protocol summary line reads {protocolSummary: "validate: 0 errors · 0 warnings (conformance + honesty over the one graph)"}
Then the corpus summary line reads {corpusSummary: "corpus rules: 0 errors · 1 warnings · 0 of 1 files failed (the corpus's own rules)"}
Verification

Verifier bindings

  • test:protocol.validation.corpus-rules.warning-finding-informs · anchored · test anchor binding present · test/self-hosting-corpus-checks.test.ts:339

    External run evidence from test/self-hosting-corpus-checks.test.ts

    Test anchors: test:protocol.model.planned-architecture.differing-layer-and-uses, test:protocol.model.planned-architecture.matching-design, test:protocol.model.planned-architecture.unrealized-design, test:protocol.validation.architecture-constraints.forbidden-layer-pair, test:protocol.validation.architecture-constraints.isolated-context-as-rule, test:protocol.validation.architecture-constraints.unstated-layer-unclassified, test:protocol.validation.corpus-rules.copies-contain-changes, test:protocol.validation.corpus-rules.error-finding-fails, test:protocol.validation.corpus-rules.malformed-finding-fails, test:protocol.validation.corpus-rules.warning-finding-informs. Specs verified by those bindings: spec:model.planned-architecture, spec:model.planned-architecture.differing-layer-and-uses, spec:model.planned-architecture.matching-design, spec:model.planned-architecture.unrealized-design, spec:validation.architecture-constraints, spec:validation.architecture-constraints.forbidden-layer-pair, spec:validation.architecture-constraints.isolated-context-as-rule, spec:validation.architecture-constraints.unstated-layer-unclassified, spec:validation.corpus-rules, spec:validation.corpus-rules.copies-contain-changes, spec:validation.corpus-rules.error-finding-fails, spec:validation.corpus-rules.malformed-finding-fails, spec:validation.corpus-rules.warning-finding-informs.

    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 worldA rules file that empties its graph leaves the next file's graph whole (spec:validation.corpus-rules.copies-contain-changes)passed21.88 ms
    executes the bound example against a fresh worldAn error from a corpus rule fails validation and leaves the Protocol's line alone (spec:validation.corpus-rules.error-finding-fails)passed4.69 ms
    executes the bound example against a fresh worldA finding with no subject fails its rules file (spec:validation.corpus-rules.malformed-finding-fails)passed4.13 ms
    executes the bound example against a fresh worldA warning from a corpus rule informs and passes (spec:validation.corpus-rules.warning-finding-informs)passed3.83 ms
    executes the bound example against a fresh worldA domain member that uses an infrastructure member breaks a forbidden pair (spec:validation.architecture-constraints.forbidden-layer-pair)passed15.92 ms
    executes the bound example against a fresh worldThe walk named as a rules file fails validation on an isolation breach (spec:validation.architecture-constraints.isolated-context-as-rule)passed4.55 ms
    executes the bound example against a fresh worldA component with no layer leaves its edge unclassified (spec:validation.architecture-constraints.unstated-layer-unclassified)passed2.97 ms
    executes the bound example against a fresh worldA realized component that differs from its design gives one row per field (spec:model.planned-architecture.differing-layer-and-uses)passed6.29 ms
    executes the bound example against a fresh worldA realized component that matches its design gives no row (spec:model.planned-architecture.matching-design)passed17.77 ms
    executes the bound example against a fresh worldA component design no anchor satisfies is listed as unrealized (spec:model.planned-architecture.unrealized-design)passed6.93 ms
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:validation.corpus-rules.warning-finding-informs
The diagram as text
  • spec:validation.corpus-rules.warning-finding-informs: A warning from a corpus rule informs and passes · declared Spec
  • spec:validation.corpus-rules: Corpus-authored rules run on the one validation path · declared Spec
  • test:protocol.validation.corpus-rules.warning-finding-informs: test:protocol.validation.corpus-rules.warning-finding-informs · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:339
  • spec:validation.corpus-rules.warning-finding-informs refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.warning-finding-informs verifies spec:validation.corpus-rules · declared
  • test:protocol.validation.corpus-rules.warning-finding-informs verifies spec:validation.corpus-rules.warning-finding-informs · 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.corpus-rules.warning-finding-informs
  • E2: verifies · declared
The diagram as text
  • spec:validation.corpus-rules: Corpus-authored rules run on the one validation path
  • spec:validation.corpus-rules.warning-finding-informs: A warning from a corpus rule informs and passes
  • spec:validation.corpus-rules.warning-finding-informs refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.warning-finding-informs verifies spec:validation.corpus-rules · 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 · outgoingCorpus-authored rules run on the one validation path
spec:validation.corpus-rules · resolves
declaredNoneNone
verifies · outgoingCorpus-authored rules run on the one validation path
spec:validation.corpus-rules · resolves
declaredNoneexitCode

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.validation.corpus-rules.warning-finding-informs · anchored · test/self-hosting-corpus-checks.test.ts:339 · 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.