Files
calendula/.planning/REQUIREMENTS.md
Jean-Luc Makiola 376663b0d8 chore: batch fix final-review findings on Plan 01
- ROADMAP: mark v0.1 (Foundation & CI) as complete
- REQUIREMENTS: move Foundation & CI from Active to Validated (shipped)
- AndroidManifest: drop redundant android:label and android:theme on
  MainActivity - both inherited from <application>
- build.gradle.kts: move ui-tooling-preview to debugImplementation
  (@Preview annotations are dev-only; release APK stays smaller)

All foundation verification (lint + test + assembleDebug) still green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-08 16:04:23 +02:00

1.6 KiB

Calendula — Requirements

See full design spec: docs/superpowers/specs/2026-06-08-calendar-app-design.md

V1 Scope (Variant "B")

Validated (shipped)

  • Foundation & CI infrastructure — v0.1.0 (2026-06-08)

Active (V1)

  • Foundation & CI infrastructure
  • Data Layer over CalendarContract
  • Permission flow (READ_CALENDAR)
  • Month view (S1)
  • Week view (S2)
  • Day view (S3)
  • Event Detail Sheet (S4)
  • Multi-Calendar Filter (M3)
  • Today button + Jump-to-Date (M2)
  • View-Switcher (M1)
  • Settings screen (M4)
  • Empty / no-permission / no-calendars states
  • German + English localization
  • Loading/Failure/Success states per screen (architectural pattern)

Out of Scope (V2+)

  • Event create / edit / delete (V2)
  • Home-screen widget
  • Full-text search
  • Quick-add
  • Custom notifications/reminders (system already handles these)
  • Tablet/foldable-specific layouts
  • iOS support (Android-only by design)

Constraints

  • Tech stack: Kotlin + Jetpack Compose + Material 3 Expressive, Hilt, DataStore
  • Tech stack pin: Hilt 2.59.2 + KSP 2.3.9; Kotlin 2.3.21 (KSP for Kotlin 2.4.0 not released yet). Material 3 pinned to 1.5.0-alpha21 (Expressive APIs only exist in alpha). Re-evaluate when KSP/Material3 stable land.
  • Platform: Android 10+ (API 29 minimum), Android 16 (API 36) target
  • Offline-first: all data lives in CalendarContract; no app-side network
  • Privacy: zero telemetry, no analytics
  • i18n: German + English from day one
  • Tests + CI from day one
  • License: MIT