From 94e311ac47fd9e11f4c7f7858e017068cca559a1 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Sun, 1 Feb 2026 17:08:42 -0600 Subject: [PATCH] Signed-off-by: Matt Bruce --- PRD.md | 599 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ TODO.md | 88 --------- 2 files changed, 599 insertions(+), 88 deletions(-) create mode 100644 PRD.md delete mode 100644 TODO.md diff --git a/PRD.md b/PRD.md new file mode 100644 index 0000000..d1781d7 --- /dev/null +++ b/PRD.md @@ -0,0 +1,599 @@ +# Andromida (Rituals) - Product Requirements Document + +> **Version**: 1.0 +> **Last Updated**: February 2026 +> **Status**: Active Development + +--- + +## 1. Overview + +### 1.1 Product Vision + +Andromida (branded as "Rituals") is a premium, offline-first habit tracker built around customizable "ritual arcs" rather than endless streaks. The app focuses on steady, daily check-ins with a calm visual language, zero paid backend dependencies, and optional iCloud sync. + +### 1.2 Target Audience + +- Health-conscious individuals seeking structured daily routines +- Productivity enthusiasts who prefer time-bound goals over infinite streaks +- Users who value privacy and offline-first functionality +- Apple ecosystem users who want seamless iCloud integration + +### 1.3 Key Differentiators + +- **Arc-Based Approach**: Habits are grouped into ritual arcs (7-365 days) with defined start and end dates, allowing for natural cycles of focus and renewal +- **No Paid APIs**: Entirely self-contained with no external service dependencies +- **Offline-First**: Full functionality without network connectivity +- **Privacy-Focused**: All data stored locally with optional iCloud sync + +--- + +## 2. User Goals + +| Goal | Description | +|------|-------------| +| **Build Habits** | Establish and maintain daily rituals through consistent check-ins | +| **Track Progress** | Visualize completion rates, streaks, and historical performance | +| **Stay Motivated** | Receive milestone achievements and contextual insights | +| **Customize Experience** | Create personalized rituals with flexible scheduling | +| **Maintain Privacy** | Keep personal data local with optional cloud backup | + +--- + +## 3. Functional Requirements + +### 3.1 Today Tab + +The primary daily interaction surface for habit check-ins. + +| Requirement | Description | +|-------------|-------------| +| FR-TODAY-01 | Display focus ritual cards with circular progress rings showing completion percentage | +| FR-TODAY-02 | Enable tap-to-complete habit check-ins with haptic and sound feedback | +| FR-TODAY-03 | Filter rituals by time of day (morning, midday, afternoon, evening, night, anytime) | +| FR-TODAY-04 | Show smart empty states distinguishing "no rituals" from "no rituals for this time" | +| FR-TODAY-05 | Display arc renewal prompts when ritual arcs complete | +| FR-TODAY-06 | Support adaptive 2-column grid layout on iPad and landscape orientations | +| FR-TODAY-07 | Fresh install starts clean with no pre-seeded rituals | + +### 3.2 Rituals Tab + +Ritual creation and management interface. + +| Requirement | Description | +|-------------|-------------| +| FR-RITUALS-01 | Display all active rituals with card-based UI | +| FR-RITUALS-02 | Create rituals from scratch or browse preset library | +| FR-RITUALS-03 | Provide 14 categorized presets across 4 categories (Health, Productivity, Mindfulness, Self-Care) | +| FR-RITUALS-04 | Support full ritual lifecycle: create, edit, delete | +| FR-RITUALS-05 | Enable drag-to-reorder habits within rituals | + +#### 3.2.1 Ritual Detail View + +| Requirement | Description | +|-------------|-------------| +| FR-DETAIL-01 | Show progress card with day count and completion summary | +| FR-DETAIL-02 | Display time remaining countdown (e.g., "12 days remaining") | +| FR-DETAIL-03 | Track ritual-specific streaks | +| FR-DETAIL-04 | Show milestone achievements (First Day, One Week, Halfway, Three Weeks, Complete) | +| FR-DETAIL-05 | Display habit performance breakdown with per-habit completion rates | +| FR-DETAIL-06 | Show status badges for time of day and category | +| FR-DETAIL-07 | Provide action menu for edit, end arc/start new arc, and delete | + +#### 3.2.2 Ritual Editor + +| Requirement | Description | +|-------------|-------------| +| FR-EDITOR-01 | Support custom ritual creation with title, theme, and notes | +| FR-EDITOR-02 | Provide icon picker with 50+ categorized SF Symbols and search | +| FR-EDITOR-03 | Provide habit icon picker with 100+ icons organized by category | +| FR-EDITOR-04 | Allow custom category input beyond preset categories | +| FR-EDITOR-05 | Support flexible duration: slider (7-365 days), quick presets, and custom input | +| FR-EDITOR-06 | Enable time-of-day scheduling (morning, midday, afternoon, evening, night, anytime) | +| FR-EDITOR-07 | Support drag-to-reorder habits | + +#### 3.2.3 Arc Renewal System + +| Requirement | Description | +|-------------|-------------| +| FR-RENEWAL-01 | Allow rituals to be renewed when arcs complete | +| FR-RENEWAL-02 | Preserve historical data (old arcs remain frozen and accessible) | +| FR-RENEWAL-03 | Copy habits from previous arc to new arc during renewal | +| FR-RENEWAL-04 | Display renewal prompts automatically when arcs complete | + +### 3.3 History Tab + +Historical view of past completions and performance. + +| Requirement | Description | +|-------------|-------------| +| FR-HISTORY-01 | Display scrollable month calendar grid (expandable to 12 months) | +| FR-HISTORY-02 | Show daily progress rings with color coding (green=100%, accent=50%+, gray=<50%) | +| FR-HISTORY-03 | Enable filtering by ritual using horizontal pill picker | +| FR-HISTORY-04 | Support tap on any day to open detail sheet | +| FR-HISTORY-05 | Detail sheet shows: progress ring with percentage, comparison to weekly average, streak context, motivational message, grouped habit list by ritual | +| FR-HISTORY-06 | Support adaptive 2-column grid layout on iPad and landscape | + +### 3.4 Insights Tab + +Analytics and trend visualization. + +| Requirement | Description | +|-------------|-------------| +| FR-INSIGHTS-01 | Display 8 tappable insight cards with full-screen detail sheets | +| FR-INSIGHTS-02 | **Active Rituals**: Count with per-ritual breakdown | +| FR-INSIGHTS-03 | **Streak**: Current and longest streak tracking | +| FR-INSIGHTS-04 | **Habits Today**: Completed count with per-ritual breakdown | +| FR-INSIGHTS-05 | **Completion**: Today's percentage with 7-day trend chart | +| FR-INSIGHTS-06 | **Days Active**: Total active days with detailed breakdown | +| FR-INSIGHTS-07 | **7-Day Avg**: Weekly average completion percentage with trend chart | +| FR-INSIGHTS-08 | **Total Check-ins**: All-time habit completions across all rituals | +| FR-INSIGHTS-09 | **Best Ritual**: Highest-performing ritual by completion rate | +| FR-INSIGHTS-10 | Show trend indicators (up/down/stable) with week-over-week comparison | +| FR-INSIGHTS-11 | Display contextual tips based on performance | +| FR-INSIGHTS-12 | Enable drag-and-drop card reordering in edit mode | +| FR-INSIGHTS-13 | Show sparkline charts for trend visualization | + +### 3.5 Settings Tab + +Application configuration and preferences. + +| Requirement | Description | +|-------------|-------------| +| FR-SETTINGS-01 | Configure smart reminders based on ritual time slots (morning 7:00 AM, midday 12:00 PM, evening 6:00 PM) | +| FR-SETTINGS-02 | Toggle haptic feedback for habit check-ins | +| FR-SETTINGS-03 | Toggle sound feedback for habit check-ins | +| FR-SETTINGS-04 | Select theme (light, dark, system) | +| FR-SETTINGS-05 | Enable/disable iCloud settings sync | +| FR-SETTINGS-06 | Manage categories (create, edit, delete user categories) | +| FR-SETTINGS-07 | Provide debug tools in DEBUG builds: reset onboarding, app icon generation, branding preview, preload demo data, clear all completions, simulate arc completion | + +### 3.6 Widget + +Home screen widget for at-a-glance progress. + +| Requirement | Description | +|-------------|-------------| +| FR-WIDGET-01 | Support small, medium, and large widget sizes | +| FR-WIDGET-02 | Display today's completion rate | +| FR-WIDGET-03 | Show current streak | +| FR-WIDGET-04 | List next habits (up to 4) | +| FR-WIDGET-05 | Indicate current time of day | +| FR-WIDGET-06 | Show next ritual information | +| FR-WIDGET-07 | Support App Intents for widget configuration | +| FR-WIDGET-08 | Update widget content every 15 minutes | +| FR-WIDGET-09 | Use App Group shared container for SwiftData access | + +### 3.7 Onboarding + +First-launch setup wizard. + +| Requirement | Description | +|-------------|-------------| +| FR-ONBOARD-01 | **Welcome**: Introduction to the app | +| FR-ONBOARD-02 | **Goal Selection**: Choose from predefined goals | +| FR-ONBOARD-03 | **Time Selection**: Select preferred ritual times (morning/evening/both) | +| FR-ONBOARD-04 | **Ritual Preview**: Preview and optionally create preset rituals | +| FR-ONBOARD-05 | **First Check-In**: Complete first habit check-in | +| FR-ONBOARD-06 | **Notifications**: Set up reminder permissions | +| FR-ONBOARD-07 | **What's Next**: Orientation to Today, Rituals, and Insights tabs | +| FR-ONBOARD-08 | Allow onboarding reset from Settings (DEBUG builds) | + +### 3.8 Deep Linking + +URL scheme support for navigation. + +| Requirement | Description | +|-------------|-------------| +| FR-DEEPLINK-01 | Support `andromida://today` to navigate to Today tab | +| FR-DEEPLINK-02 | Support `andromida://rituals` to navigate to Rituals tab | +| FR-DEEPLINK-03 | Support `andromida://insights` to navigate to Insights tab | +| FR-DEEPLINK-04 | Support `andromida://history` to navigate to History tab | + +--- + +## 4. Non-Functional Requirements + +### 4.1 Performance + +| Requirement | Description | +|-------------|-------------| +| NFR-PERF-01 | Analytics calculations must use caching to avoid recalculation on each access | +| NFR-PERF-02 | History view must cache progress data for smooth scrolling | +| NFR-PERF-03 | App launch must complete without white flash using native LaunchScreen.storyboard | +| NFR-PERF-04 | Widget updates must complete within WidgetKit timeline constraints | + +### 4.2 Accessibility + +| Requirement | Description | +|-------------|-------------| +| NFR-A11Y-01 | Support Dynamic Type for all text elements | +| NFR-A11Y-02 | Provide VoiceOver accessibility labels and hints | +| NFR-A11Y-03 | Ensure sufficient color contrast ratios | +| NFR-A11Y-04 | Support reduced motion preferences | + +### 4.3 Localization + +| Requirement | Description | +|-------------|-------------| +| NFR-L10N-01 | All user-facing strings must be localized using String Catalogs | +| NFR-L10N-02 | Support English (en), Spanish (es-MX), and French (fr-CA) | +| NFR-L10N-03 | Use locale-appropriate date and number formatting | + +### 4.4 Privacy & Security + +| Requirement | Description | +|-------------|-------------| +| NFR-PRIV-01 | All user data must be stored locally on device | +| NFR-PRIV-02 | iCloud sync must be opt-in and clearly disclosed | +| NFR-PRIV-03 | No user data may be transmitted to external services | +| NFR-PRIV-04 | App must function fully offline | + +--- + +## 5. Technical Requirements + +### 5.1 Platform + +| Requirement | Description | +|-------------|-------------| +| TR-PLAT-01 | iOS 18.6+ minimum deployment target | +| TR-PLAT-02 | Swift 5 with modern concurrency (async/await, actors) | +| TR-PLAT-03 | SwiftUI for all user interface | +| TR-PLAT-04 | SwiftData for persistence with `@Observable` pattern | +| TR-PLAT-05 | WidgetKit for Home screen widgets | + +### 5.2 Architecture + +| Requirement | Description | +|-------------|-------------| +| TR-ARCH-01 | Follow Clean Architecture with separation: Views, State, Services, Models | +| TR-ARCH-02 | Use protocol-oriented design for testability | +| TR-ARCH-03 | Implement `@Observable` stores (not ObservableObject) | +| TR-ARCH-04 | Use dependency injection via protocols | + +### 5.3 Data Persistence + +| Requirement | Description | +|-------------|-------------| +| TR-DATA-01 | Use SwiftData with optional CloudKit sync for ritual data | +| TR-DATA-02 | Use NSUbiquitousKeyValueStore (via Bedrock CloudSyncManager) for settings sync | +| TR-DATA-03 | Use UserDefaults for user-created categories and preferences | +| TR-DATA-04 | Use App Group shared container for widget data access | + +### 5.4 Third-Party Dependencies + +| Requirement | Description | +|-------------|-------------| +| TR-DEPS-01 | Bedrock design system package (internal) for theming, branding, and common UI components | +| TR-DEPS-02 | No external third-party frameworks without explicit approval | + +--- + +## 6. Data Model + +### 6.1 Core Entities + +#### Ritual + +Primary entity representing a habit collection. + +| Property | Type | Description | +|----------|------|-------------| +| id | UUID | Unique identifier | +| title | String | Ritual name | +| theme | String | Visual theme identifier | +| notes | String? | Optional user notes | +| defaultDurationDays | Int | Default arc duration (7-365) | +| timeOfDay | TimeOfDay | Scheduling preference | +| iconName | String | SF Symbol name | +| category | String | Category identifier | +| sortIndex | Int | Display order | +| arcs | [RitualArc] | Related arcs (one-to-many, cascade delete) | + +**Computed Properties**: `currentArc`, `hasActiveArc`, `sortedArcs`, `latestArc`, `completedArcCount`, `habits` + +#### RitualArc + +Time-bound period for a ritual. + +| Property | Type | Description | +|----------|------|-------------| +| id | UUID | Unique identifier | +| startDate | Date | Arc start date | +| endDate | Date | Arc end date | +| arcNumber | Int | Sequential arc number | +| isActive | Bool | Whether arc is currently active | +| habits | [ArcHabit] | Related habits (one-to-many, cascade delete) | +| ritual | Ritual | Parent ritual (inverse relationship) | + +**Computed Properties**: `durationDays`, **Methods**: `contains(date:)`, `dayIndex(for:)`, `createRenewalArc()` + +#### ArcHabit + +Individual habit within an arc. + +| Property | Type | Description | +|----------|------|-------------| +| id | UUID | Unique identifier | +| title | String | Habit name | +| symbolName | String | SF Symbol name | +| goal | Int | Target completions | +| completedDayIDs | [String] | Array of date identifiers | +| sortIndex | Int | Display order | +| arc | RitualArc | Parent arc (inverse relationship) | + +**Methods**: `copyForNewArc()` + +### 6.2 Supporting Models + +#### Category + +User-defined or preset category. + +| Property | Type | Description | +|----------|------|-------------| +| id | String | Unique identifier | +| name | String | Display name | +| colorName | String | Color identifier (13 available colors) | +| isPreset | Bool | Whether system-defined | + +**Preset Categories**: Health, Productivity, Mindfulness, Self-Care + +#### TimeOfDay + +Scheduling enumeration. + +| Case | Time Range | +|------|------------| +| morning | Before 11:00 AM | +| midday | 11:00 AM - 2:00 PM | +| afternoon | 2:00 PM - 5:00 PM | +| evening | 5:00 PM - 9:00 PM | +| night | After 9:00 PM | +| anytime | Flexible timing | + +#### InsightCard + +Analytics display card. + +| Type | Description | +|------|-------------| +| Active | Active ritual count with breakdown | +| Streak | Current and longest streak | +| HabitsToday | Today's completed habits | +| Completion | Today's percentage with trend | +| DaysActive | Total active days | +| SevenDayAvg | Weekly average percentage | +| TotalCheckins | All-time completions | +| BestRitual | Top-performing ritual | + +#### Milestone + +Achievement markers. + +| Milestone | Description | +|-----------|-------------| +| First Day | First day completed (day 1) | +| One Week | First week completed (day 7) | +| Halfway | 50% of arc completed (dynamic based on arc duration) | +| Three Weeks | 21 days completed | +| Complete | Full arc completed | + +### 6.3 Entity Relationships + +``` +Ritual (1) ──────< RitualArc (many) + │ + └────< ArcHabit (many) +``` + +- Ritual → RitualArc: One-to-many with cascade delete +- RitualArc → ArcHabit: One-to-many with cascade delete +- RitualArc → Ritual: Inverse relationship + +--- + +## 7. Design System + +### 7.1 Theme Integration + +The app uses the Bedrock design system with a custom `RitualsTheme` providing: + +- **Surface Colors**: primary, secondary, tertiary, card backgrounds +- **Text Colors**: primary, secondary, tertiary, disabled, inverse +- **Accent Colors**: primary, light, dark, secondary +- **Status Colors**: success, warning, error, info +- **Border Colors**: subtle, standard, emphasized, selected +- **Interactive Colors**: selected, hover, pressed, focus + +### 7.2 Color Assets + +| Asset | Purpose | +|-------|---------| +| Background, BackgroundAlt, BackgroundTertiary | Surface backgrounds | +| Card | Card backgrounds | +| Divider | Separator lines | +| Accent, AccentLight, AccentDark, AccentSecondary, AccentSoft | Brand and interactive colors | +| TextPrimary, TextSecondary, TextTertiary, TextDisabled | Typography | +| Success, Warning, Error, Info | Status indicators | + +### 7.3 Branding + +| Element | Specification | +|---------|---------------| +| App Name | Andromida (displayed as "Rituals") | +| Bundle ID | com.mbrucedogs.Andromida | +| App Group | group.com.mbrucedogs.Andromida | +| CloudKit Container | iCloud.com.mbrucedogs.Andromida | + +### 7.4 Adaptive Layout + +| Requirement | Description | +|-------------|-------------| +| Max content width constraints for iPad and landscape | +| 2-column grid layouts where appropriate | +| Responsive spacing and typography | + +--- + +## 8. Preset Library + +### 8.1 Health (3 presets) + +- Morning Hydration +- Midday Movement +- Sleep Preparation + +### 8.2 Productivity (3 presets) + +- Deep Work Prep +- End-of-Day Review +- Focus Reset + +### 8.3 Mindfulness (4 presets) + +- Morning Meditation +- Gratitude Practice +- Breathwork +- Evening Reflection + +### 8.4 Self-Care (4 presets) + +- Morning Skincare +- Digital Detox +- Evening Wind-Down +- Weekly Reset + +--- + +## 9. TODO + +Remaining features and enhancements to be implemented. + +### 9.1 HealthKit Integration + +Sync habit completions to Apple Health for relevant habit types. + +| Item | Description | +|------|-------------| +| Water tracking | Sync hydration habits to HealthKit water intake | +| Mindfulness | Sync meditation/breathwork habits to HealthKit mindful minutes | +| Exercise | Sync movement habits to HealthKit activity | +| Implementation plan | See `.cursor/plans/healthkit_integration_plan_ce4f933c.plan.md` | + +### 9.2 Watch App + +Companion watchOS app for quick habit check-ins. + +| Item | Description | +|------|-------------| +| Quick check-ins | Allow habit completion directly from Apple Watch | +| Complications | Show today's progress on watch face | +| Sync | Real-time sync with iOS app via WatchConnectivity | + +### 9.3 Export/Import + +Backup and restore ritual data. + +| Item | Description | +|------|-------------| +| Export format | JSON or other portable format for ritual data | +| Import | Restore rituals from backup file | +| Share | Share ritual templates with others | + +### 9.4 Statistics + +Extended analytics with longer time horizons. + +| Item | Description | +|------|-------------| +| Monthly summary | Aggregate completion stats by month | +| Yearly summary | Year-in-review style analytics | +| Trend analysis | Long-term habit formation insights | + +--- + +## 10. Project Structure + +``` +Andromida/ +├── Andromida/ # App target +│ ├── App/ +│ │ ├── Localization/ # String catalogs +│ │ ├── Models/ # SwiftData + DTOs +│ │ │ ├── Ritual.swift +│ │ │ ├── RitualArc.swift +│ │ │ ├── ArcHabit.swift +│ │ │ ├── Category.swift +│ │ │ ├── InsightCard.swift +│ │ │ ├── Milestone.swift +│ │ │ ├── OnboardingGoal.swift +│ │ │ └── RitualPresets.swift +│ │ ├── Protocols/ # Interfaces for stores/services +│ │ │ ├── RitualStoreProviding.swift +│ │ │ ├── RitualSeedProviding.swift +│ │ │ └── InsightTipsProviding.swift +│ │ ├── Services/ # Stateless logic +│ │ │ ├── ReminderScheduler.swift +│ │ │ └── RitualSeedService.swift +│ │ ├── State/ # @Observable stores +│ │ │ ├── RitualStore.swift +│ │ │ ├── CategoryStore.swift +│ │ │ └── SettingsStore.swift +│ │ └── Views/ # SwiftUI features +│ │ ├── Today/ +│ │ ├── Rituals/ +│ │ ├── History/ +│ │ ├── Insights/ +│ │ ├── Settings/ +│ │ └── Onboarding/ +│ ├── Shared/ # Theme + branding + analytics +│ │ ├── Configuration/ # xcconfig files +│ │ ├── Services/ # RitualAnalytics +│ │ └── Theme/ # RitualsTheme +│ └── Resources/ # LaunchScreen.storyboard +├── AndromidaWidget/ # Widget extension +│ ├── Intents/ # App Intents +│ ├── Models/ # Widget-specific models +│ ├── Providers/ # Timeline provider +│ └── Views/ # Widget views +├── AndromidaTests/ # Unit tests +├── AndromidaUITests/ # UI tests +└── Bedrock/ # Shared design system package +``` + +--- + +## 11. Key Files Reference + +| File | Purpose | +|------|---------| +| `Andromida/AndromidaApp.swift` | App entry point | +| `Andromida/Shared/Theme/RitualsTheme.swift` | Bedrock theme configuration | +| `Andromida/Shared/BrandingConfig.swift` | Branding constants | +| `Andromida/Shared/Configuration/Base.xcconfig` | Build configuration source of truth | +| `Andromida/Resources/LaunchScreen.storyboard` | Native launch screen | +| `Andromida/App/State/RitualStore.swift` | Primary data store | +| `Andromida/App/State/SettingsStore.swift` | Settings with cloud sync | +| `Andromida/App/State/CategoryStore.swift` | Category management | +| `Andromida/App/Services/ReminderScheduler.swift` | Notification scheduling | +| `AndromidaWidget/AndromidaWidget.swift` | Widget entry point | + +--- + +## 12. Testing Requirements + +| Requirement | Description | +|-------------|-------------| +| Unit tests in `AndromidaTests/` covering store logic and analytics | +| UI tests in `AndromidaUITests/` for critical user flows | +| Test command: `xcodebuild test -scheme Andromida -destination 'platform=iOS Simulator,name=iPhone 17 Pro'` | + +--- + +## Revision History + +| Version | Date | Description | +|---------|------|-------------| +| 1.0 | February 2026 | Initial PRD based on implemented features | diff --git a/TODO.md b/TODO.md deleted file mode 100644 index d3b13d2..0000000 --- a/TODO.md +++ /dev/null @@ -1,88 +0,0 @@ -# Andromida – Focus & Fix List - -## 1) Onboarding walkthrough (Sherpa) -- [x] Restore Sherpa tags for focus ritual card and first habit row without triggering Swift compiler crashes. -- [x] Confirm walkthrough starts on first launch (ensure `hasCompletedOnboarding` is false in `@AppStorage`). -- [x] Add a debug-only "Reset Onboarding" action in Settings to clear `hasCompletedOnboarding`. -- [x] Verify tags visually align with the intended UI elements on iPhone 17 Pro Max. - -## 2) Swift compiler stability -- [x] Identify the minimal Sherpa usage pattern that avoids the "failed to produce diagnostic" crash. -- [x] Avoid `#Preview` macro ambiguity when Sherpa is imported (use `#if DEBUG` + `PreviewProvider` or remove previews for Sherpa-tagged views). -- [x] Avoid ambiguous accessibility modifier overloads when Sherpa is imported. - -## 3) Today tab UX polish -- [x] Re-add accessibility value/hint for habit rows once Sherpa-related ambiguity is resolved. -- [x] Confirm focus ritual card and habit rows still match the intended visual hierarchy after refactors. -- [x] Smart empty states: distinguish "no rituals" vs "no rituals for current time of day". -- [x] Fresh install starts clean (no pre-seeded rituals). - -## 4) Settings & product readiness -- [x] Add a paid-app placeholder (e.g., "Pro unlock" copy) without backend requirements. -- [x] Confirm default settings and theme in Settings match Bedrock branding. -- [x] Wire up haptics setting to habit check-in feedback. -- [x] Wire up sound setting to habit check-in feedback. -- [x] Wire up ritual length setting to quick ritual creation. -- [x] Add daily reminder notification scheduling with time picker. - -## 5) Data & defaults -- [x] Confirm seed ritual creation and quick ritual creation behave as expected. -- [x] Validate SwiftData sync (if enabled) doesn't require any external API. -- [x] Remove automatic seed rituals on fresh install. - -## 6) QA checklist -- [x] First-launch walkthrough appears on a clean install. -- [x] Onboarding can be manually reset from Settings. -- [x] No build warnings or Swift compiler crashes. -- [x] iPhone 17 Pro Max simulator layout verified on Today, Rituals, Insights, Settings. - -## 7) Completed enhancements -- [x] **History view** – View past/completed rituals with completion percentages. - - [x] Scrollable month calendar grid - - [x] Daily progress rings with color coding - - [x] Filter by ritual using horizontal pill picker - - [x] Tap day for detail sheet with habit list - - [x] New History tab in tab bar - - [x] Percentage display inside progress ring - - [x] Comparison to weekly average badge - - [x] Streak context badge - - [x] Motivational messages - -- [x] **Ritual management** – Create, edit, delete, and archive rituals. - - [x] Model enhancements (isEnabled, isArchived, timeOfDay, iconName, category) - - [x] RitualStore CRUD methods (create, update, delete, enable, archive) - - [x] Preset library with 13 categorized presets (Health, Productivity, Mindfulness, Self-Care) - - [x] RitualsView toolbar menu (Create New, Browse Presets) - - [x] RitualEditSheet for create/edit form with icon picker - - [x] PresetLibrarySheet with category tabs and detail views - - [x] RitualDetailView action menu (Edit, Enable/Disable, Archive, Delete) - - [x] Destructive action confirmations with history warning - - [x] Today view filtering by isEnabled, isArchived, and timeOfDay - - [x] Custom category input (beyond preset categories) - - [x] Habit icon picker with 100+ icons, search, and categories - - [x] Flexible duration: slider (7-365 days) + quick presets + custom input - - [x] Drag-to-reorder habits - -- [x] **Ritual detail enhancements** - - [x] Time remaining countdown - - [x] Ritual-specific streak tracking - - [x] Milestone achievements (Day 1, Week 1, Halfway, Complete) - - [x] Habit performance breakdown with completion rates - -- [x] **Insights enhancements** – Weekly/monthly trends, streak data, charts. - - [x] Tappable insight cards with detail sheets - - [x] Explanations for each metric - - [x] Per-ritual breakdowns - - [x] Streak tracking (current & longest) - - [x] 7-day trend chart with sparkline preview - - [x] Trend indicators (up/down/stable) with week-over-week comparison - - [x] Contextual tips based on performance - - [x] Days Active breakdown showing calculation details - -## 8) Future enhancements -- [ ] **HealthKit integration** – Sync habit completions (water, mindfulness, exercise) to Apple Health. See plan: `.cursor/plans/healthkit_integration_plan_ce4f933c.plan.md` -- [ ] **Widget** – Home screen widget showing today's progress. -- [ ] **Watch app** – Companion app for quick habit check-ins. -- [x] **Smart Reminders** – Time-slot based reminders (morning/midday/evening) scheduled automatically based on active rituals. -- [ ] **Export/Import** – Backup and restore ritual data. -- [ ] **Statistics** – Monthly/yearly summary views.