init-projectlisted
Install: claude install-skill ghozimahdi/gm-aiagent-plugins
Use the current user request as this skill's input. In Claude Code invoke it as
`/ufil:init-project`; in Codex invoke it as `$ufil:init-project`. Resolve
`UFIL_ROOT` to the plugin root containing this skill; Claude Code may provide
`CLAUDE_PLUGIN_ROOT`, while Codex can resolve it from the installed skill path.
Scaffold a new Flutter project with GM clean architecture.
**Prerequisites:** FVM must be installed (`dart pub global activate fvm`) with a global Flutter version set.
**Scripts available at `${UFIL_ROOT}/scripts/`:**
- `init-modular.sh <name> [package]` — scaffold modular project (package defaults to `com.example.app`)
- `init-single.sh <name> [package]` — scaffold single-module project (package defaults to `com.example.app`)
Scripts auto-detect versions:
- **Dart SDK** constraint from `fvm dart --version` (e.g., `^3.7.0`)
- **Flutter version** in `.fvmrc` from `fvm flutter --version` (e.g., `3.41.6`)
- **Melos** `^7.0.0` as dev_dependency with config under `melos:` key
Run the appropriate script first, then follow up with manual adjustments below.
Arguments: <requested arguments>
- `<project-name>` — snake_case project name
- `--package <com.example.app>` — package/bundle ID (optional, defaults to `com.example.app`)
- `--modular` — multi-package with melos (default)
- `--single` — single-module (lib/features/ structure)
## Steps
### 1. Parse arguments
Extract project name, package name, and structure type (modular or single).
If no structure specified, def