Migrate an Ionic/Angular feature to Flutter. Use when converting existing Ionic pages, services, or components to Flutter equivalents.
Orchestriert den kompletten Migrations-Prozess von Ionic nach Flutter.
PHASE 0: WORKTREE ERSTELLEN (IMMER!)
• EnterWorktree mit name "migrate-$ARGUMENTS"
• Isolierte Arbeitsumgebung für die Migration
▼
PHASE 1: STATUS AKTUALISIEREN
• migration-analyzer Agent starten
• migration-status.md automatisch aktualisieren
• Aktuellen Stand dem Benutzer zeigen
▼
PHASE 2: ANALYSE (Parallel Agents)
• migration-analyzer (Ionic Feature Details)
• Explore Agent (Flutter Patterns)
▼
PHASE 3: PLANUNG
• Tasks erstellen (TaskCreate)
• Benutzer-Bestätigung holen
▼
PHASE 4: IMPLEMENTIERUNG
• Tasks abarbeiten
• flutter-reviewer Agent nach jedem Abschnitt
▼
PHASE 5: VERIFICATION & COMMIT
• dart analyze lib/
• flutter-reviewer Agent (PFLICHT!)
• Kritische Probleme fixen
• /commit Skill
• migration-status.md aktualisieren
BEVOR du irgendetwas anderes tust, rufe IMMER EnterWorktree auf!
EnterWorktree mit name: "migrate-$ARGUMENTS"
Beispiele:
/ionic-migrate shifts → EnterWorktree(name: "migrate-shifts")/ionic-migrate handover → EnterWorktree(name: "migrate-handover")Warum Worktree?
WICHTIG: Fahre NICHT mit Phase 1 fort, bis der Worktree erstellt ist!
Starte den migration-analyzer Agent mit folgendem Prompt:
Analysiere den aktuellen Migrations-Stand:
1. Scanne /Users/I576226/repositories/attendance/src/app/ für alle Ionic Features
2. Scanne /Users/I576226/repositories/attendix/lib/features/ für migrierte Flutter Features
3. Vergleiche und aktualisiere /Users/I576226/repositories/attendix/.claude/migration-status.md
4. Gib eine Zusammenfassung: Was ist migriert, was fehlt noch?
Zeige dem Benutzer:
Falls $ARGUMENTS angegeben wurde, prüfe ob es in der Liste ist.
Falls nicht angegeben, frage welches Feature migriert werden soll.
Agent 1: migration-analyzer
Analysiere das Ionic-Feature "$ARGUMENTS" in /Users/I576226/repositories/attendance/src/app/
- Welche Dateien gehören dazu? (Pages, Services, Components)
- Welche Supabase-Tabellen werden genutzt?
- Welche UI-Elemente sind enthalten?
Agent 2: Explore (Flutter Patterns)
Finde in /Users/I576226/repositories/attendix/lib/ ähnliche implementierte Features.
- Welche Patterns werden verwendet?
- Gibt es wiederverwendbare Widgets in lib/shared/widgets/?
- Wie sind ähnliche Pages strukturiert?
Erstelle eine Zusammenfassung:
Beispiel für ein typisches Feature:
Task 1: Repository erstellen (falls nötig)
Task 2: Provider erstellen
Task 3: Page-Widget erstellen
Task 4: Route in app_router.dart hinzufügen
Task 5: dart analyze ausführen
Task 6: Code Review mit flutter-reviewer
Zeige dem Benutzer:
Task als in_progress markieren (TaskUpdate)
Ionic-Code lesen aus /Users/I576226/repositories/attendance/src/app/
Flutter-Code schreiben mit Pattern-Mapping (siehe unten)
Task als completed markieren
Starte flutter-reviewer Agent:
Prüfe die neu erstellten Dateien in lib/features/$ARGUMENTS/ auf:
- Multi-tenant Security (tenantId in allen Queries)
- Riverpod Patterns (Naming, Repository-Zugriff)
- Flutter Best Practices
dart analyze lib/
Starte den flutter-reviewer Agent mit folgendem Prompt:
Führe ein vollständiges Code Review durch für die Migration von "$ARGUMENTS":
1. Prüfe ALLE neu erstellten/geänderten Dateien:
- lib/features/$ARGUMENTS/**
- lib/data/repositories/*$ARGUMENTS* (falls vorhanden)
- lib/core/providers/*$ARGUMENTS* (falls vorhanden)
2. Checke diese kritischen Punkte:
- Multi-tenant Security: tenantId in ALLEN Supabase-Queries?
- Repository mit Tenant: xxxRepositoryWithTenantProvider verwendet?
- Riverpod Patterns: Naming korrekt (xxxsProvider, xxxByIdProvider)?
- Async-Handling: .when() Pattern statt direktem .value?
- Error Handling: try-catch mit mounted-Check?
- Deutsche Labels: Alle UI-Texte auf Deutsch?
- PWA-Kompatibilität: Native APIs in try-catch?
3. Gib einen Review-Report mit:
- 🔴 Kritische Probleme (müssen gefixt werden)
- 🟡 Verbesserungsvorschläge
- 🟢 Was gut gemacht wurde
WICHTIG: Bei kritischen Problemen (🔴) ERST fixen, dann weiter!
Frage: "Soll ich Tests generieren?"
Falls ja: Starte test-generator Agent.
Rufe den /commit Skill auf mit Message: