// Clean Architecture design guidance for the Pomodoro Time Tracker. Activates for design decisions, refactoring, schema changes, or architectural questions.
| name | architect |
| description | Clean Architecture design guidance for the Pomodoro Time Tracker. Activates for design decisions, refactoring, schema changes, or architectural questions. |
| allowed-tools | ["Read","Glob","Grep"] |
Activates when: Design, architecture, refactor, schema, or layer separation mentioned.
@/.claude/prompts/dotnet/clean-architecture/layer-separation.md
@/.claude/prompts/dotnet/clean-architecture/design-decisions.md
@~/.claude/prompts/dotnet/clean-architecture/refactoring-patterns.md
Domain → Entities, Enums, Repository Interfaces (NO dependencies)
Application → DTOs, Services, IDispatcherTimer (depends on Domain)
Infrastructure→ EF Core, Repositories, Migrations (depends on Domain+App)
ViewModels → MVVM ViewModels (depends on Application) - WinUI Class Library
WinUI3 → XAML, UI Services (depends on ViewModels)
| Entity | Purpose |
|---|---|
TimeEntry | Unified time tracking (all session types) |
SessionType | Lookup: Pomodoro, ShortBreak, LongBreak, Regular, StopWatch, Manual |
Client | Client management |
Project | Project with optional client FK |
PomodoroSettings | Singleton settings |
| Service | Responsibility |
|---|---|
ITimeEntryService | Timer + manual entry CRUD |
IStatisticsService | Report aggregation |
IClientService | Client CRUD |
IProjectService | Project CRUD with client filtering |
IPomodoroSettingsService | Settings management |
// Timer ViewModels - Singleton (maintain state)
services.AddSingleton<PomodoroViewModel>();
// CRUD ViewModels - Transient (fresh per navigation)
services.AddTransient<ClientDetailViewModel>();