Files

4.9 KiB

phase, slug, status, nyquist_compliant, wave_0_complete, created
phase slug status nyquist_compliant wave_0_complete created
13 add-remaining-rclone-remotes draft false false 2026-04-01

Phase 13 — Validation Strategy

Per-phase validation contract for feedback sampling during execution.


Test Infrastructure

Property Value
Framework Vitest ^4.1.1
Config file vite.config.ts (test.environment: jsdom) + vitest.config.ts (node env for generator tests)
Quick run command npx vitest run
Full suite command npx vitest run
Estimated runtime ~15 seconds

Sampling Rate

  • After every task commit: Run npx vitest run
  • After every plan wave: Run npx vitest 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
13-01-01 01 0 Wave 0 test stubs unit npx vitest run src/schemas/index.test.ts Wave 0 gap pending
13-01-02 01 0 OAuthInstructions test stubs unit npx vitest run src/components/wizard/OAuthInstructions.test.tsx Wave 0 gap pending
13-01-03 01 0 BackendSelectionStep search/category test stubs unit npx vitest run src/components/wizard/BackendSelectionStep.test.tsx Wave 0 gap pending
13-02-01 02 1 All 17 backends in BACKEND_REGISTRY unit npx vitest run src/schemas/registry.test.ts Update existing pending
13-02-02 02 1 Each new backend has required fields unit npx vitest run src/schemas/registry.test.ts Update existing pending
13-02-03 02 1 BACKEND_SCHEMAS auto-covers new backends unit npx vitest run src/schemas/index.test.ts Wave 0 pending
13-02-04 02 1 RCLONE_TYPE_MAP has entry for each backend unit npx vitest run src/generators/rclone-conf.test.ts Update existing pending
13-03-01 03 1 BackendSelectionStep renders all 17 cards unit npx vitest run src/components/wizard/BackendSelectionStep.test.tsx Update existing pending
13-03-02 03 1 Search filter hides non-matching cards unit npx vitest run src/components/wizard/BackendSelectionStep.test.tsx Wave 0 pending
13-03-03 03 1 Category headings collapse when filtered unit npx vitest run src/components/wizard/BackendSelectionStep.test.tsx Wave 0 pending
13-04-01 04 2 OAuthInstructions renders collapsed unit npx vitest run src/components/wizard/OAuthInstructions.test.tsx Wave 0 pending
13-04-02 04 2 OAuthInstructions expands on click unit npx vitest run src/components/wizard/OAuthInstructions.test.tsx Wave 0 pending
13-04-03 04 2 RemoteConfigStep renders gdrive fields unit npx vitest run src/components/wizard/RemoteConfigStep.test.tsx Update existing pending
13-04-04 04 2 RemoteConfigStep renders ftp fields unit npx vitest run src/components/wizard/RemoteConfigStep.test.tsx Update existing pending
13-04-05 04 2 buildRcloneConf outputs correct type for gdrive unit npx vitest run src/generators/rclone-conf.test.ts Update existing pending

Status: pending · green · red · ⚠️ flaky


Wave 0 Requirements

  • src/schemas/index.test.ts — stubs for BACKEND_SCHEMAS auto-generation (verify no undefined for new types)
  • src/components/wizard/OAuthInstructions.test.tsx — stubs for collapsed default + expand behavior
  • New test cases in src/components/wizard/BackendSelectionStep.test.tsx — search filter and category collapse behavior

Existing infrastructure covers registry, rclone-conf, and RemoteConfigStep tests.


Manual-Only Verifications

Behavior Requirement Why Manual Test Instructions
Backend card icons render correctly in light/dark mode Visual SVG rendering + theme tokens Open BackendSelectionStep, toggle theme, verify icon visibility
OAuthInstructions shows correct rclone authorize command UX Backend-specific CLI command Select OAuth backend, expand instructions, verify command matches rclone docs
Category grouping matches IT pro mental model UX Subjective grouping Review categories: Cloud Object Storage, Cloud Drives, Protocol-based

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