skills/flutter-init/SKILL.md
Initialize Flutter project structure from user requests: feature-first folders, pubspec.yaml with Riverpod/GoRouter/Dio/Freezed, analysis_options.yaml, .gitignore, and boilerplate Dart files under lib/. Use when starting a new Flutter project, setting up folder structure, creating a template, organizing a project from scratch, or when the user gives an org name, project name, and feature list. Triggers include folder layout, project organization, directory structure, project template, pubspec setup, best folder structure for Flutter, flutter create with architecture, and set up a Flutter project with Riverpod. Do not use for adding features to an existing project; use flutter-code for that.
npx skillsauth add cuozg/oh-my-skills flutter-initInstall 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.
Generate a production-ready Flutter project folder tree with feature-first architecture, Riverpod state management, GoRouter routing, and standard tooling.
Use when: Starting a new Flutter project, reorganizing a project from scratch, or setting up a clean feature-first structure.
Switch out if: Project already has an established structure and the user wants to add features (flutter-code), build UI (flutter-ui), or debug issues (flutter-debug).
Gather - Ask or infer these inputs:
com.example)my_app)auth, home, profile) - default: home onlyriverpod) - default: riverpodIf the user gives an app description instead of explicit params, extract org/project/features from context.
Generate - Run the scaffold script:
run_skill_script("flutter-init", "scripts/generate_structure.py",
arguments=["--org", "com.example", "--project", "my_app",
"--features", "auth,home,profile",
"--state-management", "riverpod",
"--include-tests"])
The script outputs a JSON manifest of all paths and file contents.
Apply - Use the script output to create the structure:
bash mkdir -pVerify - Confirm all directories and files exist. Report the generated tree to the user.
{project_name}/
+-- lib/
| +-- main.dart # ProviderScope + App entry
| +-- app/
| | +-- app.dart # MaterialApp.router (ConsumerWidget)
| | +-- router.dart # GoRouter route definitions
| | +-- theme.dart # ThemeData, ColorScheme, useMaterial3
| +-- core/
| | +-- constants.dart # App-wide constants
| | +-- exceptions.dart # AppException base class
| | +-- network/
| | +-- dio_client.dart # Dio HTTP client setup
| +-- features/
| | +-- {feature_name}/
| | +-- data/
| | | +-- {feature}_repository.dart
| | +-- presentation/
| | | +-- {feature}_screen.dart
| | +-- providers/
| | +-- {feature}_provider.dart
| +-- shared/
| | +-- widgets/ # Reusable UI components
| | +-- models/ # Shared data models
| +-- l10n/
| +-- app_en.arb # English localization starter
+-- test/ # (when --include-tests)
| +-- features/{feature}/
| +-- {feature}_repository_test.dart
+-- pubspec.yaml # Riverpod + GoRouter + Dio + Freezed
+-- analysis_options.yaml # flutter_lints + strict rules
+-- .gitignore # Flutter-optimized
+-- README.md # Setup instructions + architecture
core/ (pure Dart) or shared/ (Flutter widgets).ProviderScope wrapper and App() - everything else delegates to app/.@riverpod annotation pattern.Load the shared Flutter reference for detailed rules:
read_skill_file("flutter-standards", "references/code-organization.md")
For architecture patterns: read_skill_file("flutter-standards", "references/architecture-patterns.md")
For naming conventions: read_skill_file("flutter-standards", "references/dart-style-guide.md")
For state management: read_skill_file("flutter-standards", "references/state-management-guide.md")
tools
Generate Unity raster image assets through Unity MCP: game sprites, item art, backgrounds, UI icons, portraits, concept images, transparent cutouts, image edits, upscales, background removal, and Unity scene or Game View screenshots. Use when a Unity project needs image files imported under Assets or screenshots captured from the editor. Do not use for meshes, audio, animation, materials, gameplay code, UI Toolkit layout, or generic non-Unity image generation.
tools
Create Unity technical solution documents from user requirements, feature ideas, bug goals, specs, or codebase problems. Use when the user asks for a technical approach, architecture, implementation strategy, solution options, feasibility analysis, system design, or "how should we build/fix this" for Unity runtime, Editor, tools, assets, data, UI, WebGL, SDKs, or production pipelines.
tools
Orchestrate Unity Editor via MCP (Model Context Protocol) tools and resources. Use when working with Unity projects through MCP for Unity - creating/modifying GameObjects, editing scripts, managing scenes, running tests, or any Unity Editor automation. Provides best practices, tool schemas, and workflow patterns for effective Unity-MCP integration.
development
Convert a spec document into an implementation TODO list in the same spec folder. U se when the user says goal-todo, todo from spec, generate tasks from spec, turn this spec into todos, create implementation checklist, extract tasks, or asks to read a Docs/Specs design doc and produce what must be implemented. Includes UI/UX review and codebase investigation before writing the checklist. Do not use for implementing the tasks, creating new goal files, writing test cases, or verifying completed work.