xtablo-source/.planning/phases/06-background-worker/06-VALIDATION.md
2026-05-15 16:12:51 +02:00

3.1 KiB

phase slug status nyquist_compliant wave_0_complete created
6 background-worker draft false false 2026-05-15

Phase 6 — Validation Strategy

Per-phase validation contract for feedback sampling during execution.


Test Infrastructure

Property Value
Framework go test
Config file backend/go.mod
Quick run command cd backend && go build ./cmd/worker/...
Full suite command cd backend && go test ./... && go build ./...
Estimated runtime ~10 seconds

Sampling Rate

  • After every task commit: Run cd backend && go build ./cmd/worker/...
  • After every plan wave: Run cd backend && go test ./... && go build ./...
  • Before /gsd-verify-work: Full suite must be green
  • Max feedback latency: 15 seconds

Per-Task Verification Map

Task ID Plan Wave Requirement Threat Ref Secure Behavior Test Type Automated Command File Exists Status
06-01-01 01 1 WORK-01 N/A build cd backend && go build ./cmd/worker/... pending
06-01-02 01 1 WORK-01 N/A unit cd backend && go test ./internal/worker/... W0 pending
06-02-01 02 1 WORK-02 N/A unit cd backend && go test ./internal/jobs/... W0 pending
06-03-01 03 2 WORK-03 N/A manual Worker logs show retry backoff entries pending
06-04-01 04 2 WORK-04 N/A build cd backend && go build ./... pending

Status: pending · green · red · ⚠️ flaky


Wave 0 Requirements

  • backend/internal/worker/worker_test.go — stubs for WORK-01 worker startup
  • backend/internal/jobs/jobs_test.go — stubs for WORK-02 periodic job registration

If none: "Existing infrastructure covers all phase requirements."


Manual-Only Verifications

Behavior Requirement Why Manual Test Instructions
Heartbeat logs "worker heartbeat" every ~1 min WORK-02 Requires running binary with real Postgres just worker and observe logs for 2 min
Orphan cleanup runs on schedule and logs results WORK-02 Requires real DB + S3 state Insert orphan row, start worker, wait for cleanup run
Failed job retried with backoff visible in logs WORK-03 Requires real river runtime Register a job that fails, observe retry log entries
Web binary enqueues job, worker picks up within seconds WORK-04 Integration between two running binaries just dev + enqueue trigger, observe worker logs

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