# Phase Plan ## NTP-P0 — Repository framework and delivery workflow Goal: initialize the project like the phase-gated Second Brain workflow. Deliverables: - Android Kotlin/Compose skeleton. - Room storage model draft. - Raw UDP NTP client draft. - Gitea Actions debug APK workflow. - Project docs, hard rules, and validation target. Gate: - `make validate-structure` passes. - Repo pushes to Gitea. ## NTP-P1 — NTP probe correctness Goal: make the raw UDP NTP client reliable and testable. Deliverables: - Unit tests for packet timestamp parsing/encoding and warning mapping. - Probe result model with all required NTP fields. - Error handling for DNS failure, timeout, malformed packets, and unreachable hosts. Gate: - Unit tests pass. - Manual test against known public NTP servers succeeds. ## NTP-P2 — Saved servers and dashboard MVP Goal: provide a useful saved server list and one-tap comparison dashboard. Deliverables: - Add/edit/delete servers. - Default server seed only on first run. - Latest result per server visible on dashboard. - Sort by latency, offset, stratum, reachability, health score. - Best candidate calculation. Gate: - Debug APK builds. - Manual emulator/device smoke test passes. ## NTP-P3 — Continuous testing and disagreement detection Goal: support polling intervals and peer-group comparison. Deliverables: - Continuous mode at 1s, 5s, 10s, 30s. - Offset median and threshold outlier warnings. - Reference ID change warning. - Short history retention policy. Gate: - Continuous mode stops cleanly when disabled/backgrounded. - Battery/network behavior reviewed. ## NTP-P4 — Profiles and export Goal: make the app practical for home/customer troubleshooting. Deliverables: - Profile CRUD and server assignment. - Export/share current results and history as text/CSV. - Import server list design for later CSV/YAML. Gate: - Export contains no hidden telemetry or private app metadata. - Profile switching works on device. ## NTP-P5 — UX polish and release prep Goal: prepare signed release builds. Deliverables: - Dark/light mode polish. - Empty/error/loading states. - Signed release build workflow using Gitea secrets. - Release checklist. - Open Android Date & Time settings action if local clock offset warning is present. Gate: - Lint/tests/build pass. - Permission and privacy review passes.