Files
Lumotia/docs/brief/legal-compliance.md
Jake 26c7307607
Some checks failed
check / cargo check (macos-latest) (push) Has been cancelled
check / cargo check (ubuntu-22.04) (push) Has been cancelled
check / cargo check (windows-latest) (push) Has been cancelled
check / svelte build + lint (push) Has been cancelled
agent: lumotia-rebrand — docs, scripts, root config, residuals
Phase 9 of the rebrand cascade. Sweep covers everything the Phase 8
frontend pass deliberately skipped: docs/, root markdown, scripts,
Cargo.toml descriptions, code comments that survived earlier
word-boundary sed, plus a handful of identifiers caught on the final
verify pass.

transcription-app changes:
- README.md, HANDOVER.md, KNOWN-ISSUES.md, run.sh — magnotia/Magnotia
  -> lumotia/Lumotia.
- docs/ — sweep across all subdirs except docs/handovers/ (preserved
  as immutable audit trail). Includes architecture-map references
  to magnotia_core::*, magnotia_storage::*, etc. now pointing at
  lumotia_*; dev-setup.md tracing output examples (lumotia_startup
  target); brief/ + superpowers/ + issues/ + whisper-ecosystem/ +
  audit/.
- Cargo.toml descriptions on 9 crates (core, audio, cloud-providers,
  hotkey, llm, mcp, plus referenced others).
- crates/core/src/{error,hardware,recommendation,paths}.rs +
  crates/audio/src/wav.rs + crates/llm/src/model_manager.rs +
  crates/cloud-providers/src/keystore.rs + crates/mcp/src/lib.rs —
  doc comments and a model-manager user-agent string.
- Caught on final pass: BroadcastChannel("magnotia_task_sync") -> ...
  ("lumotia_task_sync"); magnotia_locale i18n localStorage key
  renamed + migration shim added; CSS keyframe names
  magnotiaPulse / magnotiaBar / magnotiaFade renamed in the design-
  system kit; magnotia_viewer_item / magnotia_viewer_mode handoff
  keys renamed in HistoryPage + viewer/+page.svelte; src/assets/
  wordmark.svg text.
- src-tauri/src/lib.rs comment cleanup ("magnotia era" was sed'd
  to "lumotia era" earlier — restored).

Preserved (intentional):
- crates/core/src/paths.rs — keeps "magnotia" / "Magnotia" / ".magnotia"
  legacy detection strings in legacy_and_target_paths() so the
  migration shim can still find user data from the magnotia era.
- src/lib/stores/{page,focusTimer}.svelte.ts + src/lib/i18n/index.ts
  — migration call sites reference the legacy magnotia keys
  deliberately.
- docs/handovers/ — historical audit trail.

cargo build --workspace passes. npm run check: 0 errors / 0 warnings
(3958 files). cargo test --workspace: 339 pass / 0 fail.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 12:38:03 +01:00

45 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- Source: Lumotia Master Brief — §6 Legal & Compliance -->
## 6. Legal & Compliance
### Code signing (non-negotiable for distribution)
- **macOS:** Apple Developer Programme (£79/year) + notarisation mandatory. Unsigned apps trigger "damaged app" dialogue that most users cannot bypass.
- **Windows:** Extended Validation certificate (£240£480/year) for immediate SmartScreen bypass. Unsigned executables trigger warnings that destroy conversion.
- **Linux:** Users more tolerant of unsigned software. Flathub + AppImage as primary formats.
- **Budget impact:** ~£320£560/year minimum for macOS + Windows signing. Non-optional cost.
### GDPR position (local-only tier)
- **Jake is NOT a data processor.** Lumotia runs entirely on-device. No data is transmitted, stored, or visible to the developer. Same legal position as distributing a word processor.
- **Special category data:** Marketing targets neurodivergent users, but the app does not collect, store, or infer diagnosis information. Per ICO guidance, a "possible inference" is not special category data — only "reasonable certainty" triggers Article 9. Lumotia is on safe ground here.
- **Voice data:** Processed locally by Whisper. Never leaves the device. No third-party processor involved.
### GDPR position (cloud tier — when added)
- Jake becomes a data processor when voice data hits an external API.
- Requires: explicit consent before any audio is sent, data processing addendum, clarity on which AI provider and their retention policies.
- Do not add cloud features until revenue justifies compliance overhead.
### European Accessibility Act (EAA)
- Enforceable from 28 June 2025. Applies to consumer-facing digital products sold in the EU, including apps.
- Technical benchmark: EN 301 549 V3.2.1, incorporating WCAG 2.1 Level AA.
- Applies to non-EU companies selling to EU customers (similar extraterritorial reach to GDPR).
- Microenterprises (fewer than 10 employees, under €2M turnover) are currently exempt — Lumotia qualifies initially.
- **The UK has not adopted the EAA.** UK relies on the Equality Act 2010 ("reasonable adjustments") with no specific technical standards enforced.
- **Competitive opportunity:** Neither Tiimo nor Structured publishes a VPAT or formal accessibility conformance report. Publishing one first opens doors to government procurement, educational institutions, and enterprise contracts.
- Build to WCAG 2.2 AA from day one — this aligns with Lumotia's design philosophy and creates a genuine compliance moat.
### Required before paid launch
- [ ] Privacy policy (no data leaves device, no telemetry, no identifying analytics)
- [ ] Terms of service (licence terms, limitation of liability, AI accuracy disclaimer)
- [ ] Cookie policy (if landing page/website uses any tracking)
### Required before cloud tier launch
- [ ] Data processing addendum
- [ ] Explicit consent mechanism in-app
- [ ] DPIA (Data Protection Impact Assessment) — recommended given voice data + neurodivergent audience
- [ ] Review AI provider's data retention and training policies
### Business structure
- Personal project for now. No company entity required during beta.
- Roll into CORBEL Ltd if/when revenue becomes meaningful.
- Consult tax advisor at ~£500+/month revenue to determine optimal structure.