This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user