Installs into .claude/skills of the current project.
Are you the author of Ztc Immersive Navigation Spatial Selection?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/realjustawall-ztc-immersive-navigation-spatial-selection)
---
name: ztc-immersive-navigation-spatial-selection
description: "Focused implementation and verification of spatial selection in Immersive Navigation Engine."
---
# Spatial Selection
Parent: `ztc-immersive-navigation` — read its acceptance gate and `../../src/immersive-nav.mjs` before editing.
## Required implementation
Map focusable navigation nodes to x/y positions and choose directionally adjacent target; retain keyboard key mapping.
### Exact workflow
1. Inspect current code ownership and versions; write down the affected components, selectors, assets and timeline owners.
2. Reproduce baseline at 320px/390px/768px/1440px, with pointer/touch, navigation, RTL if applicable, and reduced-motion.
3. Integrate the smallest change confined to this responsibility. Use typed/validated props and explicit lifecycle cleanup. Ensure failed assets, missing browser APIs and aborted interactions degrade gracefully.
4. Instrument observable state (progress, time, active selection, DOMRect, material parameters or frame index). Avoid non-deterministic quality claims.
5. Verify start, mid, end and reverse progress; resize after loading fonts/images; test one failure path and repeated navigation; inspect browser console and screenshots.
6. Compare user-facing behavior and performance to baseline. If a regression is observed, roll back just this change and record the cause.
## Contract
- **Input:** authenticated/validated application state, viewport, user preference, and dependencies explicitly available in target project.
- **Output:** meaningful accessible DOM and stable optional visual enhancement; no hidden input-only navigation.
- **Acceptance:** Arrow, Tab, Escape, deep-link, back and touch navigation remain usable when WebGL fails or JS is disabled.
- **Limitations:** Current navigator planner does not own browser history; integration must wire pushState and popstate and test those.
- **Evidence:** file paths, screenshot artifact paths, browser/driver, commands, actual test results, and unresolved TODOs.
## References
- https://developer.mozilla.org/en-US/docs/Web/API/History_API
- https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/navigation_role