Skip to content

Polish schema validation live end-to-end

Status: open/planned

Polish ships schema validation as a working product feature. The UI exists — Pinia store, panes, service types — but has no backend: SchemaViolation has zero Rust hits and the panes run on fixture data in mock.ts. Wire the existing determined-contracts declarative validator into determined-polish’s port, surface real findings through the generated transport, and make validation the first named consumer the strategy’s cautionary precedent (B-8IUO: no consumer, no survival) demands. No new core work; this milestone proves the consumer path with what exists.

  • The wire contract is stabilized before the UI is wired (adapter-first, per review EW-3): one versioned Finding DTO, one collection-to-contract resolution interface, finding IDs and structured fields as the compatibility promise, and message text explicitly stable or explicitly non-normative — so the M-8DQW engine convergence cannot force a second UI migration.
  • Fixture-backed adapter tests pin the adapter over determined-contracts today and over markdown-contract/WASM later.
  • determined-polish exposes schema-validation operations backed by determined-contracts behind that adapter (contract discovery, per-file and per-vault validation, findings with path:line).
  • The polish schema panes in solutions/determined/experiences/polish render live findings; mock.ts fixture data and the dormant store paths are deleted.
  • Contracts are resolved per collection through the platform-core collection registry, not a polish-private config.
  • Findings use one shape across lint and schema checks, converging on the Finding model named in D-7VMX-markdown-ecosystem-strategy.
  • The 1709-line hand-mirrored TS lint-rule table is replaced by generation from the Rust rule table, or scheduled for deletion with the legacy app.
  • Rust: schema-validation ops in determined-polish/port.rs + determined-contracts wiring.
  • Transport: generated service/types regenerated; poll-based job progress reused.
  • UI: schema panes on live data; fixtures removed.
  • Rule-table generation (or a written deletion plan tied to legacy-polish retirement).
  • Whether .contract.yaml discovery conventions (which directory owns contracts for a collection) need a decision of their own before wiring — keep it small, decide in the PR if possible.

← Back to Milestones