flutter-conventions-index

Routes Flutter and Dart tasks to specialized convention skills with cross-cutting house rules.

Updated Aug 22, 2026
One-click install
npx skills add https://github.com/zakariaf/NearlyStop --skill flutter-conventions-index-zakariaf
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: flutter-conventions-index
Source: https://github.com/zakariaf/NearlyStop/tree/main/.claude/skills/flutter-conventions-index
Command: npx skills add https://github.com/zakariaf/NearlyStop --skill flutter-conventions-index-zakariaf

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Flutter teams struggle to keep architecture, state management, error handling, and testing consistent across a codebase, and developers often do not know which convention applies to a given task. This Skill acts as the front door for a Flutter/Dart app: it states the non-negotiable house rules every task obeys, then routes each concern to the correct deep-dive skill. ## Core Features & Use Cases - Cross-cutting house rules: Fourteen non-negotiable rules covering feature-first layered MVVM, dumb widgets, Riverpod 3.x as state plus DI, a single write path through repositories, typed Result/Failure errors, injected side effects, and strict lint gates. - Routing table: Maps every task type (architecture, state, widgets, persistence, testing, i18n, release) to the specialized skill that governs it. - Feature build order: A recommended nine-step sequence from pure model to release, with a canonical Repository/Notifier/View code shape and a definition-of-done checklist. - Use Case: Before writing a new feature, a developer consults this Skill to confirm which layer the code belongs in, which skill to open for depth, and which checklist items must pass before the PR. ## Quick Start Ask the AI to review your planned Flutter feature against the house rules and tell you which specialized convention skills to consult before writing code.

Frequently Asked Questions about flutter-conventions-index

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure a Flutter app with feature-first architecture?

Group code by feature folder, then by layer: View, ViewModel, Repository, Service. Lower layers never import upward, keeping the dependency graph a strict DAG. One Notifier per screen owns immutable state, and all mutations go through a repository's single write path.

What state management should I use with Riverpod 3.x?

Use modern Notifier, AsyncNotifier, Future, and Stream providers only, with providers doubling as the DI container. Avoid get_it, package:provider, and legacy StateProvider, StateNotifierProvider, or ChangeNotifierProvider to keep one composition model.

How do I handle errors in Flutter without exceptions leaking to the UI?

Return a sealed Result<T, F extends Failure> from recoverable I/O and switch on it exhaustively. Pure functions stay total and never throw, and failures carry a stable code rather than a localized string.

Does this convention set support monorepo Flutter projects?

It assumes a single-package Flutter app by default. Monorepo and pub-workspace guidance lives inside the project-structure-and-packages and codegen-and-toolchain skills and is never required for a small app.

Why should DateTime.now() be avoided in Flutter domain code?

DateTime.now() is a non-deterministic global side effect that makes code untestable. Read the current time from an injected Clock interface instead, which can be faked in tests and overridden once at the composition root.

What are the code complexity limits for Flutter widgets?

Methods stay at or under 30 lines, build() at or under 80 lines, files at or under 300 lines, with at most 3 positional parameters and 3 levels of logic nesting. Widget build trees may nest to 5 levels as the stated exception, and const StatelessWidget classes are extracted instead of _buildX() helpers.