Feature-Based Clean Architecture
SkillAI & modelsOrganize Flutter apps with modular feature-based clean architecture. Use when creating features under lib/features/ with domain, data, and presentation layers. Do not use for test-only, BlocBuilder, navigation, or spinner requests.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Feature-Based Clean Architecture skill
What this skill tells your AI
The instructions your AI receives, as published by hoangnguyen0403/agent-skills-standard in skills/flutter/flutter-feature-based-clean-architecture/SKILL.md and read by ahel’s review.
Priority: P0 (CRITICAL)
Structure
Every feature lives in lib/features/ with 3-layer separation (domain/data/presentation):
domain/— Entities, failures, and Repository interfaces.data/— DTOs, DataSource, and Repository implementations.presentation/— BLoC/Cubit, pages, and widgets.
See references/folder-structure.md for complete directory blueprint.
Implementation Workflow
- Create feature directory — Add new folder under
lib/features/(e.g.,lib/features/promotions/). - Define domain layer — Add entities, failures, and repository interfaces with zero external dependencies.
- Implement data layer — Add DTOs, data sources, and repository implementations that depend only on Domain.
- Build presentation layer — Add BLoC/Cubit, pages, and widgets that depend only on Domain.
- Enforce dependency rule —
Presentation -> Domain <- Data. Domain must zero external dependencies. - Share cross-cutting logic — Move reusable utilities to
lib/shared/orlib/core/.
Feature Directory Example
See implementation examples for full directory tree and cross-feature import patterns.
Reference & Examples
For feature folder blueprints and cross-layer dependency templates: See references/REFERENCE.md.
Anti-Patterns
- No Cross-Feature Data Imports: Only import Domain types across features
- No UI/Data in Domain Layer: Never put UI or Data classes inside
domain/ - No Nested Features: Keep
lib/features/flat with no sub-feature directories - No Direct Repository Calls: Use specific BLoCs or use-cases instead of calling other features' repositories directly from UI
Related Topics
layer-based-clean-architecture | retrofit-networking | go-router-navigation | bloc-state-management | dependency-injection
Canonical response anchors
When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:
- entities) but never import from loyalty's data/ or presentation/ layers,entities
Signals
- GitHub stars
- 565
- Forks
- 164
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
flutter-feature-based-clean-architecture- Source
- github.com/hoangnguyen0403/agent-skills-standard