# Slice 5: Validation and Error Handling ## Status Not started ## Objective Reject invalid project definitions consistently and explain editor, persistence, and Preview failures clearly without losing user work. ## Dependencies - Canonical schema and backend validator - Slice 1 component contracts and Slice 2 visual configuration model - Slice 3 and 4 structured security errors for final integration ## In Scope - Validation on every persistence path - Cross-reference and semantic validation - Editor and Preview diagnostics - Structured backend errors and safe recovery ## Out of Scope - AI remediation, arbitrary transforms, and enterprise audit workflows ## Tasks - [ ] Inventory validation behavior across JSON Apply, create/update, load, and Preview. - [ ] Centralize backend schema validation and reuse it on every save path. - [ ] Reject invalid documents without partial persistence updates. - [ ] Add supported schema-version checks. - [ ] Validate duplicate IDs/names and dangling action, component, variable, event, and binding references. - [ ] Validate component-specific properties and binding target compatibility. - [ ] Standardize backend error codes and response shapes. - [ ] Surface errors in visual configuration screens and the JSON Editor. - [ ] Add Preview loading, empty, upstream-error, mapping-error, and recovery states. - [ ] Preserve unsaved edits when validation or network operations fail. - [ ] Reconcile examples with canonical binding behavior. - [ ] Add malformed, semantic, version, and recovery regression tests. - [ ] Update state and validation documentation. ## Acceptance Criteria - [ ] No create or update path persists an invalid canonical document. - [ ] Errors identify actionable paths and messages. - [ ] Visual Editor, JSON Editor, backend, and Preview agree on supported shapes. - [ ] Runtime failures are visible without corrupting project or runtime state. - [ ] Valid examples continue to round-trip. ## Validation - [ ] Frontend and backend TypeScript checks pass. - [ ] Validator unit and route tests pass. - [ ] Valid examples pass and invalid examples fail as expected. - [ ] Save/load rollback and manual error scenarios pass. ## Risks and Open Questions - JSON Schema cannot express all semantic rules. - Severity must distinguish blocking errors from warnings. - Pre-stable `0.x` documents need a compatibility policy. ## Progress Log No work recorded yet. ## Handoff - Last completed: Slice plan created. - Next action: Build a validation matrix for every entry point and error class. - Known blockers: Define unsupported schema-version behavior.