| name | flutter-project-bootstrap |
| description | Scaffolds a Flutter app structure from developer requirements. Supports a guided questionnaire and a quick default mode, then generates architecture, dependencies, starter files, and 1-2 sample screens. |
| license | MIT |
| metadata | {"version":"0.1.0","owner":"mdazadhossain95"} |
Flutter Project Bootstrap
Purpose
Use this skill to initialize a new Flutter project structure based on developer needs.
This skill supports two modes:
- Guided setup: ask requirement questions and generate from answers.
- Quick default setup: skip questions and apply a recommended baseline.
Activation
Activate this skill when the user asks to bootstrap, scaffold, or initialize a Flutter app structure and wants architecture, dependencies, and starter code generated quickly.
Non-Goals
- Do not implement full business logic for every feature.
- Do not generate production secrets or real keys.
- Do not install unsupported platform SDKs silently.
Mode Selection
Ask this first:
- Do you want Guided setup or Quick default setup?
If user picks Quick default, skip interview and use the Default Profile section.
If user picks Guided setup, run the full questionnaire.
Guided Questionnaire
Ask questions in this order. Accept either selected options or free text.
- App type
- Example options: ecommerce, quick-commerce, rider, fintech, food-delivery, social, healthcare, custom.
- Primary state management
- Example options: riverpod, bloc, getx, provider, custom.
- Additional state management (optional)
- If multiple are chosen, keep one primary and isolate others by module.
- Architecture style
- Example options: feature-first clean, layered by type, simple starter.
- Backend strategy
- Example options: rest-api, firebase, supabase, hybrid.
- API usage
- Ask: Will this app consume external APIs? (yes/no)
- If yes, ask for API style: rest, graphql, both.
- Authentication
- Example options: email-password, google, apple, phone-otp, guest.
- Push notifications
- Example options: firebase-fcm, onesignal, none.
- Local persistence
- Example options: shared-preferences, secure-storage, hive, isar, sqlite, none.
- Realtime needs
- Example options: websocket, firebase-realtime, none.
- Payments (optional)
- Example options: stripe, razorpay, sslcommerz, none.
- Target platforms
- Example options: android, ios, web, macos, windows, linux.
- Flavors/environments
- Example options: dev, staging, prod.
- Tooling
- Ask for optional setup: ci-cd, localization, accessibility baseline, analytics.
- Starter screens
- Ask if user wants 1 or 2 sample screens and which feature area.
Quick Default Profile
If user selects quick default, apply this baseline:
- App type: ecommerce starter
- Architecture: feature-first clean
- Primary state management: riverpod
- Backend: rest-api ready
- API usage: yes, rest
- Auth: email-password scaffold
- Push: firebase-fcm ready
- Local persistence: shared-preferences + secure-storage
- Realtime: none
- Payments: none
- Platforms: android + ios
- Flavors: dev + prod
- Starter screens: splash + home catalog sample
Always print a summary of applied defaults before generation.
Decision Rules
- If multiple state management options are requested, require one primary and place additional patterns in separate modules only.
- Do not mix two state patterns inside the same feature module.
- If backend=firebase and push=onesignal, allow both.
- If backend=none and api=no, generate local/offline starter only.
- If platforms include web, avoid mobile-only plugin setup in generated instructions.
- If payments are enabled, scaffold abstraction layer and placeholder service only.
Generation Contract
After collecting requirements, generate the following:
- Folder structure
- core/
- config/
- shared/
- features/
- data/
- domain/
- presentation/
- routes/
- Core setup
- app entry wiring
- theme setup
- route config
- dependency injection bootstrap
- environment/flavor config if requested
- Dependencies
- Add only required packages for selected options.
- Group packages by: state, network, storage, push, auth, payments, utilities.
- Starter implementation
- Create 1-2 sample screens based on requested app type.
- Add basic navigation between generated screens.
- Include placeholder repository/service contracts.
- Developer handoff output
- Print:
- selected options summary
- generated directories/files summary
- package summary
- next 5 recommended implementation steps
Validation Checklist
Before completing, verify:
- No contradictory choices remain unresolved.
- Generated structure matches selected architecture.
- Chosen state management is wired as primary.
- Selected services (push/auth/storage) are reflected in dependencies and stubs.
- At least one starter route and one starter screen exist.
Failure Handling
If requirements conflict or are incomplete:
- Apply safe defaults for missing optional inputs.
- For blocking conflicts, resolve with deterministic fallback:
- state management fallback: riverpod
- backend fallback: rest-api
- push fallback: none
- Continue generation and clearly report fallback decisions.
Completion Output Template
Use this format at the end:
- Setup mode: guided | quick-default
- Selected stack: <app type, state, backend, push>
- Generated artifacts: <folders/files/screens>
- Installed package groups: <state/network/storage/...>
- Next steps:
- Step 1
- Step 2
- Step 3
- Step 4
- Step 5