Six proactive skills for production-quality Flutter apps using the Bloc pattern with a Laravel backend — setup, feature scaffolding, async API calls with typed Failure mapping, real-time stream tracking, deterministic Bloc tests, and forms with per-field 422 round-trip. Each skill activates automatically on relevant phrases.
Implements the canonical async API call pattern in Bloc — dispatch event, emit loading, call Repository returning `Result<T>` with a typed `Failure`, emit success or typed failure. Use when wiring a Bloc-driven feature to a REST API (typically Laravel), mapping HTTP errors to typed failures, or handling pull-to-refresh and request cancellation. Prerequisite: `flutter-bloc-setup` and `flutter-bloc-feature-pattern`.
Use when adding a new feature to a Bloc-based Flutter project (after `flutter-bloc-setup`), structuring an existing feature with a canonical event/state/bloc trio backed by `freezed` sealed states, or deciding which `bloc_concurrency` transformer (`droppable`/`restartable`/`sequential`/`concurrent`) fits an event handler.
Models form fields as `formz` value objects and drives form state with a Bloc, including round-tripping Laravel 422 validation errors back to per-field UI errors. Use when implementing complex forms like login, OTP verification, address entry, profile editing, password reset, or any form with cross-field validation rules and server-side error surfaces. Prerequisite: `flutter-bloc-setup`, `flutter-bloc-feature-pattern`, and `flutter-bloc-async-api`.
Configures a Flutter project for Bloc state management with `flutter_bloc`, `freezed`, `bloc_concurrency`, and `hydrated_bloc`. Use when initializing Bloc in a new project, migrating away from `setState`/`Provider`/`ChangeNotifier`, or before authoring any feature with `flutter-bloc-feature-pattern` or `flutter-bloc-async-api`.
Subscribes to a real-time stream (WebSocket, Pusher, Firestore) inside a Bloc via `emit.forEach` and emits a new state on every frame. Use when implementing live order tracking, driver location updates, real-time chat, presence indicators, or any feature where the UI must reflect server-pushed events. Prerequisite: `flutter-bloc-setup` and `flutter-bloc-feature-pattern`.
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 Claude Code plugin providing six focused, proactive skills for building production-quality Flutter apps using the Bloc state-management pattern, paired with a Laravel backend. Each skill activates automatically on the right phrases.
Opinionated toward flutter_bloc ^9.0 + freezed ^3.0 + bloc_concurrency ^0.3 + hydrated_bloc ^10.0 + formz ^0.7 + bloc_test ^10.0 + mocktail ^1.0. Mobile-only (Android + iOS).
| Skill | Trigger Conditions | What It Covers |
|---|---|---|
| flutter-bloc-setup | Initializing Bloc in a new Flutter project, migrating away from setState/Provider/ChangeNotifier, or before authoring any feature | Pinned-version pub add lines, HydratedBloc.storage init in main() (with the getApplicationDocumentsDirectory() vs getTemporaryDirectory() choice spelled out), root MultiRepositoryProvider, AppBlocObserver gated on kDebugMode with onTransition logging, project structure that integrates with flutter-apply-architecture-best-practices |
| flutter-bloc-feature-pattern | Adding a new feature to a Bloc project, structuring an existing feature, deciding which bloc_concurrency transformer fits | Event/state/bloc trio file layout, sealed freezed states with Dart 3 pattern-switch consumers, transformer-choice table (droppable / restartable / sequential / concurrent), BlocBuilder / BlocSelector / BlocListener distinctions, full HydratedBloc example with storagePrefix override for minification-safe persistence, the restartable + persistence ordering subtleties |
| flutter-bloc-async-api | Wiring a Bloc-driven feature to a REST API, mapping HTTP errors to typed failures, handling pull-to-refresh and request cancellation | Result<T> sealed union with a single generic and a fixed Failure taxonomy mirroring Laravel's HTTP shapes (network / timeout / unauthorized / forbidden / notFound / validation(422) / server / unknown), typed ApiException with validationErrors getter for round-tripping Laravel's 422 envelope, restartable() refresh that cancels in-flight requests cleanly, _messageFor(Failure) presentation-layer mapper |
| flutter-bloc-stream-tracking | Live order tracking, driver location updates, real-time chat, presence indicators, or any feature where the UI must reflect server-pushed events | emit.forEach<T> over stream.listen (auto-cancellation on Bloc close), explicit ConnectRequested / DisconnectRequested events with disconnect routed through the Repository (not by emitting Closed in a sibling handler — each handler has its own Emitter), Repository-owned reconnection with kill-switches per ID and max-retry caps, distinct stream-lifecycle states (Connecting/Connected/Reconnecting/Disconnected/Closed) kept separate from API states |
| flutter-bloc-testing | Adding tests for a Bloc's event handlers, verifying its emitted state sequence, mocking a Repository, asserting restartable() cancels in-flight requests | bloc_test<B, S> hook anatomy (build/setUp/seed/act/wait/expect/verify), mocktail's class MockX extends Mock implements X + registerFallbackValue for custom types, Completer-controlled timing to actually prove restartable() (rather than passing tautologically), HydratedBloc rehydration tests with an in-memory Storage fake registered in setUpAll and cleared in setUp |
| flutter-bloc-forms | Implementing complex forms (login, OTP verification, address entry, profile editing, password reset) with cross-field validation and server-side error surfaces | FormzInput<TValue, TError> value objects per field (EmailInput, PasswordInput, etc.), pure([value]) supporting pre-populated forms, displayError for "don't show errors before user touches the field", form Bloc state with FormzSubmissionStatus independent of isValid, per-field 422 round-trip (Laravel errors map → FormzInput.dirty(value, serverError)), custom ==/hashCode so BlocSelector rebuilds when only serverError changes |
Each skill is a single SKILL.md with conceptual sections, a numbered workflow checklist, runnable Dart examples, and an "Applied to Talabat-clone" anchor showing how the pattern maps onto a real multi-store delivery app.
In Claude Code, run:
/plugin marketplace add abdallhMoukdad/flutter-bloc-skills
/plugin install flutter-bloc-skills@flutter-bloc-skills
Restart Claude Code. All six skills are now active and will trigger automatically on relevant phrases (the prefix flutter-bloc-skills:flutter-bloc-setup will appear in the available-skills listing).
To update later:
/plugin marketplace update flutter-bloc-skills
If you'd rather load the skills directly into ~/.claude/skills/ without going through the plugin mechanism:
npx claudepluginhub abdallhmoukdad/flutter-bloc-skills --plugin flutter-bloc-skillsTwelve proactive skills for production-quality Laravel 12 API backends — Eloquent, API design, architecture, auth, queues, testing, migrations, exceptions, caching, security, logging, and localization. Each skill activates automatically on the right phrases.
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Unity Development Toolkit - Expert agents for scripting/refactoring/optimization, script templates, and Agent Skills for Unity C# development
Complete collection of battle-tested Claude Code configs from an Anthropic hackathon winner - agents, skills, hooks, and rules evolved over 10+ months of intensive daily use
Complete collection of 30 Claude Code skills for document processing, development, business productivity, and creative tasks
Tools to maintain and improve CLAUDE.md files - audit quality, capture session learnings, and keep project memory current.
Develop, test, build, and deploy Godot 4.x games with Claude Code. Includes GdUnit4 testing, web/desktop exports, CI/CD pipelines, and deployment to Vercel/GitHub Pages/itch.io.