## Summary Implement the demo architecture v2 spec from `docs/specifications/demo-architecture-v2.md`. ## Root Cause (from Five-Whys Analysis) TUI and WASM demos don't share exact same logic because: 1. No probar-first testing enforcement 2. YAML configs exist but demos don't load them 3. No unified DemoEngine trait 4. Separate TUI/WASM state wrappers ## Tasks - [ ] Create `src/demos/engine.rs` with DemoEngine trait - [ ] Create `tests/probar_demos.rs` with parity test - [ ] Create `examples/experiments/orbit_earth_sun.yaml` - [ ] Implement `OrbitalEngine: impl DemoEngine` - [ ] Implement `TspEngine: impl DemoEngine` - [ ] Create generic renderers - [ ] Remove hardcoded `KeplerConfig::earth_sun()` calls - [ ] Verify probar parity tests pass ## Acceptance Criteria ```bash cargo test --test probar_demos ``` All tests must pass.
Summary
Implement the demo architecture v2 spec from
docs/specifications/demo-architecture-v2.md.Root Cause (from Five-Whys Analysis)
TUI and WASM demos don't share exact same logic because:
Tasks
src/demos/engine.rswith DemoEngine traittests/probar_demos.rswith parity testexamples/experiments/orbit_earth_sun.yamlOrbitalEngine: impl DemoEngineTspEngine: impl DemoEngineKeplerConfig::earth_sun()callsAcceptance Criteria
cargo test --test probar_demosAll tests must pass.