Add Remotion promo video project with 7-scene App Store flow

- Create feels-promo Remotion project for promotional videos
- Implement FeelsPromoV1 with scenes matching App Store screenshots:
  - Hero scene with mood tracking
  - Widget + Apple Watch scene
  - Journal notes with photos
  - AI-powered insights with badge
  - Privacy & security features
  - Theme customization
  - Notification styles
- Add screens folder with source assets and flow reference
- Include phone frames, widget, and watch frame assets

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-01-25 12:47:06 -06:00
parent de994d4d52
commit bf2555f360
39 changed files with 5641 additions and 0 deletions

70
CLAUDE.md Normal file
View File

@@ -0,0 +1,70 @@
# Feels - Claude Code Context
## Project Summary
Feels is an iOS mood tracking app. Users rate their day on a 5-point scale (Horrible → Great) and view patterns via Day, Month, and Year views.
## Architecture
- **Pattern**: MVVM with SwiftUI
- **Data**: Core Data with CloudKit sync
- **Monetization**: StoreKit 2 subscriptions (30-day trial, monthly/yearly plans)
## Key Directories
```
Shared/ # Core app code (Models, Views, Persistence)
FeelsWidget2/ # Widget extension
Feels Watch App/ # watchOS companion
docs/ # ASO and competitive analysis
```
## Data Layer
Core Data operations are split across files in `Shared/Persistence/`:
- `Persistence.swift` - Core Data stack setup
- `PersistenceGET.swift` - Fetch operations
- `PersistenceADD.swift` - Create entries
- `PersistenceUPDATE.swift` - Update operations
- `PersistenceDELETE.swift` - Delete operations
## App Groups
- **Production**: `group.com.88oakapps.ifeel`
- **Debug**: `group.com.88oakapps.ifeelDebug`
## Build & Run
```bash
# Build the app
xcodebuild -project Feels.xcodeproj -scheme "Feels (iOS)" -destination 'platform=iOS Simulator,name=iPhone 16 Pro' build
# Run tests
xcodebuild -project Feels.xcodeproj -scheme "Feels (iOS)" -destination 'platform=iOS Simulator,name=iPhone 16 Pro' test
```
## Mood Values
```swift
enum Mood: Int {
case horrible = 0
case bad = 1
case average = 2
case good = 3
case great = 4
case missing = 5 // Unfilled day
case placeholder = 6 // System-generated
}
```
## Localization
- English: `en.lproj/Localizable.strings`
- Spanish: `es.lproj/Localizable.strings`
## Important Patterns
1. **Widgets** update via `WidgetCenter.shared.reloadAllTimelines()`
2. **Missing dates** are auto-filled by background task (`BGTask.swift`)
3. **Entry types** distinguish user entries from system-generated ones
4. **Customization** uses protocols: `Themeable`, `MoodTintable`, `MoodImagable`, `PersonalityPackable`