add-feature-templatelisted
Install: claude install-skill abhinav503/flutter-agentic
If the feature name was not passed as an argument, ask:
"What is the feature name? (e.g. `products`, `auth`, `settings`)"
- `{Feature}` = PascalCase · `{feature}` = snake_case
- `{Action}` = PascalCase verb · `{action}` = snake_case verb (e.g. `GetProducts` / `get_products`)
Scaffold only — do NOT create entity, model, or use case files.
BLoCs are never registered in GetIt.
All imports are relative (`../../../../`), never `package:flutter_agentic/...`.
Run `make gen` and `make analyze` at the end before reporting done.
---
## 1. Folder tree
```bash
mkdir -p lib/feature/{feature}/data/data_source
mkdir -p lib/feature/{feature}/data/models
mkdir -p lib/feature/{feature}/data/repository_impl
mkdir -p lib/feature/{feature}/domain/entities
mkdir -p lib/feature/{feature}/domain/repository
mkdir -p lib/feature/{feature}/domain/usecase
mkdir -p lib/feature/{feature}/presentation/bloc
mkdir -p lib/feature/{feature}/presentation/view
mkdir -p lib/feature/{feature}/presentation/widgets
```
## 2. Domain — repository interface
`lib/feature/{feature}/domain/repository/{feature}_repository.dart`
```dart
abstract interface class {Feature}Repository {}
```
## 3. Data — remote data source
`{feature}_remote_data_source.dart`
```dart
abstract interface class {Feature}RemoteDataSource {}
```
`{feature}_remote_data_source_impl.dart`
```dart
import 'package:dio/dio.dart';
import 'package:retrofit/retrofit.dart';
import '{feature}_remote_data_source.dart';
part '{feature}_remote_data_sour