[nexus] docs(21): add validation strategy
This commit is contained in:
parent
08d01f89c9
commit
3f14268682
1 changed files with 82 additions and 0 deletions
82
.planning/phases/21-chat-foundation/21-VALIDATION.md
Normal file
82
.planning/phases/21-chat-foundation/21-VALIDATION.md
Normal 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
|
||||
Loading…
Add table
Reference in a new issue