xtablo-source/.planning/phases/20-tablo-detail-kanban-restyle/20-VALIDATION.md
Arthur Belleville f24e1c4d35
test(20-01): add failing tests for TabloDetailViewModel + GetTabloDetailPage handler
- TestComputeTabloProgress_{Empty,AllDone,Half,EtapesIgnored}
- TestNewTabloDetailViewModel_{GroupsTasksByStatus,EtapesExcludedFromColumns,EtapesPopulated}
- TestGetTabloDetailPage_{Returns200,Returns404,Returns400,Unauthenticated}
- TestTabloDetailKanbanColumns
- TestGetTabloDetailPage_ContainsSortableScript
2026-05-18 15:44:53 +02:00

3.4 KiB

phase slug status nyquist_compliant wave_0_complete created
20 tablo-detail-kanban-restyle draft true false 2026-05-18

Phase 20 — Validation Strategy

Per-phase validation contract for feedback sampling during execution.


Test Infrastructure

Property Value
Framework go test
Config file none — existing test infrastructure
Quick run command go build ./...
Full suite command TEST_DATABASE_URL='postgres://xtablo:xtablo@localhost:5432/xtablo?sslmode=disable' go test ./... -count=1
Estimated runtime ~20 seconds

Sampling Rate

  • After every task commit: Run go build ./...
  • After every plan wave: Run full suite with TEST_DATABASE_URL
  • Before /gsd:verify-work: Full suite must be green
  • Max feedback latency: 20 seconds

Per-Task Verification Map

Task ID Plan Wave Requirement Threat Ref Secure Behavior Test Type Automated Command File Exists Status
20-01-01 01 1 DETAIL-01 handler returns 404 for tablo not owned by current user unit go build ./... pending
20-01-02 01 1 DETAIL-01 N/A unit go test ./backend/... -run TestTabloDetail -count=1 W0 pending
20-02-01 02 2 TASK-01 N/A build just generate && go build ./... pending
20-02-02 02 2 TASK-01 N/A build just generate && go build ./... pending
20-03-01 03 2 DETAIL-01 N/A source grep -c "tablo-detail-header|tablo-detail-title|tablo-metadata-row|tablo-progress-bar" backend/internal/web/ui/app.css pending
20-03-02 03 2 TASK-01 N/A source grep "background: var(--color-brand-primary)" backend/internal/web/ui/app.css pending

Status: pending · green · red · ⚠️ flaky


Wave 0 Requirements

  • backend/cmd/web/tablo_detail_test.go — stubs for DETAIL-01, TASK-01 handler tests
  • Test must compile with go test ./... -run TestTabloDetail -count=1 returning 0 (skip OK)

Existing infrastructure covers all other phase requirements (go build, just generate).


Manual-Only Verifications

Behavior Requirement Why Manual Test Instructions
Kanban drag-and-drop reorder persists after restyle TASK-01 Browser interaction required (Sortable.js) Open /tablos/{id}, drag a task card to a different position in the same column, reload page and verify new position persists
Tablo detail header matches Figma visual DETAIL-01 Visual layout requires browser render Open /tablos/{id}, compare header row (name, metadata, avatar stack, progress bar) against Board-1.png screenshot
Etapes section renders correctly DETAIL-01 Visual layout Open /tablos/{id} that has etapes, verify etapes section is visible below kanban with correct French labels

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

Approval: pending