| name | build-flutter-features |
| description | Build and refactor Flutter features with layered architecture, robust state management, Dart analysis tooling, and optional Figma-driven UI implementation. |
Build Flutter Features
Use this skill for non-test Flutter development tasks.
Workflow
- Understand the target behavior and constraints.
- Map changes by layer: presentation -> domain -> data.
- Keep dependency flow one-directional and injectable.
- Implement feature changes in small increments.
- Use
dart analyze, dart fix --dry-run, or equivalent project-aware diagnostics to validate and apply safe fixes.
- If Figma source exists, follow
figma-to-flutter.md.
- Add/update tests using
../write-flutter-tests/SKILL.md.
Architecture defaults
- Keep widgets focused on rendering and interaction.
- Choose state management based on existing project conventions first.
- If the project already uses Riverpod/Bloc/Cubit/GetX, stay consistent with that choice.
- If no convention exists, choose the simplest viable option and document why.
- Keep business logic in dedicated controllers/cubit/bloc/use-cases/services (not widgets).
- Avoid hidden global state/singletons when DI can be used.
- Keep models immutable where practical.
Scope guardrails
- Restrict changes to the requested feature/module unless explicitly expanded.
- Do not mix unrelated refactors with feature delivery.
- Do not claim implementation is complete unless concrete file changes or command outputs are provided.
Required output
- Goal + scope summary.
- Files changed by layer (presentation/domain/data).
- Validation commands run and results.
- Residual risks or follow-up TODOs.
- Missing inputs/assumptions (if context is incomplete).
Required references
../../rules/flutter-development-best-practices.mdc
../../rules/dart-effective-dart.mdc
../../rules/flutter-test-best-practices.mdc