morethanadiagnosis-hub/openspec/changes/2025-11-17-architecture-baseline/proposal.md

63 lines
2.1 KiB
Markdown

# Proposal: Architecture Baseline (v1)
Status: draft
Authors: Core Team
Owners: Architecture Lead
Created: 2025-11-17
Scope: spec
Related: openspec/specs/architecture.md
Summary
- Establish the initial modular architecture, API standards, and platform choices to ensure full Android/iOS/Web parity with strong accessibility and compliance foundations.
Motivation
- Align teams and AI agents on boundaries, tech choices, and quality bars before feature work begins.
Goals / Non-Goals
- Goals: define modules, API standards, data boundaries, platform options, decision process.
- Non-Goals: choose vendors/providers definitively (covered in follow-up proposals).
User Stories
- As a maintainer, I need clear boundaries to avoid coupling and accelerate features.
Requirements
- Functional: module map, API standards, client stack decision path.
- Accessibility: parity mandate captured as a gate.
- Privacy & Compliance: PHI/PII boundaries and logging guidance.
- Performance/SLOs: capture high-level SLO targets for core flows.
Architecture & Design
- See target spec: `openspec/specs/architecture.md` for DDD map, API, and data boundaries.
Security & Threat Model
- Outline trust boundaries; require auth standardization (OIDC/OAuth2), rate limiting, idempotency keys.
Observability & Telemetry
- Structured logging, traces on API, no PHI/PII in logs.
Migration / Rollout Plan
- N/A (process/architecture only). Applies immediately upon approval.
Test Plan
- Architecture checks via lint/CI where applicable; sample OpenAPI linting job.
Risks & Mitigations
- Scope creep → enforce spec-first and change lifecycle.
Alternatives Considered
- Monolith vs modular: choosing modular with clear boundaries.
Work Breakdown
- Finalize spec; generate skeleton SDK packages; CI templates.
Acceptance Criteria
- `openspec/specs/architecture.md` updated and approved; CI guardrails defined.
Open Questions
- React Native/Expo vs Flutter; Next.js vs Flutter Web.
Slash Commands
- `/review areas=security,mobile,web,backend`
- `/apply spec=openspec/specs/architecture.md`
- `/archive link=<PR>`