1.8 KiB
Decision log
ADR-01: Local-first persistence
Decision: Use a versioned storage adapter over localStorage with validated JSON import/export.
Reason: It keeps a solo project achievable, demonstrates data boundaries and recovery, and avoids unrelated account/cloud work.
Consequence: Data is per-browser; the UI says this clearly and provides a portable backup.
ADR-02: Derived progress
Decision: Calculate completion and dashboard summaries from task records. Reason: Storing calculated progress would introduce synchronisation defects. Evidence: Domain tests cover empty and partially complete goals.
ADR-03: Standards and compatibility
Decision: Use semantic HTML, system fonts, Grid/Flexbox, feature detection and a UUID fallback. Reason: Avoid browser-specific styling and unnecessary polyfills while keeping a clear backwards-compatibility path.
RWD-01: 1680 summary-card orphan
Observed: Visual inspection at 1680×1050 showed a three-column grid with the fourth summary card alone on a second row. Functionality passed, but hierarchy and balance were poor.
Decision: Use a balanced 2×2 summary grid below 1800 px and a four-column row from 1800 px.
Verification: Computed styles changed from three columns to two; scrollWidth remained equal to clientWidth; the full core journey passed again.
Evidence: responsive-defect-before-1680x1050.png and responsive-fix-after-1680x1050.png.
ADR-04: Truthful manual evidence
Decision: Do not simulate Microsoft Edge or claim physical-device sessions from a Linux host. Reason: Viewport automation is useful evidence but is not equivalent to two real computers or a genuine Edge build. The supplied protocol makes the remaining evidence reproducible and auditable.