---
phase: 10.1
slug: setdisplayeyetohead-spike
status: draft
nyquist_compliant: false
wave_0_complete: false
created: 2026-03-24
---

# Phase 10.1 — Validation Strategy

> Per-phase validation contract for feedback sampling during execution.

---

## Test Infrastructure

| Property | Value |
|----------|-------|
| **Framework** | Manual visual testing in HMD + driver log inspection |
| **Config file** | N/A — spike uses visual verification |
| **Quick run command** | `echo eyetohead_set 65 > \\.\pipe\beyond_proximity_ctl` |
| **Full suite command** | Sequential: `eyetohead_set 48`, `eyetohead_set 55`, `eyetohead_set 63`, `eyetohead_set 75` |
| **Estimated runtime** | ~60 seconds (manual visual inspection per IPD value) |

---

## Sampling Rate

- **After every task commit:** Build + deploy + manual visual test with single IPD value
- **After every plan wave:** Full IPD sweep (48/55/63/75mm) with visual verification
- **Before `/gsd:verify-work`:** Full sweep must show visible rendering changes
- **Max feedback latency:** ~60 seconds (build + deploy + visual check)

---

## Per-Task Verification Map

| Task ID | Plan | Wave | Requirement | Test Type | Automated Command | File Exists | Status |
|---------|------|------|-------------|-----------|-------------------|-------------|--------|
| SPIKE-01 | 01 | 1 | N/A | manual | `eyetohead_set 48` then `eyetohead_set 75` — visual change | N/A | ⬜ pending |
| SPIKE-02 | 01 | 1 | N/A | log-inspect | Check driver log for yaw ~±6.17° after eyetohead_set | N/A | ⬜ pending |
| SPIKE-03 | 01 | 1 | N/A | manual | Multiple eyetohead_set calls in sequence — repeated changes | N/A | ⬜ pending |

*Status: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky*

---

## Wave 0 Requirements

Existing infrastructure covers all phase requirements. No automated test framework needed — this is a manual verification spike.

---

## Manual-Only Verifications

| Behavior | Requirement | Why Manual | Test Instructions |
|----------|-------------|------------|-------------------|
| Eye separation changes visually | SPIKE-01 | Rendering output only verifiable in HMD | 1. Build & deploy driver 2. Send `eyetohead_set 48` 3. Observe rendering 4. Send `eyetohead_set 75` 5. Confirm visible shift |
| Euler angle decomposition correctness | SPIKE-02 | Log output inspection | 1. Send `eyetohead_set 65` 2. Check driver log for left_yaw ~+6.17° and right_yaw ~-6.17° |
| Repeated call capability | SPIKE-03 | Visual confirmation of live changes | 1. Send 4+ sequential eyetohead_set commands with different values 2. Confirm rendering changes each time |

---

## Validation Sign-Off

- [ ] All tasks have manual verification instructions
- [ ] IPD sweep test covers full range (48-75mm)
- [ ] Euler angle validation criteria defined (±6.17° yaw)
- [ ] Go/no-go criteria documented (visual change = PASS, no change = FAIL)
- [ ] `nyquist_compliant: true` set in frontmatter

**Approval:** pending
