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.
Success criteria
Section titled “Success criteria”- The wire contract is stabilized before the UI is wired (adapter-first, per
review EW-3): one versioned
FindingDTO, 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-contractstoday and overmarkdown-contract/WASM later. -
determined-polishexposes schema-validation operations backed bydetermined-contractsbehind that adapter (contract discovery, per-file and per-vault validation, findings with path:line). - The polish schema panes in
solutions/determined/experiences/polishrender live findings;mock.tsfixture 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
Findingmodel named inD-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.
Deliverables
Section titled “Deliverables”- Rust: schema-validation ops in
determined-polish/port.rs+determined-contractswiring. - 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).
Risks / open questions
Section titled “Risks / open questions”- Whether
.contract.yamldiscovery 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.