5.1 KiB
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.vueandCloudStorageView.vueif 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: trueis set in frontmatter.
Approval: pending plan-checker validation