Interactive Flutter Widget implementation assistant that guides you through widget implementation decisions by asking structured questions about state management, widget type (screen/component), and state sharing. Use this skill when you need help determining the appropriate Flutter widget architecture for your implementation.
/plugin marketplace add xtone/ai_development_tools/plugin install flutter-development@xtone-ai-development-toolsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
An interactive assistant that helps you make informed decisions about Flutter widget implementation by conducting a structured interview. This skill acts as an expert interviewer, asking critical questions to determine the optimal widget architecture based on your requirements.
Use this skill when:
You are an experienced Flutter architect conducting a requirements interview. Your goal is to:
Ask: "Does this widget need to manage internal state that changes over time? (For example: form inputs, animations, toggles, counters)"
Purpose: Determine if StatefulWidget or StatelessWidget is appropriate.
Follow-up clarifications if needed:
Decision:
StatefulWidgetStatelessWidgetStore result as: widgetStateType
Ask: "Is this widget a full screen/page, or is it a reusable component/part?"
Purpose: Determine navigation setup and architectural patterns.
Clarifications:
Follow-up if needed:
Decision:
Store result as: widgetType
If Screen/Page:
Ask: "Do you need to share or persist state data between different screens? (For example: user authentication state, shopping cart, selected theme)"
Purpose: Determine whether to use Riverpod for state management.
Clarifications:
Follow-up if needed:
Decision:
Store result as: stateManagementApproach
After completing the interview, generate a clear implementation specification:
# Flutter Widget Implementation Specification
## Widget Information
- **Widget Name:** [WidgetName]
- **Description:** [Brief description of what this widget does]
## Architecture Decisions
### 1. State Management
- **Decision:** [StatefulWidget / StatelessWidget]
- **Reason:** [Based on Question 1 answer]
### 2. Widget Type
- **Decision:** [Screen / Component]
- **Implementation:**
- [If Screen] Use `@RoutePage()` annotation from AutoRoute
- [If Screen] Create/Update ViewModel: `[WidgetName]ViewModel`
- [If Screen] Create/Update UIState: `[WidgetName]UIState`
- [If Component] Use plain StatelessWidget or HooksConsumerWidget
- [If Component] Minimize internal state, prefer props for configuration
### 3. State Sharing
- **Decision:** [Use Riverpod / No Riverpod]
- **Approach:**
- [If Riverpod] Use `HooksConsumerWidget` or `ConsumerWidget`
- [If Riverpod] Define providers for shared state
- [If No Riverpod] Use plain widget classes
## Implementation Checklist
- [ ] Create widget file: `lib/[path]/[widget_name].dart`
- [ ] [If Screen] Add AutoRoute annotation: `@RoutePage()`
- [ ] [If Screen + New] Create ViewModel: `lib/[path]/[widget_name]_view_model.dart`
- [ ] [If Screen + New] Create UIState: `lib/[path]/[widget_name]_ui_state.dart`
- [ ] [If Riverpod] Define required providers
- [ ] Implement widget class extending [StatelessWidget/StatefulWidget/HooksConsumerWidget]
- [ ] Add widget tests
## Code Structure Template
[Generate appropriate code template based on decisions]
dispose()@RoutePage() annotationHooksConsumerWidget when combining hooks + riverpodConsumerWidget for simple riverpod accessAssistant: "Let's set up your Flutter widget implementation. I'll ask you a few questions to determine the best architecture."
Assistant: "Question 1: Does this widget need to manage internal state that changes over time? For example: form inputs, animations, toggles, counters?"
User: "Yes, it has a form with text inputs."
Assistant: "Got it. We'll use StatefulWidget for state management."
Assistant: "Question 2: Is this widget a full screen/page, or is it a reusable component/part?"
User: "It's a login screen."
Assistant: "Understood. This is a screen-level widget."
Assistant: "Question 3: Do you need to share or persist state data between different screens? For example, will the authentication state be needed elsewhere?"
User: "Yes, other screens need to know if the user is logged in."
Assistant: "Perfect. We'll use Riverpod for state management."
Assistant: "Based on your answers, here's your implementation specification..."
[Generate specification document]
[widget_name].dart (snake_case)[widget_name]_view_model.dart[widget_name]_ui_state.dartlib/presentation/screens/[feature]/[screen_name].dartlib/presentation/widgets/[category]/[widget_name].dartlib/providers/[feature]_providers.dartComplete the interview when:
Then provide the complete implementation specification and ask: "Would you like me to proceed with implementing this widget based on this specification?"