Files
kite/.planning/phases/12-cloud-resource-foundation/12-VALIDATION.md
T

5.1 KiB

phase, slug, status, nyquist_compliant, wave_0_complete, created
phase slug status nyquist_compliant wave_0_complete created
12 cloud-resource-foundation draft true false 2026-06-18

Phase 12 — Validation Strategy

Per-phase validation contract for feedback sampling during execution.


Test Infrastructure

Property Value
Framework pytest 8.x, Vitest 4.x, Vue Test Utils 2.x
Config file backend/pytest.ini, frontend/vitest.config.js
Quick run command cd backend && pytest -q tests/test_cloud.py tests/test_cloud_backends.py tests/test_cloud_capabilities.py tests/test_cloud_items.py and focused frontend Vitest files
Full suite command cd backend && pytest -v; cd frontend && npm test; cd frontend && npm run build
Estimated runtime Establish baseline during Wave 0; keep focused feedback under 60 seconds

Sampling Rate

  • After every task commit: Run the focused test file(s) named by that task.
  • After every plan wave: Run backend and frontend full suites for all touched layers.
  • Before /gsd:verify-work: Full backend suite, frontend suite, production build, and required PostgreSQL integration tests must be green.
  • Max feedback latency: 60 seconds for focused task verification.

Per-Task Verification Map

Task ID Plan Wave Requirement Threat Ref Secure Behavior Test Type Automated Command File Exists Status
12-01-01 01 1 CONN-04, CLOUD-08 T-12-06 Capability discovery never mutates provider content unit cd backend && pytest -q tests/test_cloud_capabilities.py W0 pending
12-01-02 01 1 CACHE-02, SYNC-01 T-12-01, T-12-02 Cloud item metadata is owner and connection scoped unit + PostgreSQL integration cd backend && pytest -q tests/test_cloud_items.py W0 pending
12-02-01 02 2 CLOUD-01, SYNC-01 T-12-01, T-12-07 Connection-ID browse cannot cross owners and only reconciles complete listings API integration cd backend && pytest -q tests/test_cloud.py tests/test_cloud_items.py Existing + W0 additions pending
12-02-02 02 2 CACHE-01 T-12-09 Browse performs no byte download, MinIO write, or quota mutation negative integration cd backend && pytest -q tests/test_cloud.py -k 'no_bytes or quota' W0 pending
12-03-01 03 2 CONN-04, CLOUD-08 T-12-10 Unsupported controls remain safe, focusable, and explanatory on pointer/keyboard/touch component cd frontend && npm test -- --run StorageBrowser Existing file needs expansion pending
12-03-02 03 2 CLOUD-01 T-12-01 Frontend routes and requests use connection UUID, including duplicate providers store/view component cd frontend && npm test -- --run CloudFolderView CloudStorageView cloudConnections Partial/W0 pending
12-04-01 04 3 All Phase 12 T-12-01..10 Full owner/admin, regression, build, and PostgreSQL gates pass integration/regression full suite commands above Existing + additions pending

Status: pending · green · red · ⚠️ flaky


Wave 0 Requirements

  • backend/tests/test_cloud_capabilities.py — capability normalization, reason states, safe discovery, item overrides.
  • backend/tests/test_cloud_items.py — owner-scoped persistence, stable identity, reconciliation, metadata-only invariants.
  • PostgreSQL fixtures/marker for unique constraints, foreign keys, UUIDs, indexes, and cascade behavior.
  • Frontend test files for CloudFolderView.vue and CloudStorageView.vue if focused files do not already exist.
  • Shared provider response fixtures for Google Drive, OneDrive, Nextcloud, and generic WebDAV normalization.
  • Baseline focused and full-suite runtimes recorded before implementation begins.

Manual-Only Verifications

Behavior Requirement Why Manual Test Instructions
Tooltip placement and clarity across desktop/mobile viewports CLOUD-08 Visual polish and viewport clipping need rendered-browser review Use Playwright at mobile and desktop widths; hover, keyboard-focus, and tap unsupported controls; verify explanation is readable and does not overlap adjacent UI
Cached-first folder transition preserves perceived continuity CLOUD-01 Perceived flicker and scroll stability benefit from browser observation Seed cached metadata, delay provider refresh, navigate folders, and verify rows remain usable with only the subtle folder-level refresh indicator

Validation Sign-Off

  • All proposed implementation tasks have an automated verification route or Wave 0 dependency.
  • Sampling continuity: no three consecutive tasks may occur without automated verification.
  • Wave 0 identifies every currently missing focused test/fixture.
  • Commands use one-shot test modes, not watch mode.
  • Focused feedback target is under 60 seconds.
  • nyquist_compliant: true is set in frontmatter.

Approval: pending plan-checker validation