Skip to content

feat: configure authoritative contract name types - #730

Merged
kvlonge merged 1 commit into
mainfrom
fix/authoritative-contract-name-types
Sep 18, 2026
Merged

kvlonge merged 1 commit into
mainfrom
fix/authoritative-contract-name-types

Conversation

@kvlonge

@kvlonge kvlonge commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Why

Contract name Rules currently assume one physical representation for boolean, timestamp, and date concepts. Some authoritative interfaces intentionally retain numeric indicators, numeric epochs, encoded temporal values, timestamp-valued date fields, or date-valued _at fields. Those interfaces need explicit, opt-in policy rather than path exceptions.

The rich AST analysis fallback also discarded CTE facts when a top-level VALUES CTE appeared, so explicit casts in a later final CTE were reported as unproven.

Changes

  • add typed, default-off options for the three contract naming Rules
  • keep existing strict behavior when options are not configured
  • preserve top-level CTE alignment across SELECT, set-operation, and VALUES bodies in AST fallback analysis
  • add positive/default-negative native Rule coverage and an AST fallback regression

Verification

  • uv sync --all-extras
  • focused Python and Rust tests
  • Rust clippy with warnings denied
  • make check-ci
  • downstream cache-free static compile across 974 models, reducing unproven contract types from 48 to the two columns owned by one dynamic-pivot boundary
  • public repository hygiene scan

@kvlonge
kvlonge enabled auto-merge (squash) September 18, 2026 08:31
@kvlonge
kvlonge merged commit 6887bbc into main Sep 18, 2026
18 checks passed
@kvlonge
kvlonge deleted the fix/authoritative-contract-name-types branch September 18, 2026 08:43
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.

1 participant