By sgaabdu4
Detects scope creep in Flutter projects by tracking file changes and user prompts, reviewing diffs against the original request to block stop events when creep is detected.
Modifies files
Hook triggers on file write and edit operations
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A strict Flutter architecture skill and plugin for teams that want Riverpod, Freezed, typed GoRouter, Hive CE, localization, tests, accessibility, and runtime proof enforced the same way every time.
This is not a generic Flutter tips repo. It is an opinionated policy package for building Flutter apps with one clear architecture and enough local enforcement that an agent cannot quietly drift into weaker patterns.
It is unofficial. It is not affiliated with Google, Flutter, Dart, Riverpod, or their maintainers.
The target app shape is simple:
UI widgets
-> generated Riverpod providers and notifiers
-> repositories
-> local or remote datasources
-> APIs, Hive boxes, platform plugins
Domain entities stay pure Dart.
Navigation goes through typed GoRouter routes.
User-facing copy goes through gen-l10n.
Behavior is proven with tests, lints, hooks, evals, and E2E evidence.
The main rules:
@riverpod / @Riverpod; manual provider
constructors are out.ref.mounted or context.mounted.AppLocalizations.Flutter lets teams build the same feature many ways. That flexibility is useful for experiments, but it is expensive when agents are writing production code: each extra acceptable pattern becomes another place for drift, hidden state, weak tests, or shallow wrappers.
This architecture chooses one path on purpose. It is better for this workflow because it makes ownership obvious:
| Common drift | This architecture forces |
|---|---|
| Widgets reaching into storage, HTTP, or plugins. | Widgets render localized UI and dispatch user intent only. |
| Notifiers mixing state transitions with SDK details. | Notifiers own state; repositories and datasources own IO boundaries. |
| Domain models shaped by JSON, Hive, or Flutter widgets. | Domain stays pure Dart with explicit Value Objects and invariants. |
| Route strings copied through the app. | Typed GoRouter routes are the navigation source of truth. |
| "Looks fine" UI changes without proof. | Lints, hooks, tests, accessibility checks, evals, and E2E proof all matter. |
The tradeoff is deliberate: less framework freedom, more repeatability. The goal is not to cover every valid Flutter style. The goal is to make one strict style easy to review, easy to test, and hard for an agent to accidentally weaken.
Install it as a plugin when you want enforcement. A raw SKILL.md install is
guidance-only and cannot register runtime hooks.
| Layer | What it does | Source |
|---|---|---|
| Skill | Loads the rules, trigger map, and pre-flight checklist into the agent context. | SKILL.md |
| Hooks | Blocks obvious drift after edits and before the agent stops. | hooks/ |
| Analyzer | Enforces AST-level Flutter/Riverpod rules through dart analyze. | analysis_options.yaml |
| Dart Decimate | Gates dead code, cycles, duplication, complexity, dependency hygiene, and changed-code risk. | dart-decimate.md |
| Evals | Defines trigger, routing, and answer-quality regression cases. | evals/ |
| References | Holds detailed guidance so SKILL.md stays small and direct. | references/ |
The hard project gates are package-root dart analyze with
flutter_skill_lints and riverpod_lint wired under top-level plugins: in
analysis_options.yaml, plus Dart Decimate after every Flutter/Dart write batch.
npx claudepluginhub sgaabdu4/building-flutter-apps --plugin building-flutter-appsFlutter development skills for Claude Code - Feature-Driven Development with Clean Architecture
Flutter architecture and state management agents. Includes State Management (Provider, Riverpod, BLoC, Redux, GetX) and Architect (Clean Architecture, project structure, dependency injection).
Best-practice skills for Flutter and Dart covering accessibility, animations, BLoC, testing, theming, navigation, security, internationalization, layered architecture, license compliance, UI packages, project creation, SDK/lint upgrades, and an autonomous quality-gate loop that drives analyze, format, test, and coverage to green — plus automated dart analyze and format hooks.
Use this agent when you need expert assistance with Flutter mobile development tasks, including code analysis, widget creation, debugging, performance optimization, or architectural decisions. Examples: <example>Context: User is working on a Flutter app and faces issues with navigation. user: 'My Navigator.push isn't updating the UI correctly when moving to a new screen' assistant: 'Let me use the flutter-dev agent to analyze your navigation setup and provide a solution' <commentary>Since this is a Flutter-specific navigation issue, use the flutter-dev agent to provide expert guidance on Navigator problems.</commentary></example> <example>Context: User wants to create a custom widget that aligns with their app's design system. user: 'I need to create a custom button widget that matches our app's design system' assistant: 'I'll use the flutter-dev agent to create a button widget that aligns with your existing codebase structure and design patterns' <commentary>The user needs a Flutter widget that follows existing patterns, so use the flutter-dev agent.</commentary></example>
Use this agent when you need expert assistance with Flutter mobile development tasks, including code analysis, widget creation, debugging, performance optimization, or architectural decisions. Examples: <example>Context: User is working on a Flutter app and faces issues with navigation. user: 'My Navigator.push isn't updating the UI correctly when moving to a new screen' assistant: 'Let me use the flutter-dev agent to analyze your navigation setup and provide a solution' <commentary>Since this is a Flutter-specific navigation issue, use the flutter-dev agent to provide expert guidance on Navigator problems.</commentary></example> <example>Context: User wants to create a custom widget that aligns with their app's design system. user: 'I need to create a custom button widget that matches our app's design system' assistant: 'I'll use the flutter-dev agent to create a button widget that aligns with your existing codebase structure and design patterns' <commentary>The user needs a Flutter widget that follows existing patterns, so use the flutter-dev agent.</commentary></example>
Official Claude plugin for Dart and Flutter that installs Flutter/Dart Skills and Dart MCP server for building natively compiled, visually stunning applications for mobile, web, desktop, and embedded devices from a single codebase