Files
osmWorkflow/.trellis/tasks/archive/2026-08/08-18-native-traffic-signal-parity/implement.md

1.5 KiB

Implementation Plan

  1. Define the native signal model/override artifact and migration adapter; reuse existing generation, validation, and deterministic signal UID rules.
  2. Add QGIS import/export commands that translate traffic_signal_assemblies.geojson to/from the native artifact without making native compile depend on QGIS.
  3. Extend native compile/workbench state to expose signal assemblies, OSM controls/arms, and derived runtime provenance.
  4. Add validated atomic signal save operations for generate, move, rotate, delete, and field edits; preserve legacy ID compatibility.
  5. Add Workbench map styling, selection, editing controls, dirty state, save, compile/reload, and clear error handling for signal assemblies.
  6. Ensure native Blender/Cesium/preview stages consume runtime signal data generated from the native model, while legacy stages remain compatible.
  7. Add focused traffic-signal, Workbench, migration, and cross-layer round-trip tests; run the existing legacy traffic-signal and preview suites.

Validation

npm run test:traffic-signals
npm run test:preview-assets
npm run test:road-workbench
npm run road:compile -- --config config/areas/nantaizi-lake-innovation-valley.json
npm run road:check -- --config config/areas/nantaizi-lake-innovation-valley.json

Manual acceptance must cover native-only generate/move/rotate/delete -> save -> recompile -> runtime JSON and preview, plus QGIS import/export compatibility; disabled signals must be omitted from runtime output.