conductor/SLICE1.md

69 lines
2.5 KiB
Markdown

# Slice 1: Remaining MVP GUI Components
## Status
Not started
## Objective
Implement every GUI component required by the MVP so each schema-supported component can be added, configured, rendered, used in Preview, and tested.
## Dependencies
- Existing canonical schema, component model, palette, canvas, property editor, and Preview patterns
- Slice 7 is required only if the AI decision changes component-generation scope
## In Scope
- Text Area, Checkbox, Radio Group, Status/Message Panel, and Container/Card
- Defaults, property controls, runtime behavior, bindings, diagnostics, examples, and tests
## Out of Scope
- Post-MVP widgets such as tabs, modals, charts, and file upload
- Visual action and binding authoring, which belongs to Slice 2
## Tasks
- [ ] Define shared acceptance criteria and test patterns for component implementation.
- [ ] Implement Text Area end-to-end.
- [ ] Implement Checkbox end-to-end.
- [ ] Implement Radio Group end-to-end.
- [ ] Implement Status/Message Panel end-to-end.
- [ ] Define and implement the minimum MVP Container/Card behavior and nesting rules.
- [ ] Add component-specific binding support and diagnostics.
- [ ] Add or update example projects for all five components.
- [ ] Remove the schema/runtime mismatch for supported component types.
- [ ] Update `TASKS.md`, `CODEX.md`, and relevant documentation.
## Acceptance Criteria
- [ ] All eleven MVP types can be added through the palette and render on the canvas and in Preview.
- [ ] Properties survive JSON editing and save/load round trips.
- [ ] Interactive values remain in runtime state, not canonical JSON.
- [ ] Invalid configurations produce useful diagnostics.
- [ ] Existing components and bindings continue to work.
## Validation
- [ ] Frontend TypeScript check and production build pass.
- [ ] Component and renderer tests pass.
- [ ] Schema examples validate as expected.
- [ ] Manual canvas, Preview, and save/load checks pass for each component.
## Risks and Open Questions
- Container/Card needs a deliberately small nesting contract.
- Checkbox and Radio Group values must stay consistent across properties, runtime, templates, and bindings.
- Status/Message Panel needs a distinct contract from Label and JSON Viewer.
## Progress Log
No work recorded yet.
## Handoff
- Last completed: Slice plan created.
- Next action: Define component contracts and implement Text Area as the reference pattern.
- Known blockers: Container/Card nesting behavior requires a scoped decision.