Capture the durable patterns from the placement-interaction overhaul so reviews
and new devs don't regress them:
- tools.md: new "Data-driven live drag" section — kinds whose geometry is
recomputed from fields (wall/opening/endpoint) preview via useLiveNodeOverrides
(merged by getEffectiveWall/getEffectiveNode), store written once on commit;
per-tick useScene.updateNodes is the documented anti-pattern (churns the nodes
ref → app-wide re-render flood). Plus "Floorplan registry: per-node
subscriptions" — each entry subscribes to its own live slice, memo'd with
stable props, sibling-epoch invalidation; widening to the whole Map / dropping
memo is a regression. Plus a note that the HUD snapping chip renders for any
snap-context tool, not only those with def.toolHints.
- review SKILL.md: matching blockers in §C (data-driven drag / no per-tick store
write) and §D (per-node list subscriptions).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>