Agent skill

Flutter Feature Based Architecture

by abdulmominsakib in abdulmominsakib/localmind

Design, implement, refactor, and review Flutter apps that use feature-based vertical slices, handwritten Dart models/providers, componentized StatelessWidget UI, Riverpod state management, and a…

MITAuto-check passedMobile

Install Flutter Feature Based Architecture

skills CLI
$ npx skills add abdulmominsakib/localmind --skill flutter-feature-based-architecture -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install abdulmominsakib/localmind flutter-feature-based-architecture --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/abdulmominsakib/localmind.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/flutter-feature-based-architecture .claude/skills/flutter-feature-based-architecture && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
flutter-feature-based-architecture
GitHub stars
268
Token cost
~2.9k tokens
SKILL.md length
1,111 words
Files
4 (incl. references)
Skills in repo
13
Repo updated
First seen
Licence
MIT

At a glance

Design, implement, refactor, and review Flutter apps that use feature-based vertical slices, handwritten Dart models/providers, componentized StatelessWidget UI, Riverpod state management, and a…

  • Works in 5 steps: Inspect pubspec.yaml, lib/, route setup,… → Preserve coherent local conventions,… → Prefer the smallest architecture change… → …
  • Adding Flutter features
  • SKILL.md covers First Pass, Target Shape, Feature Layer and Dependency Rules, plus 6 more sections
  • Calls flutter

What it does

Flutter Feature Based Architecture is an agent skill from abdulmominsakib/localmind. Design, implement, refactor, and review Flutter apps that use feature-based vertical slices, handwritten Dart models/providers, componentized StatelessWidget UI, Riverpod state management, and a shared core layer. Use when adding Flutter features, organizing lib/, moving shared code, wiring repositories/providers/routes, avoiding code generation, avoiding private UI build helper methods, or checking architecture consistency in a Riverpod Flutter project.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `agents/openai.yaml`, `references/handwritten-feature-example.md` and `references/pagination-state-notifier-example.md`).

It sits in Mobile, covering Cross-platform mobile apps. It works with Flutter and Dart. The repository describes itself as: A mobile application designed to provide a beautiful, fast, and privacy-respecting interface for on device LLM and local LLM servers and cloud providers. The licence is MIT.

When your agent uses it

  • Adding Flutter features
  • Organizing lib/
  • Moving shared code
  • Wiring repositories/providers/routes

Example prompts

  • “/flutter-feature-based-architecture”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Inspect pubspec.yaml, lib/, route setup, serialization conventions, and existing Riverpod style.
  2. Preserve coherent local conventions, especially folder names such as repository/ vs repositories/, components/ vs widgets/, and…
  3. Prefer the smallest architecture change that solves the request.
  4. State any dependency assumptions if Riverpod, routing, or serialization helpers are missing.
  5. Run the project-standard checks after changes, usually flutter analyze and relevant tests.

What it can do on your machine

Read from SKILL.md and the folder at commit 9ff3f94. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • flutter

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Flutter Feature Based Architecture loads about 2.9k tokens when it runs, and up to ~5.6k if it reads all its reference files. Until then it costs about 123 tokens; SKILL.md has 1,111 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~123
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from abdulmominsakib/localmind at commit 9ff3f94, republished under its MIT licence (© abdulmominsakib). 1,111 words, ~2,854 tokens.

Download SKILL.mdSave it as .claude/skills/flutter-feature-based-architecture/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
flutter-feature-based-architecture
description
Design, implement, refactor, and review Flutter apps that use feature-based vertical slices, handwritten Dart models/providers, componentized StatelessWidget UI, Riverpod state management, and a shared core layer. Use when adding Flutter features, organizing lib/, moving shared code, wiring repositories/providers/routes, avoiding code generation, avoiding private UI build helper methods, or checking architecture consistency in a Riverpod Flutter project.

Flutter Feature-Based Architecture

Use this skill to keep Flutter code organized by product capability instead of broad technical layers. Prefer vertical feature slices under lib/features/, keep stable cross-feature code in lib/core/, use Riverpod as the state boundary between UI and data access, write models/providers by hand, and split UI into small StatelessWidget components.

First Pass

Before editing a project:

  1. Inspect pubspec.yaml, lib/, route setup, serialization conventions, and existing Riverpod style.
  2. Preserve coherent local conventions, especially folder names such as repository/ vs repositories/, components/ vs widgets/, and handwritten provider organization.
  3. Prefer the smallest architecture change that solves the request.
  4. State any dependency assumptions if Riverpod, routing, or serialization helpers are missing.
  5. Run the project-standard checks after changes, usually flutter analyze and relevant tests.

Target Shape

Use this default shape for new projects or features unless the existing project already has a consistent equivalent:

text
lib/
├── app/                         # Optional app composition: shell, router, bootstrap
├── core/                        # Shared, cross-cutting concerns
│   ├── components/              # Reusable presentational widgets
│   ├── constants/               # App-wide constants and non-secret config
│   ├── extensions/              # Shared Dart extensions
│   ├── locales/                 # Localization setup and handwritten keys
│   ├── logger/                  # App-wide logging wrapper
│   ├── models/                  # Cross-feature models only
│   ├── providers/               # App-wide Riverpod providers
│   ├── repositories/            # Shared repositories and infrastructure services
│   ├── routes/                  # Route config if the app has no app/ layer
│   ├── theme/                   # ThemeData, text styles, component themes
│   └── utils/                   # General-purpose helpers
├── features/
│   └── orders/
│       ├── data/
│       │   ├── models/
│       │   └── repositories/
│       ├── providers/
│       └── views/
│           └── components/
└── main.dart
Core Layer

Move code to core/ only when it is genuinely app-wide or shared by multiple features. Keep feature-specific models, providers, repository methods, and UI components inside the owning feature until there is a stable reason to extract them.

Place composition code carefully:

  • Let main.dart, app/, or core/routes/ import feature entry pages to wire navigation.
  • Do not let one feature import another feature directly.
  • Move shared contracts, route constants, data types, or UI primitives to core/ when two features need them.

Feature Layer

Use this internal structure for each feature:

text
features/<feature_name>/
├── data/
│   ├── models/                 # Feature-specific data/domain models
│   └── repositories/           # API, database, cache, and persistence access
├── providers/                  # Riverpod state, controllers, and query providers
└── views/
    ├── <feature>_page.dart     # Page/screen widgets
    └── components/             # Feature-only StatelessWidget components

Add optional folders only when they carry real weight:

FolderUse for
data/datasources/Remote/local data source adapters when repositories would become too large
data/dto/Transport-specific objects that should not leak into UI state
services/Stateless feature services such as validators, schedulers, or mappers
utils/Helpers that are private to one feature

Dependency Rules

  • Import from core/ and the current feature only.
  • Do not import from sibling features. Extract shared code to core/ instead.
  • Keep views lean. Views handle layout, gestures, animation, navigation calls, and local-only UI concerns.
  • Keep business rules, async work, persistence, and mutation orchestration in Riverpod notifiers/controllers or repositories.
  • Keep repositories free of widget concerns. They should expose clear async APIs and translate data-source errors into app-level failures where the project has a failure type.
  • Use setState only for strictly local ephemeral UI state. Do not use it for business data or cross-widget state.
  • Do not split UI with private helper methods such as _buildHeader, _buildBody, _buildList, or _buildItem.
  • Extract UI sections into named StatelessWidget classes under views/components/ instead.

Handwritten Dart Only

Do not introduce code generation for models, providers, routes, or serialization. Avoid freezed, json_serializable, riverpod_annotation, build_runner, generated part files, .g.dart, and .freezed.dart files unless the user explicitly asks for generated code.

When a project already contains generated files:

  • Do not delete or rewrite existing generated architecture as part of an unrelated feature.
  • Do not expand the generated surface for new work.
  • Interact with existing generated APIs only when needed for compatibility.
  • Ask before changing generator inputs if the task cannot be completed cleanly with handwritten Dart.

For handwritten models and state classes:

  • Use immutable classes with final fields and const constructors where possible.
  • Add factory Model.fromJson(Map<String, dynamic> json), Map<String, dynamic> toJson(), and copyWith().
  • Add == and hashCode manually when value equality affects provider rebuilds, tests, collections, or state comparison.
  • Keep parsing and serialization defensive enough for the app's data source.

Riverpod Defaults

Prefer the project's existing Riverpod style when it is internally consistent. For new handwritten Riverpod code, prefer current Riverpod primitives:

NeedDefault
Repository/service dependencyProvider<T>
Simple local filter/toggle/query textStateProvider<T>
Read-only one-shot async queryFutureProvider<T>
Read-only realtime dataStreamProvider<T>
Synchronous controller with mutable stateNotifierProvider<Notifier, State>
Async controller with loading/error/data stateAsyncNotifierProvider<Notifier, State>
Parameterized provider.family
Screen-scoped state.autoDispose

Use StateNotifierProvider only when the project already standardizes on StateNotifier or dependency constraints require it.

Provider Organization

In a feature's provider file, use this order:

  1. Repository/service providers.
  2. Simple filter or UI-state providers.
  3. Query providers or notifier classes.
  4. Provider declarations for controllers/notifiers.

Split a provider file when it becomes hard to scan, not just because a second provider exists. Prefer names that read naturally at call sites: orderRepositoryProvider, orderSearchQueryProvider, orderListProvider, orderControllerProvider.

Show full SKILL.md (426 more words)Show less
Async UI Rules
  • Use AsyncValue.when, pattern matching, or project-standard helpers to render loading/error/data states.
  • Use ref.watch() for reactive state in build.
  • Use ref.read() for event handlers and one-shot actions.
  • Use ref.listen() for side effects such as snackbars, dialogs, and redirects.
  • Do not start network fetches, mutations, navigation, or provider invalidation from build, itemBuilder, or other repeatedly-called render callbacks.

UI Composition

Use page widgets as thin state connectors. Prefer ConsumerWidget pages when Riverpod state is needed, and use ConsumerStatefulWidget only for unavoidable local lifecycle concerns such as controllers, focus nodes, or animations. Extracted UI sections should be StatelessWidget components by default.

Follow these rules:

  • Keep each required widget build override focused on composing named widgets.
  • Do not create private methods that return widgets for page sections.
  • Move page sections, cards, list rows, empty states, form sections, buttons groups, and reusable layout pieces into views/components/.
  • Pass plain data and callbacks into components instead of reading providers inside every component.
  • Use ConsumerWidget in a component only when passing data/callbacks would create worse coupling or excessive plumbing.
  • Promote a feature component to core/components/ only after it is reused by multiple features.

Feature Implementation Workflow

When adding a feature:

  1. Create lib/features/<feature_name>/ with data/models/, data/repositories/, providers/, and views/.
  2. Define handwritten models with fromJson, toJson, copyWith, and manual equality when needed.
  3. Implement the repository. Inject shared clients from core/providers/ or core/repositories/; do not instantiate global dependencies deep in views.
  4. Add Riverpod providers. Start with repository providers, then query/controller providers.
  5. Implement views as thin ConsumerWidget shells, using ConsumerStatefulWidget only for unavoidable local lifecycle state, then extract UI sections into StatelessWidget files under views/components/.
  6. Wire navigation in the existing composition layer.
  7. Extract shared code to core/ only after confirming it is cross-feature or app-wide.
  8. Run formatting, static analysis, and focused tests.

Naming

ItemConventionExample
Feature directorysnake_caseorder_history/
Model filesnake_caseorder_model.dart
Repository file<feature>_repository.dartorders_repository.dart
Provider file<feature>_providers.dartorders_providers.dart
Page file<feature>_page.dart or specific screen nameorders_page.dart, order_details_page.dart
Component file<component_name>.dartorders_list.dart, order_summary_card.dart
Component classPascalCase widget nameOrdersList, OrderSummaryCard
Notifier/controller classPascalCase + Notifier or ControllerOrdersNotifier, OrderFormController
State classPascalCase + StateOrdersState, OrderFormState
Provider variablecamelCase + ProviderordersProvider, orderRepositoryProvider
Barrel fileDirectory summary namemodels.dart, components.dart

Reference Files

Load reference files only when useful for the current task:

© abdulmominsakib, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in .agents/skills/flutter-feature-based-architecture of abdulmominsakib/localmind.

  • SKILL.md
  • agents/openai.yaml
  • references/handwritten-feature-example.md
  • references/pagination-state-notifier-example.md

Open the folder on GitHubat commit 9ff3f94

Compare with similar skills

Flutter Feature Based Architecture next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Flutter Feature Based Architecture compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Flutter Feature Based Architecture this skillabdulmominsakib/localmind268—~2.9kAutomated safety check: PassMIT
Engine Whats Newflutter/flutter180k—~978Automated safety check: PassBSD-3-Clause
Flutter Cherry Pickflutter/flutter180k—~1.8kAutomated safety check: PassBSD-3-Clause
Upgrade Browserflutter/flutter180k—~1.1kAutomated safety check: PassBSD-3-Clause
Bump Dartflutter/flutter180k—~1.2kAutomated safety check: PassBSD-3-Clause
Run Devicelab With Ledflutter/flutter180k—~852Automated safety check: PassBSD-3-Clause

Similar skills

  • Engine Whats New

    flutter/flutter

    Generates the "what's new" release summary and diff file for changes in the Flutter engine (//engine/src/flutter) between two releases (e.g., 3.47 vs 3.44).

    180k GitHub stars~978 tokensUpdated today
    MobileAuto-check passed
  • Flutter Cherry Pick

    flutter/flutter

    How to land a formal cherry-pick of a merged PR for the flutter/flutter repo stable or beta channel.

    180k GitHub stars~1.8k tokensUpdated today
    MobileAuto-check passed
  • Upgrade Browser

    flutter/flutter

    Upgrade browser versions (Chrome or Firefox) in the Flutter Web Engine and/or Framework tests.

    180k GitHub stars~1.1k tokensUpdated today
    MobileAuto-check passed
  • Bump Dart

    flutter/flutter

    Do not trigger automatically; only run when a user runs /bump-dart.

    180k GitHub stars~1.2k tokensUpdated today
    MobileAuto-check passed
  • Run Devicelab With Led

    flutter/flutter

    Run DeviceLab tests for Flutter PRs using LUCI's led CLI tool.

    180k GitHub stars~852 tokensUpdated today
    MobileAuto-check passed
  • Shepherd PRs

    flutter/flutter

    Automate shepherding, checking status, updating branches, and landing open PRs or approved third-party contributor PRs in the flutter/flutter repository using the gh CLI.

    180k GitHub stars~1.7k tokensUpdated today
    MobileAuto-check passed

More from abdulmominsakib/localmind

All 13 skills in this repo
  • Flutter Add Widget Preview

    abdulmominsakib/localmind

    Adds interactive widget previews to the project using the previews.dart system.

    268 GitHub starsUsed in 1 repo~1.6k tokens
    Auto-check passed
  • Flutter Add Widget Test

    abdulmominsakib/localmind

    Implement a component-level test using WidgetTester to verify UI rendering and user interactions (tapping, scrolling, entering text).

    268 GitHub starsUsed in 1 repo~1.6k tokens
    Auto-check passed
  • Architects a Flutter application using the recommended layered approach (UI, Logic, Data).

    268 GitHub starsUsed in 1 repo~1.6k tokens
    Auto-check passed
  • Flutter Build Responsive Layout

    abdulmominsakib/localmind

    Use LayoutBuilder, MediaQuery, or Expanded/Flexible to create a layout that adapts to different screen sizes.

    268 GitHub starsUsed in 1 repo~1.7k tokens
    Auto-check passed
  • Flutter Fix Layout Issues

    abdulmominsakib/localmind

    Fixes Flutter layout errors (overflows, unbounded constraints) using Dart and Flutter MCP tools.

    268 GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed
  • Flutter Implement JSON Serialization

    abdulmominsakib/localmind

    Create model classes with fromJson and toJson methods using dart:convert.

    268 GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check passed

Works with

Categories

Questions about Flutter Feature Based Architecture

What does Flutter Feature Based Architecture do?

Design, implement, refactor, and review Flutter apps that use feature-based vertical slices, handwritten Dart models/providers, componentized StatelessWidget UI, Riverpod state management, and a…. Flutter Feature Based Architecture is an agent skill from abdulmominsakib/localmind. Design, implement, refactor, and review Flutter apps that use feature-based vertical slices, handwritten Dart models/providers, componentized StatelessWidget UI, Riverpod state management, and a shared core layer.

When should I use Flutter Feature Based Architecture?

Flutter Feature Based Architecture fits situations like: adding Flutter features; organizing lib/; moving shared code; wiring repositories/providers/routes.

How do I install Flutter Feature Based Architecture in Claude Code?

Run `npx skills add abdulmominsakib/localmind --skill flutter-feature-based-architecture -a claude-code`. Or copy the skill folder (.agents/skills/flutter-feature-based-architecture in abdulmominsakib/localmind) into .claude/skills/flutter-feature-based-architecture in your project. Claude Code loads it when a task matches its description.

How do I install Flutter Feature Based Architecture in Codex?

Run `npx skills add abdulmominsakib/localmind --skill flutter-feature-based-architecture -a codex`. Or copy the skill folder (.agents/skills/flutter-feature-based-architecture in abdulmominsakib/localmind) into .agents/skills/flutter-feature-based-architecture in your project. Codex loads it when a task matches its description.

Can I use Flutter Feature Based Architecture in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add abdulmominsakib/localmind --skill flutter-feature-based-architecture -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/flutter-feature-based-architecture, .gemini/skills/flutter-feature-based-architecture, .github/skills/flutter-feature-based-architecture and .opencode/skills/flutter-feature-based-architecture in your project.

What does Flutter Feature Based Architecture need to run?

Going by SKILL.md and its folder, Flutter Feature Based Architecture needs the command-line tools its instructions call (flutter).

Does Flutter Feature Based Architecture access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Flutter Feature Based Architecture safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Flutter Feature Based Architecture use?

Flutter Feature Based Architecture is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Flutter Feature Based Architecture use?

About 2.9k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.7k tokens, read only when the agent opens those files.

What are the alternatives to Flutter Feature Based Architecture?

Skills that share tags, products or a category with Flutter Feature Based Architecture: Engine Whats New (flutter/flutter, 180k stars), Flutter Cherry Pick (flutter/flutter, 180k stars), Upgrade Browser (flutter/flutter, 180k stars) and Bump Dart (flutter/flutter, 180k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Flutter Feature Based Architecture?

abdulmominsakib (a GitHub user) maintains it in abdulmominsakib/localmind, which has 268 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 8, 2026.

Source: abdulmominsakib/localmind on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.