.claude/skills/flutter-cubit-feature/SKILL.md
Adds or refactors a Flutter feature screen using Cubit (flutter_bloc), Equatable states with copyWith, BlocSelector for single-field listening, BlocBuilder/BlocListener, StatefulWidget + PageMixin for shared controllers, and ValueListenableBuilder for widget-local UI without setState. Registers services via ProductContainer (get_it). Use when the user runs /cubit-add, asks for Cubit + mixin + ValueListenable pattern, or points to docs/prompt/flutter_cubit_feature_prompt.md.
npx skillsauth add VB10/flight_booking flutter-cubit-featureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
/cubit-add or asks to add Cubit to a feature page.Read and follow:
cubit/*_state.dart): Equatable + copyWith; always use a single immutable class with flat fields (isLoading, errorMessage, isSuccess, etc.) — do NOT use sealed classes.cubit/*_cubit.dart): business logic and emit; inject services via constructor (wired in mixin from ProductContainer.instance.get<T>()).view/*_page_mixin.dart): part of the page; only shared controllers here (e.g. TextEditingController used by multiple widgets). Widget-local ValueNotifiers belong in the widget's own State, not in the mixin.*_page.dart): StatefulWidget + State with mixin; BlocProvider(create: (_) => cubit); BlocListener for navigation / one-shot side effects; pass shared controllers and callbacks into body.view/widget/*_page_body.dart):
BlocSelector for widgets that listen to a single state field (e.g. isLoading, errorMessage) — prevents unnecessary rebuilds.BlocBuilder (with optional buildWhen) when a widget needs multiple state fields.ValueListenableBuilder for widget-local UI state (password visibility, expand/collapse panels, etc.) — no setState.Notifier suffix — obscureNotifier, expandedNotifier, selectedTabNotifier.dart analyze on the touched feature path.Navigator or ScaffoldMessenger inside the Cubit (use BlocListener).setState for state that belongs in Cubit or in a ValueNotifier.ValueNotifier from mixin to a widget if only that widget uses it — let the widget own it.BlocBuilder when only one field is needed — use BlocSelector instead.lib/feature/unauth/login/lib/feature/auth/flight/cubit/, flight_list_page.dartlib/product/container/product_container.dartUsers can trigger the same workflow with:
.claude/commands/cubit-add.md → /cubit-add {path}Copy this .claude/skills/flutter-cubit-feature/ folder into another project's .claude/skills/ and keep or adapt docs/prompt/flutter_cubit_feature_prompt.md for portability.
tools
Resolves theme-related tasks in the Flight Booking Flutter app. Use when changing colors, padding, radius, text styles, theme extension, or when the user asks about theme, design system, AppTheme, AppColors, AppPadding, AppRadius, context.appTheme, or MaterialApp theme.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------