Files
HouseHoldKeaper/.planning/milestones/v1.0-phases/04-notifications/04-VALIDATION.md
2026-03-16 20:12:01 +01:00

3.2 KiB

phase, slug, status, nyquist_compliant, wave_0_complete, created
phase slug status nyquist_compliant wave_0_complete created
4 notifications draft false false 2026-03-16

Phase 4 — Validation Strategy

Per-phase validation contract for feedback sampling during execution.


Test Infrastructure

Property Value
Framework flutter_test (built-in)
Config file none — uses flutter test runner
Quick run command flutter test test/core/notifications/
Full suite command flutter test
Estimated runtime ~15 seconds

Sampling Rate

  • After every task commit: Run flutter test test/core/notifications/
  • After every plan wave: Run flutter test
  • Before /gsd:verify-work: Full suite must be green + dart analyze --fatal-infos
  • Max feedback latency: 15 seconds

Per-Task Verification Map

Task ID Plan Wave Requirement Test Type Automated Command File Exists Status
04-01-01 01 1 NOTF-01 unit flutter test test/core/notifications/notification_service_test.dart W0 pending
04-01-02 01 1 NOTF-01 unit flutter test test/core/notifications/notification_service_test.dart W0 pending
04-01-03 01 1 NOTF-02 unit flutter test test/core/notifications/notification_settings_notifier_test.dart W0 pending
04-01-04 01 1 NOTF-02 unit flutter test test/core/notifications/notification_settings_notifier_test.dart W0 pending

Status: pending · green · red · ⚠️ flaky


Wave 0 Requirements

  • test/core/notifications/notification_service_test.dart — stubs for NOTF-01 scheduling logic
  • test/core/notifications/notification_settings_notifier_test.dart — stubs for NOTF-02 persistence
  • lib/core/notifications/notification_service.dart — service stub for testing
  • android/app/build.gradle.kts — add desugaring dependency
  • android/app/src/main/AndroidManifest.xml — permissions + receivers
  • Framework install: flutter pub add flutter_local_notifications timezone flutter_timezone

Manual-Only Verifications

Behavior Requirement Why Manual Test Instructions
Boot receiver manifest entry present (exported=true) NOTF-01 Static XML config, not runtime testable Inspect AndroidManifest.xml for ScheduledNotificationBootReceiver with android:exported="true"
POST_NOTIFICATIONS permission requested on toggle-on NOTF-01 Native Android permission dialog Run on Android 13+ emulator, toggle notification ON, verify dialog appears
Notification actually appears on device NOTF-01 flutter_local_notifications dispatches to native Run on emulator, schedule notification 1 min ahead, verify it appears

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