Skip to content

docs(adr): record evidence rules for canonical slot validation - #284

Merged
Teakowa merged 1 commit into
mainfrom
docs/283-validation-evidence
Sep 25, 2026
Merged

Teakowa merged 1 commit into
mainfrom
docs/283-validation-evidence

Conversation

@e54-bot

@e54-bot e54-bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

Refs #283 (records the decision; the opy-rs probe-gap acceptance item remains).

Decision

ADR-0014 keeps a single canonical validation contract owned by workshop-rs:

  • Structural failures (identity, arity, enum domain, reference category) are always rejected.
  • A declared-type mismatch is a presumption that yields to acceptance evidence; a rejection stricter than the declared type needs rejection evidence.
  • Evidence classes and scope: client-exported real-project text; deliberate upstream emission rules (optimizer substitutions, First Of wrapping), scoped to the parameter or type the rule is keyed on; upstream reports of client behavior; declared types as presumption only. Upstream pass-through, loose any, and runtime equivalence are not evidence. A live-client capture overrides the rest when available.

Applied to the #283 families:

  1. Boolean parameters accept any value (typed rule; OverPy chore: release v0.3.5 #182 and its type-keyed First Of rule).
  2. Arrays in the five Object text parameters stay rejected; opy-rs records an approved exception.
  3. Number 0 in the createEffect position stays rejected; opy-rs records an approved exception.

core-boundaries.md gains a short validation-acceptance section that routes to the ADR.

Follow-up

  • workshop-rs: implement the Boolean parameter rule with regressions; add per-parameter coercions evidenced by reference optimizeForSize substitutions (e.g. createDummy).
  • opy-rs: First Of wrapping observed from the pinned reference; approved exceptions for families 2 and 3 with pinning tests.

Verification

Docs-only. git diff --check clean; relative links resolve. Upstream citations are pinned to OverPy 1e26889 (9.7.10) and OSTW dde3da1.

Canonical validation keeps one contract: structural failures are always rejected, declared-type mismatches are presumptions that yield to acceptance evidence, and stricter rejections need rejection evidence. Applies the rules to the OverPy probe findings.

Refs #283
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants