Files
tessera-ctl/.planning/phases/05-dashboard-calendar/05-VALIDATION.md
T

2.4 KiB

phase, slug, status, nyquist_compliant, wave_0_complete, created
phase slug status nyquist_compliant wave_0_complete created
05 dashboard-calendar draft false false 2026-06-23

Phase 05 — Validation Strategy

Per-phase validation contract for feedback sampling during execution.


Test Infrastructure

Property Value
Framework vitest
Config file apps/web/vitest.config.ts
Quick run command pnpm --filter web test --run
Full suite command pnpm --filter web test --run && pnpm --filter api test --run
Estimated runtime ~30 seconds

Sampling Rate

  • After every task commit: Run pnpm --filter web test --run
  • After every plan wave: Run pnpm --filter web test --run && pnpm --filter api test --run
  • Before /gsd-verify-work: Full suite must be green
  • Max feedback latency: 30 seconds

Per-Task Verification Map

Task ID Plan Wave Requirement Threat Ref Secure Behavior Test Type Automated Command File Exists Status
Populated during planning ⬜ pending

Status: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky


Wave 0 Requirements

  • react-grid-layout installation and type stubs
  • Markdown editor library installation
  • Calendar library installations (tsdav, node-ical)
  • Dashboard API test stubs
  • Calendar source API test stubs

Manual-Only Verifications

Behavior Requirement Why Manual Test Instructions
Drag & drop widget rearrangement DASH-01 Visual interaction Open dashboard, enter edit mode, drag widget to new position
Widget resize DASH-02 Visual interaction Enter edit mode, resize widget via drag handle
Calendar events display CAL-03 External service Configure calendar source, verify events appear
Responsive grid scaling DASH-03 Visual breakpoints Resize browser window, verify grid scales proportionally

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 < 30s
  • nyquist_compliant: true set in frontmatter

Approval: pending