mycode/myApp/TallyFlow/CLAUDE.md
songyc macbook b209199c2d feat: Setup app shell, SwiftData models, and real-time tracking engine
- Initialize iOS project with 6-tab navigation structure
- Configure custom Light/Dark themes and AppColors
- Define SwiftData models for Tasks, Tags, Goals, and TrackingRecords
- Setup relationships (Super/Sub tags) and cascade delete rules
- Implement Observable TrackingEngine for real-time timer updates
2026-06-26 03:32:29 +09:00

64 lines
2.4 KiB
Markdown

# TallyFlow
## Product summary
TallyFlow is an iOS productivity tracker for measuring tasks by either time or count.
It supports hierarchical tags (super tag / sub tag), flexible goals, historical statistics, widgets, Live Activities, and a paired watchOS experience.
## Source root
- iOS source root folder: `IOS/`
- Do not assume the default inner app folder name is `TallyFlow`; use `IOS/` as the app source root.
## Non-negotiable constraints
- Use SwiftUI.
- Use SwiftData as the local persistence layer.
- Keep the project buildable after every milestone.
- Do not scan or refactor the entire project.
- Read only the files explicitly listed in each prompt.
- Edit only the files explicitly listed in each prompt.
- Do not mention competitor app names in code comments, docs, or commit messages.
- Korean is the default app language; English must be supported.
- Theme must support Light and Dark modes with custom green/yellow palettes, not generic system default vibes.
- All date aggregation must respect configurable week start day and configurable custom day start time.
- Time tracking must support multiple concurrent running timer tasks.
- A task can have multiple tags.
- Selecting a sub tag implies its parent super tag is also associated logically.
## Architecture rules
- Separate app shell, domain models, services, and feature views.
- Create a single source of truth for:
1. task definitions,
2. tag hierarchy,
3. goals,
4. tracking sessions / count logs,
5. calendar boundary calculations.
- Avoid business logic inside SwiftUI view bodies.
- Put theme colors/tokens in dedicated files.
- Keep milestone 1 free of widget/watch/live activity target work; only prepare the architecture so those can be added later.
## UX rules
- Tab order must be:
1. Main
2. Tasks
3. Tags
4. Goals
5. Stats
6. Settings
- Add a splash/loading screen that shows the app name.
- Main tab should be scaffolded for:
- today / week / month summary cards,
- task action buttons,
- future layout-edit mode.
- Settings must be scaffolded for:
- theme mode,
- language,
- week start day,
- custom day start time,
- premium section entry.
## Coding style
- Prefer small SwiftUI views.
- Prefer explicit model names over vague names.
- Add TODO markers only where the next milestone will extend logic.
- Do not add placeholder lorem ipsum text.
- Do not introduce third-party dependencies in milestone 1.