2.3 KiB
2.3 KiB
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-structurepasses.- 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.