Clean Architecture patterns for Flutter with Riverpod state management. Use when building or reviewing Flutter apps with layered architecture (Domain, Data, Application, Presentation).
View on GitHubplugins/flutter-riverpod-architecture/skills/flutter-riverpod-architecture/SKILL.md
February 1, 2026
Select agents to install to:
npx add-skill https://github.com/xmgrex/ccx-arsenal/blob/main/plugins/flutter-riverpod-architecture/skills/flutter-riverpod-architecture/SKILL.md -a claude-code --skill flutter-riverpod-architectureInstallation paths:
.claude/skills/flutter-riverpod-architecture/# Flutter + Riverpod Clean Architecture ## Overview This skill provides architectural patterns and rules for building Flutter applications using Clean Architecture with Riverpod for state management. Follow these patterns to maintain clear layer boundaries, testability, and scalability. ## Architecture Layers ``` ┌─────────────────────────────────────────┐ │ Presentation Layer │ Flutter UI, Widgets, Routing ├─────────────────────────────────────────┤ │ Application Layer │ Riverpod Providers, State Management ├─────────────────────────────────────────┤ │ Data Layer │ Repositories, External APIs ├─────────────────────────────────────────┤ │ Domain Layer │ Entities, Value Objects, Business Rules └─────────────────────────────────────────┘ ``` ## Layer Dependency Rules | Layer | Can Depend On | Cannot Depend On | |-------|---------------|------------------| | **Domain** | Nothing (pure Dart) | Flutter, Riverpod, Firebase, any SDK | | **Data** | Domain | Flutter, Riverpod, Presentation | | **Application** | Domain, Data | Flutter UI classes | | **Presentation** | Application, Domain | Data (direct access) | ## Quick Reference | Layer | Primary Purpose | Key Technology | |-------|-----------------|----------------| | Domain | Business entities, Value Objects | Freezed, pure Dart | | Data | Repository implementations, API calls | Firebase, HTTP clients | | Application | State management, Provider definitions | Riverpod, AsyncNotifier | | Presentation | UI components, routing | ConsumerWidget, go_router | ## Layer References - `references/domain-layer.md` - Freezed entities, Value Objects, immutable data - `references/data-layer.md` - Repository pattern, dependency injection - `references/application-layer.md` - Riverpod providers, AsyncNotifier pattern - `references/presentation-layer.md` - ConsumerWidget, type-safe routing - `references/ui-patterns.md` - Widget