---
phase: 5
slug: discovery-navigation-framework
status: complete
nyquist_compliant: true
wave_0_complete: true
created: 2026-03-06
---

# Phase 5 — Validation Strategy

> Per-phase validation contract for feedback sampling during execution.

---

## Test Infrastructure

| Property | Value |
|----------|-------|
| **Framework** | Rust built-in test framework (cargo test) |
| **Config file** | Standard Cargo.toml -- no special test config needed |
| **Quick run command** | `cargo test -p app --lib` |
| **Full suite command** | `cargo test --workspace` |
| **Estimated runtime** | ~5 seconds |

---

## Sampling Rate

- **After every task commit:** Run `cargo test -p app --lib`
- **After every plan wave:** Run `cargo test --workspace`
- **Before `/gsd:verify-work`:** Full suite must be green
- **Max feedback latency:** 5 seconds

---

## Per-Task Verification Map

| Task ID | Plan | Wave | Requirement | Test Type | Automated Command | File Exists | Status |
|---------|------|------|-------------|-----------|-------------------|-------------|--------|
| 05-01-01 | 01 | 1 | DISC-03 | unit | `cargo test -p app --lib -- discovery` | ✅ | ✅ green |
| 05-01-02 | 01 | 1 | DISC-07 | unit | `cargo test -p app --lib -- discovery` | ✅ | ✅ green |
| 05-01-03 | 01 | 1 | DISC-08, DISC-09 | unit | `cargo test -p app --lib -- discovery` | ✅ | ✅ green |
| 05-02-01 | 02 | 1 | DISC-02 | manual-only | N/A (visual Slint markup) | N/A | ✅ green |
| 05-02-02 | 02 | 1 | DISC-03 | unit | `cargo test -p app --lib -- runtime_tests` | ✅ | ✅ green |
| 05-03-01 | 03 | 2 | DISC-07 | unit | `cargo test -p app --lib -- runtime_tests` | ✅ | ✅ green |
| 05-03-02 | 03 | 2 | DISC-08, DISC-09 | unit | `cargo test -p app --lib -- runtime_tests` | ✅ | ✅ green |

*Status: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky*

---

## Wave 0 Requirements

Existing infrastructure covers all phase requirements.

---

## Manual-Only Verifications

| Behavior | Requirement | Why Manual | Test Instructions |
|----------|-------------|------------|-------------------|
| Tab strip UI renders four mode tabs with correct icons | DISC-02 | Visual Slint markup — no runtime to test headlessly | Launch app, verify 4 icon tabs visible on left side, ~48px wide |
| Active tab shows left accent bar + lighter background | DISC-02 | Visual styling verification | Click each tab, verify active state visual indicators |
| Tab flash on keyboard mode switch | DISC-07 | Animation timing — visual-only | Press Up/Down arrows, verify brief flash on newly active tab |
| Toast message appears on Esc actions | DISC-08, DISC-09 | Visual overlay — no headless rendering | Press Esc, verify toast appears and auto-hides after ~1.5s |

---

## Validation Sign-Off

- [x] All tasks have `<automated>` verify or Wave 0 dependencies
- [x] Sampling continuity: no 3 consecutive tasks without automated verify
- [x] Wave 0 covers all MISSING references
- [x] No watch-mode flags
- [x] Feedback latency < 5s
- [x] `nyquist_compliant: true` set in frontmatter

**Approval:** approved 2026-03-11

---

## Validation Audit 2026-03-11

| Metric | Count |
|--------|-------|
| Gaps found | 0 |
| Resolved | 0 |
| Escalated | 0 |

All 91 tests pass (`cargo test -p app --lib`). Coverage map updated from pending to green based on existing test evidence:
- 36 discovery module tests covering DISC-03, DISC-07, DISC-08, DISC-09
- 21 runtime tests covering mode switching, Esc handling, toast messages
- 4 manual-only items for visual/animation verification (DISC-02)
