Skip to main content
1

Delimita el alcance de la migración con Ask Devin

Tienes 50 archivos que importan desde src/lib/restClient.ts y necesitas migrarlos al nuevo graphqlClient. Antes de dividir nada en trabajo en paralelo, necesitas entender cómo están conectados esos archivos. Usa Ask Devin para mapear la superficie de migración: qué archivos importan el cliente heredado, cómo se agrupan por dominio y dónde existe acoplamiento riesgoso. Devin usa DeepWiki y búsqueda semántica bajo el capó, por lo que puede responder estas preguntas basándose en tu código real.
Ask Devin requiere que tu repositorio esté indexado. Ve a Settings > Repositories para comprobar el estado de indexación o indexar un nuevo repositorio.
Abre Ask Devin y haz la siguiente consulta:Ask Devin devuelve un desglose como este:
50 archivos importan restClient en 8 dominios:

  User Management  (7 archivos) — aislado, cobertura de pruebas completa
  Billing          (9 archivos) — aislado, 6/9 probados
  Analytics        (5 archivos) — aislado, 3/5 probados
  Auth             (6 archivos) — middleware compartido, cobertura de pruebas completa
  Notifications    (8 archivos) — aislado, 5/8 probados
  Admin            (5 archivos) — depende del middleware de Auth
  Search           (4 archivos) — aislado, 2/4 probados
  Onboarding       (6 archivos) — aislado, 4/6 probados

Nota de acoplamiento: Admin importa requireAuth desde Auth. Migrar
Auth primero, luego Admin. Todos los demás dominios son independientes.
Esto te permite saber si la paralelización tiene sentido. Si la mayoría de los archivos están estrechamente acoplados entre distintos dominios, una migración secuencial es más segura. Aquí, 6 de 8 dominios son completamente independientes: puedes ejecutarlos en paralelo.
2

Crear un playbook de migración

Cada sesión en paralelo debe seguir el mismo patrón de migración para que las PR resultantes sean coherentes y fáciles de revisar. Crea un playbook que defina exactamente cómo se debe migrar cada archivo.Ve a Settings > Playbooks > Create Playbook y define los pasos:O pídele a Devin que genere el playbook por ti: describe tu patrón de migración y generará un playbook completo:Incluir este playbook en tu prompt de orquestación garantiza que todas las sesiones en paralelo produzcan PR que parezcan hechas por el mismo desarrollador.
3

Inicia sesiones en paralelo con Devin

Abre una nueva sesión de Devin desde la página de inicio de Devin y dale la instrucción de orquestación. Devin analiza el grafo de dependencias de tu base de código, crea paquetes de trabajo independientes y lanza una sesión por paquete, todas ejecutándose simultáneamente.Devin presenta una agrupación para tu aprobación antes de iniciar cualquier cosa:
Paquetes de trabajo propuestos (8 grupos, 50 archivos en total):

Grupo 1 — Gestión de usuarios (7 archivos, complejidad: M)
  src/services/UserService.ts, src/pages/Profile.tsx,
  src/pages/Settings.tsx, src/hooks/useCurrentUser.ts,
  src/pages/UserDirectory.tsx, src/services/AvatarService.ts,
  src/components/UserCard.tsx

Grupo 2 — Facturación (9 archivos, complejidad: L)
  src/services/BillingService.ts, src/services/InvoiceService.ts,
  src/services/SubscriptionService.ts, src/pages/Checkout.tsx,
  src/pages/PlanSelector.tsx, src/pages/InvoiceHistory.tsx,
  src/components/PaymentForm.tsx, src/hooks/useSubscription.ts,
  src/components/PricingTable.tsx

Grupo 3 — Análisis (5 archivos, complejidad: S)
  src/services/AnalyticsService.ts, src/pages/Dashboard.tsx,
  src/components/MetricsCard.tsx, src/hooks/useMetrics.ts,
  src/components/ChartPanel.tsx

Grupo 4 — Auth (6 archivos, complejidad: L) ⚠ migrar primero
  src/services/AuthService.ts, src/middleware/requireAuth.ts,
  src/middleware/refreshToken.ts, src/pages/Login.tsx,
  src/pages/Signup.tsx, src/services/SessionService.ts

Grupo 5 — Notificaciones (8 archivos, complejidad: M)
  src/services/NotificationService.ts, src/services/EmailService.ts,
  src/services/PushService.ts, src/pages/NotificationPreferences.tsx,
  src/components/NotificationBell.tsx, src/hooks/useNotifications.ts,
  src/components/NotificationToast.tsx, src/services/WebhookService.ts

Grupo 6 — Admin (5 archivos, complejidad: M) ⚠ depende de Auth
  src/pages/AdminDashboard.tsx, src/pages/AdminUsers.tsx,
  src/services/AdminService.ts, src/components/AdminSidebar.tsx,
  src/middleware/requireAdmin.ts

Grupo 7 — Búsqueda (4 archivos, complejidad: S)
  src/services/SearchService.ts, src/pages/SearchResults.tsx,
  src/components/SearchBar.tsx, src/hooks/useSearch.ts

Grupo 8 — Onboarding (6 archivos, complejidad: M)
  src/services/OnboardingService.ts, src/pages/Welcome.tsx,
  src/pages/SetupWizard.tsx, src/components/ProgressTracker.tsx,
  src/hooks/useOnboardingState.ts, src/services/ChecklistService.ts

Nota de dependencia: el Grupo 6 (Admin) importa middleware del Grupo 4
(Auth). Se lanzará Auth primero y luego Admin una vez que el PR de Auth se integre.
Lanzar los 6 grupos restantes en paralelo de inmediato.

¿Iniciar 6 sesiones paralelas ahora + 2 secuenciales? (s/n)
Aprueba la agrupación y lanza las seis sesiones de una vez. Auth se ejecuta primero y luego Admin una vez que se fusione Auth.
4

Revisa y fusiona los resultados

Cada sesión abre su propia solicitud de extracción (PR). Como los paquetes son independientes, puedes revisarlas y fusionarlas en cualquier orden, pero fusiona primero Auth, ya que Admin depende de él, y ejecuta la CI completa después de cada fusión para detectar cualquier interacción inesperada.Una vez que se hayan fusionado las 8 PR de migración, usa una sesión de seguimiento para limpiar el código muerto: