87 lines
2.3 KiB
Markdown
87 lines
2.3 KiB
Markdown
# 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.
|