normogen/docs/adr
goose 17efc4f656 docs: reconcile documentation with reality (P3)
Make the project's documentation match the code and remove the sprawl. The docs
claimed Phase 2.8 (drug interactions) was 'planning/0%' and the backend '~91%
complete' — both wrong: 2.8 is implemented and live, plus the P0/P1 security
and test work is done. Five root CI/CD docs described a 'docker-build' CI job
that was removed; ~18 backend/ status snapshots and ~24 docs/implementation
duplicates cluttered the tree.

Deletions (85 files):
- Root: 4 stale CI/CD reports (CI-CD-{COMPLETION-REPORT,IMPLEMENTATION-SUMMARY,
  STATUS-REPORT,FINAL-STATUS}.md) — all describe the removed docker-build job.
- backend/: 18 phase/build/fix snapshots and code-dump .txt files.
- docs/: the 3 one-time reorg reports; ~17 docs/implementation duplicates and
  process artifacts; 4 stale docs/development CI docs + git snapshots;
  redundant deployment/testing files.
- thoughts/: STATUS.md (said Phase 2.4 in-progress), superseded phase notes and
  duplicative research inputs. tmp/ (928KB of CI debug logs, gitignored).

Moves (18 files):
- 9 genuine decision records -> docs/adr/ (Architecture Decision Records),
  date-prefixes stripped, with an index README.
- 8 historical-but-valuable phase plans/specs + the old CI-CD-FINAL-SOLUTION ->
  docs/archive/ (now-populated, with a README explaining it's superseded
  material). thoughts/ tree removed.

Rewrites (13 files) to match reality:
- Drop the fake '% complete' figures everywhere in favor of Implemented /
  In-Progress / Planned with concrete endpoint/feature lists.
- Phase 2.8 -> Implemented; add /api/interactions/* and /api/auth/{refresh,
  logout} to the endpoint lists; fix 'Rust 1.93' -> edition 2021.
- Add a Security section (token_version validation, hashed refresh-token
  persistence, fail-fast config, real-IP audit) and correct the test-coverage
  and deployment claims to reality.
- New canonical docs/development/CI-CD.md (4 jobs: format/clippy/build/test,
  mongo service, no docker-build + why).
- README, docs/README, product/{STATUS,ROADMAP,PROGRESS,README,introduction},
  implementation/README, development/README, testing/README, AI_AGENT_GUIDE,
  .cursorrules, .gooserules all updated.

Verified: greps for 'Phase 2.8 (Planning)', 'PLANNING (0%)', 'Rust 1.93',
'91%/10%/85% complete', and 'docker-build' return nothing outside docs/archive;
all internal doc links resolve; backend/src untouched (cargo build clean).
2026-06-27 16:02:16 -03:00
..
android-health-connect-data-types.md docs: reconcile documentation with reality (P3) 2026-06-27 16:02:16 -03:00
backend-deployment-constraints.md docs: reconcile documentation with reality (P3) 2026-06-27 16:02:16 -03:00
frontend-decision-summary.md docs: reconcile documentation with reality (P3) 2026-06-27 16:02:16 -03:00
jwt-authentication-decision.md docs: reconcile documentation with reality (P3) 2026-06-27 16:02:16 -03:00
mobile-health-frameworks-data.md docs: reconcile documentation with reality (P3) 2026-06-27 16:02:16 -03:00
mongodb-schema-decision.md docs: reconcile documentation with reality (P3) 2026-06-27 16:02:16 -03:00
monorepo-structure.md docs: reconcile documentation with reality (P3) 2026-06-27 16:02:16 -03:00
README.md docs: reconcile documentation with reality (P3) 2026-06-27 16:02:16 -03:00
state-management-decision.md docs: reconcile documentation with reality (P3) 2026-06-27 16:02:16 -03:00
tech-stack-decision.md docs: reconcile documentation with reality (P3) 2026-06-27 16:02:16 -03:00

Architecture Decision Records

This directory holds the project's decision records — the "why" behind the major technical choices. These were originally written during Phase 1 research (dated JanFeb 2026) and moved here from the old thoughts/research/ tree during the documentation reconciliation. They are historical context, not current specs.

Decisions

Record Topic
tech-stack-decision.md Master stack choice: Rust/Axum backend, React frontend, MongoDB, JWT
mongodb-schema-decision.md Document model + at-rest encryption approach
jwt-authentication-decision.md JWT access/refresh tokens, recovery phrases
frontend-decision-summary.md React (web) + React Native (mobile, future) split
state-management-decision.md Client state — superseded: decision was Redux Toolkit, actual code uses Zustand
monorepo-structure.md Repository layout (backend/, web/, mobile/, docs/)
backend-deployment-constraints.md Deployment requirements (Solaria, Docker)
mobile-health-frameworks-data.md HealthKit / Health Connect data-type reference (for future mobile work)
android-health-connect-data-types.md Android Health Connect data types

Note

: Where a decision diverges from the implemented code (e.g. state management), the code is the source of truth and the ADR is kept only as historical record of the reasoning at the time.