2.0 KiB
2.0 KiB
Implementation Plan: OSM turn-lane arrows
Steps
- Add the complete lane-icons arrow asset set, upstream revision metadata, CC0 license text, and a manifest with the five supported/tested entries and explicit untested status for all other entries.
- Add a small CommonJS helper for asset-manifest loading, source-SVG path and stroke conversion, maneuver parsing, road-local placement, and diagnostic skip records. Keep it dependency-free and separately testable.
- Wire the helper into the intermediates build so custom features are merged
into
laneArrowsbefore the existing GeoJSON write and normalization path. - Add Node tests for the five supported maneuvers, forward/backward endpoint choice, lane index placement, deterministic order/id, and every required skip reason. Assert that untested manifest entries cannot be selected.
- Generate
rightandthrough;rightinspection samples from the exact local templates and request user confirmation. Do not enable custom output until this gate is met. - Run the focused tests, syntax checks, the Nantaizi intermediates build, the
full Nantaizi chain, and
check:area. Compare against a turn-tag-removed control to prove an observable GeoJSON difference.
Validation
node --checkfor changed CommonJS scripts.- New pure Node test script(s), invoked directly or through a package script.
npm run build:area -- --config config/areas/nantaizi-lake-innovation-valley.json --stages intermediates- Full target-area pipeline after visual approval.
npm run check:area -- --config config/areas/nantaizi-lake-innovation-valley.json
Review Gates
- No generated custom feature may use an asset whose manifest status is not both supported and tested.
- Samples must show the same fill/outline treatment as the existing lane-arrow layer.
- Keep the existing layer registry unchanged; this is a new source for an existing layer, not a new layer.
- Do not commit without the user's explicit confirmation.