4.2 KiB
4.2 KiB
phase, slug, status, nyquist_compliant, wave_0_complete, created
| phase | slug | status | nyquist_compliant | wave_0_complete | created |
|---|---|---|---|---|---|
| 3 | interaction-quality-and-completeness | draft | true | false | 2026-03-11 |
Phase 3 — Validation Strategy
Per-phase validation contract for feedback sampling during execution.
Test Infrastructure
| Property | Value |
|---|---|
| Framework | Vitest 4.0.18 + @testing-library/react + jsdom |
| Config file | frontend/vite.config.ts (test section) |
| Quick run command | cd frontend && bun vitest run --reporter=verbose |
| Full suite command | cd frontend && bun vitest run |
| Estimated runtime | ~20 seconds |
Sampling Rate
- After every task commit: Run
cd frontend && bun vitest run --reporter=verbose - After every plan wave: Run
cd frontend && bun vitest run && bun run build - Before
/gsd:verify-work: Full suite must be green - Max feedback latency: 20 seconds
Per-Task Verification Map
| Task ID | Plan | Wave | Requirement | Test Type | Automated Command | File Exists | Status |
|---|---|---|---|---|---|---|---|
| 03-00-01 | 00 | 0 | IXTN-01, IXTN-05, STATE-01, STATE-02, STATE-03 | unit stub | bun vitest run src/components/BudgetSetup.test.tsx src/pages/CategoriesPage.test.tsx src/pages/DashboardPage.test.tsx src/components/BillsTracker.test.tsx |
Created by 03-00 | pending |
| 03-01-01 | 01 | 1 | IXTN-02, IXTN-03 | unit | bun vitest run src/components/InlineEditCell.test.tsx |
extend | pending |
| 03-01-02 | 01 | 1 | IXTN-01 | unit | bun vitest run src/pages/LoginPage.test.tsx src/pages/RegisterPage.test.tsx src/components/BudgetSetup.test.tsx |
extend + W0 | pending |
| 03-02-01 | 02 | 1 | STATE-01, STATE-02 | unit | bun vitest run src/pages/DashboardPage.test.tsx src/pages/CategoriesPage.test.tsx |
W0 | pending |
| 03-02-02 | 02 | 1 | IXTN-05 | unit | bun vitest run src/pages/CategoriesPage.test.tsx |
W0 | pending |
| 03-03-01 | 03 | 2 | IXTN-03 | unit | bun vitest run src/components/BillsTracker.test.tsx |
W0 | pending |
| 03-03-02 | 03 | 2 | STATE-03 | unit | bun vitest run src/components/BillsTracker.test.tsx src/pages/DashboardPage.test.tsx |
W0 | pending |
Status: pending / green / red / flaky
Wave 0 Requirements
Plan 03-00-PLAN.md creates all 4 stub files:
frontend/src/components/BudgetSetup.test.tsx— stubs for IXTN-01 (budget form spinner)frontend/src/pages/CategoriesPage.test.tsx— stubs for IXTN-05 (delete confirmation), STATE-02 (empty state)frontend/src/pages/DashboardPage.test.tsx— stubs for STATE-01 (dashboard empty state)frontend/src/components/BillsTracker.test.tsx— stubs for STATE-03 (tinted skeleton)
Existing tests to extend (no Wave 0 needed):
LoginPage.test.tsx— add IXTN-01 spinner assertionRegisterPage.test.tsx— add IXTN-01 spinner assertionInlineEditCell.test.tsx— add IXTN-02 pencil icon + IXTN-03 flash callbacks
Manual-Only Verifications
| Behavior | Requirement | Why Manual | Test Instructions |
|---|---|---|---|
| Pencil icon hover animation feels smooth | IXTN-02 | CSS transition quality | Hover over editable cells; pencil should fade in smoothly ~150ms |
| Save flash color is visually pleasant | IXTN-03 | Color perception | Edit and save a value; row should flash soft green, not harsh |
| Error flash + revert feels natural | IXTN-03 | Interaction quality | Trigger a save error; row should flash red briefly, value reverts |
| Empty state looks balanced and inviting | STATE-01/02 | Visual composition | View dashboard with no budgets; icon + text + CTA should feel balanced |
| Skeleton tinting matches section colors | STATE-03 | Visual consistency | Observe loading state; skeleton pulse colors should match their section |
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 (03-00-PLAN.md)
- No watch-mode flags
- Feedback latency < 20s
wave_0_complete: trueset after 03-00 executes
Approval: pending execution