flutter / flutter/agent-plugins

[Skill idea] flutter-scaffold-mvvm-feature — generate a complete MVVM feature in one shot

Aperta
#108 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
P2 Skill
Lingua principale
Dart
Stelle
2.9k
Fork
178
Merge medio
4g 2h
PR unite (30g)
9

Descrizione

## Environment

- **Language model:** Claude Opus 4.7
- **Agent harness:** Claude Code
- **Project type:** Production Flutter app (logistics / driver-facing), strict MVVM

The current `flutter-apply-architecture-best-practices` skill is **educational** — it teaches the layered MVVM pattern. What's missing is a **generative** counterpart that scaffolds a full feature end-to-end: Page + ViewModel + Status + (optional) Effect + Route + DI registration + unit test, all wired and consistent.

Today, generating a new feature in a strict-MVVM app is a 10–15 file edit dance that's easy to get inconsistent (route variant wrong, DI not registered, ViewModel imports `flutter/material`, test missing mocks). A single skill that drives this correctly removes a recurring source of drift.

## Proposed skill

**Name:** `flutter-scaffold-mvvm-feature`

**Description (draft):**
> Scaffold a complete MVVM feature (Page, ViewModel, Status, optional Effect, Route, DI registration, and unit test) wired consistently across layers. Use when adding a new screen, sheet, or dialog to an app that already follows the MVVM pattern, to guarantee correct layer separation and DI on first generation.

**Inputs the skill should ask upfront (in a single batch):**
1. Feature name (snake_case)
2. Page type (full-screen / bottom-sheet / dialog)
3. Needs Effects? (snackbars, async navigation events)
4. Needs offline/connectivity awareness?
5. Domain model the page receives (or none)
6. Initial Status fields

**Outputs:**
- `lib/features/{name}/{name}_page.dart`
- `lib/features/{name}/{name}_view_model.dart`
- `lib/features/{name}/{name}_status.dart`
- `lib/features/{name}/{name}_effect.dart` (only if Effects needed)
- Route file + export
- DI factory registration
- Unit test stub for the ViewModel

## Why this is hard for a single-pass skill

Layer-correct generation benefits from **parallel sub-agents** (one per layer: data/VM, UI, tests) so the skill can produce 5–7 files coherently in one turn. We've implemented this pattern internally and it works well — happy to share the orchestration approach if useful.

## Real-world reference

We run an internal version of this in production (Claude Code, ~9k LOC monthly throughput). Generation success rate (no follow-up edit needed) is materially higher than per-file generation.

## Roadmap fit

This complements `flutter-apply-architecture-best-practices` (P1, already published) — that one teaches the pattern, this one applies it.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia esaminando lo skill esistente `flutter-apply-architecture-best-practices` e il modo in cui gli skill sono strutturati in questo repository. Definisci il flusso di generazione in base agli input e agli output elencati, quindi verifica che una feature generata includa in modo coerente Page, ViewModel, Status, l’Effect opzionale, l’esportazione della route, la registrazione DI e uno stub di unit test per ViewModel.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
dart, flutter
Ambito
developer-experience, mobile-dev, tooling
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.