[nexus] docs(21): add validation strategy

This commit is contained in:
Mikkel Georgsen 2026-04-01 12:43:14 +02:00
parent 08d01f89c9
commit 3f14268682

View file

@ -0,0 +1,82 @@
---
phase: 21
slug: chat-foundation
status: draft
nyquist_compliant: false
wave_0_complete: false
created: 2026-04-01
---
# Phase 21 — Validation Strategy
> Per-phase validation contract for feedback sampling during execution.
---
## Test Infrastructure
| Property | Value |
|----------|-------|
| **Framework** | Vitest 3.x |
| **Config file** | `server/vitest.config.ts` (server), `vitest.config.ts` (root, multi-project) |
| **Quick run command** | `pnpm vitest run server/src/__tests__/chat-service.test.ts` |
| **Full suite command** | `pnpm test:run` |
| **Estimated runtime** | ~15 seconds |
---
## Sampling Rate
- **After every task commit:** Run `pnpm vitest run server/src/__tests__/chat-service.test.ts`
- **After every plan wave:** Run `pnpm test:run`
- **Before `/gsd:verify-work`:** Full suite must be green
- **Max feedback latency:** 15 seconds
---
## Per-Task Verification Map
| Task ID | Plan | Wave | Requirement | Test Type | Automated Command | File Exists | Status |
|---------|------|------|-------------|-----------|-------------------|-------------|--------|
| 21-01-01 | 01 | 1 | HIST-01 | unit (service) | `pnpm vitest run server/src/__tests__/chat-service.test.ts` | ❌ W0 | ⬜ pending |
| 21-01-02 | 01 | 1 | HIST-01 | integration (route) | `pnpm vitest run server/src/__tests__/chat-routes.test.ts` | ❌ W0 | ⬜ pending |
| 21-01-03 | 01 | 1 | CHAT-04 | unit (service) | `pnpm vitest run server/src/__tests__/chat-service.test.ts` | ❌ W0 | ⬜ pending |
| 21-01-04 | 01 | 1 | CHAT-05 | unit (service) | `pnpm vitest run server/src/__tests__/chat-service.test.ts` | ❌ W0 | ⬜ pending |
| 21-01-05 | 01 | 1 | CHAT-06 | unit (service) | `pnpm vitest run server/src/__tests__/chat-service.test.ts` | ❌ W0 | ⬜ pending |
| 21-02-01 | 02 | 1 | CHAT-02, CHAT-03 | component (UI) | `pnpm vitest run ui/src/components/ChatMarkdownMessage.test.tsx` | ❌ W0 | ⬜ pending |
| 21-02-02 | 02 | 1 | INPUT-07 | component (UI) | `pnpm vitest run ui/src/components/ChatInput.test.tsx` | ❌ W0 | ⬜ pending |
*Status: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky*
---
## Wave 0 Requirements
- [ ] `server/src/__tests__/chat-service.test.ts` — stubs for HIST-01, CHAT-04, CHAT-05, CHAT-06
- [ ] `server/src/__tests__/chat-routes.test.ts` — stubs for HIST-01 route integration
- [ ] `ui/src/components/ChatMarkdownMessage.test.tsx` — stubs for CHAT-02, CHAT-03
- [ ] `ui/src/components/ChatInput.test.tsx` — stubs for INPUT-07
*Existing vitest infrastructure covers framework install.*
---
## Manual-Only Verifications
| Behavior | Requirement | Why Manual | Test Instructions |
|----------|-------------|------------|-------------------|
| Theme CSS variables apply to chat panel and code blocks | THEME-01, THEME-02 | Visual inspection required | Open app, switch themes (Catppuccin Mocha, Tokyo Night, Catppuccin Latte), verify chat panel and code block colors match theme |
| Infinite scroll loads next page on scroll to bottom | HIST-03 | Requires browser scroll simulation | Create 50+ messages, scroll to bottom, verify next page loads |
---
## Validation Sign-Off
- [ ] All tasks have `<automated>` verify or Wave 0 dependencies
- [ ] Sampling continuity: no 3 consecutive tasks without automated verify
- [ ] Wave 0 covers all MISSING references
- [ ] No watch-mode flags
- [ ] Feedback latency < 15s
- [ ] `nyquist_compliant: true` set in frontmatter
**Approval:** pending