outcomeA stated delivery fact no binding earns is refused
spec:validation.authored-honesty.unearned-stated-factPacks: pack:self-hosting-v1
Design: no design entries · no pinned declarations · no decisions
Findings: no errors, no warnings
specs/validation/authored-honesty.unearned-stated-fact.sdp.md
No open questions and no blocking questions; implementation binding none, verifier binding present, and expected-outcome oracle none.
Given
the graph holds a spec {specId: "spec:probe.unearned-fact"}
the spec hand-authors the delivery fact {factName: "has-verifier"} at {site: "the node deliveryFacts array"}When
the graph is validated
Then
the report names {findingId: "honesty/delivery-facts"} at severity {severity: "error"}
the finding names the fact {relatedId: "has-verifier"} and states {phrase: "derived, never authored"}Composing needs the script.
Intent
- Execute the delivery-fact refusal where the stated array outruns the recomputed facts.
Behavior
Examples
Given the graph holds a spec {specId: "spec:probe.unearned-fact"}
Given the spec hand-authors the delivery fact {factName: "has-verifier"} at {site: "the node deliveryFacts array"}
When the graph is validated
Then the report names {findingId: "honesty/delivery-facts"} at severity {severity: "error"}
Then the finding names the fact {relatedId: "has-verifier"} and states {phrase: "derived, never authored"}Verification
Verifier bindings
- test:protocol.authored-honesty.unearned-stated-fact · the stated-fact point verifies the delivery-fact refusal · anchored · test anchor binding present ·
test/self-hosting-validators.test.ts:864External run evidence from
test/self-hosting-validators.test.tsTest anchors:
test:protocol.authored-honesty.section-authored-fact,test:protocol.authored-honesty.unearned-stated-fact,test:protocol.claim-separation.collapsed-edge-claim,test:protocol.claim-separation.unratified-descriptor,test:protocol.kind-evidence.constraints-alone,test:protocol.kind-evidence.empty-promoted-child,test:protocol.kind-evidence.second-entry-untargeted,test:protocol.kind-evidence.untargeted-constraint,test:protocol.oracle-target-eligibility.missing-space-refused,test:protocol.oracle-target-eligibility.rule-space-accepted,test:protocol.pack-coherence.incoherent-aggregate,test:protocol.readiness-floor.blocking-open-question,test:protocol.readiness-floor.unrelated-scoped-spec,test:protocol.referential-integrity.dangling-target,test:protocol.referential-integrity.did-you-mean,test:protocol.superseded-decision-signal.branch-names-every-end,test:protocol.superseded-decision-signal.chain-end-named,test:protocol.superseded-decision-signal.closed-chain-named,test:protocol.superseded-decision-signal.dependency-unread,test:protocol.superseded-decision-signal.end-and-loop-named,test:protocol.superseded-decision-signal.live-replacement-warns,test:protocol.superseded-decision-signal.replaced-ruling-warns,test:protocol.superseded-decision-signal.replacement-below-ready-named,test:protocol.superseded-decision-signal.superseded-subject-silent,test:protocol.two-check-families.split-report,test:protocol.verification-linkage.unbound-example,test:protocol.verification-linkage.unresolved-oracle,test:protocol.warn-level-signals.orphan-signal,test:protocol.warn-level-signals.ready-gap-signal. Specs verified by those bindings: spec:carrier.markdown-body-grammar, spec:validation.authored-honesty, spec:validation.authored-honesty.section-authored-fact, spec:validation.authored-honesty.unearned-stated-fact, spec:validation.claim-separation, spec:validation.claim-separation.collapsed-edge-claim, spec:validation.claim-separation.unratified-descriptor, spec:validation.kind-evidence, spec:validation.kind-evidence.constraints-alone, spec:validation.kind-evidence.empty-promoted-child, spec:validation.kind-evidence.second-entry-untargeted, spec:validation.kind-evidence.untargeted-constraint, spec:validation.oracle-target-eligibility, spec:validation.oracle-target-eligibility.missing-space-refused, spec:validation.oracle-target-eligibility.rule-space-accepted, spec:validation.pack-coherence, spec:validation.pack-coherence.incoherent-aggregate, spec:validation.readiness-floor, spec:validation.readiness-floor.blocking-open-question, spec:validation.readiness-floor.unrelated-scoped-spec, spec:validation.referential-integrity, spec:validation.referential-integrity.dangling-target, spec:validation.referential-integrity.did-you-mean, spec:validation.superseded-decision-signal, spec:validation.superseded-decision-signal.branch-names-every-end, spec:validation.superseded-decision-signal.chain-end-named, spec:validation.superseded-decision-signal.closed-chain-named, spec:validation.superseded-decision-signal.dependency-unread, spec:validation.superseded-decision-signal.end-and-loop-named, spec:validation.superseded-decision-signal.live-replacement-warns, spec:validation.superseded-decision-signal.replaced-ruling-warns, spec:validation.superseded-decision-signal.replacement-below-ready-named, spec:validation.superseded-decision-signal.superseded-subject-silent, spec:validation.two-check-families, spec:validation.two-check-families.split-report, spec:validation.verification-linkage, spec:validation.verification-linkage.unbound-example, spec:validation.verification-linkage.unresolved-oracle, spec:validation.warn-level-signals, spec:validation.warn-level-signals.orphan-signal, spec:validation.warn-level-signals.ready-gap-signal.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 A scoped Spec with no relation names the relation clause (spec:validation.readiness-floor.unrelated-scoped-spec) passed 6.49 ms executes the bound example against a fresh world A blocking open question holds a Spec below defined (spec:validation.readiness-floor.blocking-open-question) passed 1.25 ms executes the bound example against a fresh world Constraints alone stop short of complete behavior evidence (spec:validation.kind-evidence.constraints-alone) passed 1.16 ms executes the bound example against a fresh world A constraint without a machine-readable target is not complete (spec:validation.kind-evidence.untargeted-constraint) passed 0.96 ms executes the bound example against a fresh world An empty promoted child confers no evidence (spec:validation.kind-evidence.empty-promoted-child) passed 0.8 ms executes the bound example against a fresh world A disconnected Spec warns and fails nothing (spec:validation.warn-level-signals.orphan-signal) passed 1.82 ms executes the bound example against a fresh world A ready Spec without a verifier warns and fails nothing (spec:validation.warn-level-signals.ready-gap-signal) passed 0.81 ms executes the bound example against a fresh world An unrelated missing target is a bare conformance error (spec:validation.referential-integrity.dangling-target) passed 0.8 ms executes the bound example against a fresh world A unique near miss earns a did-you-mean suggestion (spec:validation.referential-integrity.did-you-mean) passed 0.71 ms executes the bound example against a fresh world A delivery fact smuggled into a section is refused (spec:validation.authored-honesty.section-authored-fact) passed 0.8 ms executes the bound example against a fresh world A stated delivery fact no binding earns is refused (spec:validation.authored-honesty.unearned-stated-fact) passed 0.73 ms executes the bound example against a fresh world A binding edge cannot borrow the declared claim (spec:validation.claim-separation.collapsed-edge-claim) passed 0.92 ms executes the bound example against a fresh world An unratified kind fails closed instead of reaching the floor (spec:validation.claim-separation.unratified-descriptor) passed 0.49 ms executes the bound example against a fresh world A declared verifier no test binds confers nothing (spec:validation.verification-linkage.unbound-example) passed 2.2 ms executes the bound example against a fresh world An oracle targeting a Spec with no example space is refused (spec:validation.verification-linkage.unresolved-oracle) passed 0.68 ms executes the bound example against a fresh world A rule owning an example space accepts an oracle (spec:validation.oracle-target-eligibility.rule-space-accepted) passed 0.94 ms executes the bound example against a fresh world A target without an example space refuses an oracle (spec:validation.oracle-target-eligibility.missing-space-refused) passed 0.42 ms executes the bound example against a fresh world A repeated member and a non-model modelRef are both named (spec:validation.pack-coherence.incoherent-aggregate) passed 3.58 ms executes the bound example against a fresh world One report carries both families and claims neither as its own (spec:validation.two-check-families.split-report) passed 0.69 ms executes the bound example against a fresh world A Spec shaped by a replaced decision warns once and fails nothing (spec:validation.superseded-decision-signal.replaced-ruling-warns) passed 1.73 ms executes the bound example against a fresh world The warning names the decision at the end of a chain of replacements (spec:validation.superseded-decision-signal.chain-end-named) passed 0.72 ms executes the bound example against a fresh world A replacement chain that branches names every end (spec:validation.superseded-decision-signal.branch-names-every-end) passed 0.85 ms executes the bound example against a fresh world A chain of replacements that closes on itself is named and fails nothing (spec:validation.superseded-decision-signal.closed-chain-named) passed 0.82 ms executes the bound example against a fresh world A dependency on a replaced decision raises no warning (spec:validation.superseded-decision-signal.dependency-unread) passed 0.53 ms executes the bound example against a fresh world A superseded decision is not warned for the decision it names (spec:validation.superseded-decision-signal.superseded-subject-silent) passed 0.63 ms executes the bound example against a fresh world A replacement still below ready is named as it stands (spec:validation.superseded-decision-signal.replacement-below-ready-named) passed 0.73 ms executes the bound example against a fresh world A decision still decided by the record it replaces warns (spec:validation.superseded-decision-signal.live-replacement-warns) passed 0.56 ms executes the bound example against a fresh world A chain of replacements that reaches an end and a loop names both (spec:validation.superseded-decision-signal.end-and-loop-named) passed 0.72 ms deduplicates stale pairs, names self loops and leaves absent locations absent not recorded passed 0.9 ms warns once for each stale decision and ignores unresolved and wrongly typed replacements not recorded passed 2.06 ms locates each subject separately when two Specs name the same stale decision not recorded passed 0.51 ms checks branch messages independently of the example id not recorded passed 0.56 ms checks the extracted 'message' Design entry not recorded passed 1.74 ms checks the extracted 'closedChainMessage' Design entry not recorded passed 0.56 ms checks the extracted 'mixedChainMessage' Design entry not recorded passed 0.49 ms executes the bound example against a fresh world A constraint whose second entry has no target is not complete (spec:validation.kind-evidence.second-entry-untargeted) passed 0.61 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:validation.authored-honesty · 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 | Machine truth is never authoredspec:validation.authored-honesty · resolves | declared | None | None |
| verifies · outgoing | Machine truth is never authoredspec:validation.authored-honesty · resolves | declared | None | None |
Bindings
Implementation binding: none
Design reference: none
Verifier binding: present
- test:protocol.authored-honesty.unearned-stated-fact · the stated-fact point verifies the delivery-fact refusal · anchored ·
test/self-hosting-validators.test.ts:864· 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.