2. Constraints
Last reviewed: 2026-11-03
What the team cannot decide: technical, organisational and legal limits.
Legal and privacy
| Constraint |
Where |
| GDPR: no watch request before the user said Yes on the watch; every user can delete the account with all data; every new kind of data or outside service goes on the privacy page |
specs/shared/privacy, ADR 006 |
| OpenStreetMap data (ODbL) for places, depth and tiles |
ADR 013, ADR 004 |
Technical
| Constraint |
Where |
Garmin Connect IQ 3+, Monkey C. The upload queue lives in Application.Storage and is limited to 64 KB (Wear OS: 16 MiB) |
apps/garmin-watchapp, track-sync § Local queue |
| Wear OS: Kotlin, Compose for Wear OS |
apps/android |
| Server: Ruby, Rails, PostgreSQL with PostGIS, Hotwire, no front-end build step |
specs/server |
| Hosting: Oracle Cloud VMs and object storage, Cloudflare (DNS, tunnels, Access, R2) |
section 7 |
Deploys only from the GitHub deploy job on main |
DEPLOYMENT.md |
Organisational
| Constraint |
Where |
| One repository, one owner; specs are the single source of truth for behaviour |
specs/README |
| Definition of Done for every agent and subagent |
AGENTS.md |
| Secrets stay in the password manager |
credentials |
| Store releases only from tags the owner creates |
AGENTS.md §4 |