Qué se transfiere realmente
Devin Desktop mantiene tu contexto mediante dos mecanismos, y su documentación es inusualmente directa sobre en cuál confiar: "Existen dos mecanismos para esto en Devin Desktop: Memories (Memorias), que Cascade genera automáticamente, y Rules (Reglas), que el usuario define manualmente a nivel global, de espacio de trabajo o de sistema".
AGENTS.md se transfiere gratis, y esta es la gran noticia. Devin lo trata como una fuente de reglas de primer nivel: un archivo AGENTS.md es "descubierto automáticamente" y enviado "al mismo motor de reglas que alimenta .devin/rules/ (y el heredado .windsurf/rules/), solo que con el modo de activación inferido a partir de la ubicación del archivo en lugar del frontmatter". Los archivos en el nivel raíz siempre están activos; los archivos en subdirectorios se convierten en una regla glob "con un patrón autogenerado de <directory>/**". Y lo que es crítico para cualquiera que use el agente predeterminado actual: "El agente Devin Local lee AGENTS.md a través del sistema de reglas de Devin CLI".
Codex lee el mismo nombre de archivo. Su documentación comienza con "Codex lee los archivos AGENTS.md antes de realizar cualquier trabajo". Así que un solo archivo es leído por el Cascade heredado, por el agente Devin Local actual y por Codex. No hay nada que convertir.
Las reglas se transfieren, pero el modelo de activación no. Las reglas del espacio de trabajo de Devin declaran un modo en el frontmatter a través de un campo trigger, con cuatro valores y diferentes costos de contexto: always_on coloca "el contenido completo de la regla... en el prompt del sistema en cada mensaje"; model_decision muestra "solo la description... en el prompt del sistema" y carga el cuerpo cuando Cascade lo considera relevante; glob aplica la regla "cuando Cascade lee o edita un archivo que coincide con el patrón globs"; manual mantiene la regla fuera del prompt hasta que "la activas escribiendo @rule-name en el cuadro de entrada de Cascade".
Codex no tiene un panel de control equivalente. Construye una sola cadena de instrucciones por ejecución: a nivel global lee AGENTS.override.md o, en su defecto, AGENTS.md, y "Codex utiliza solo el primer archivo no vacío a este nivel". A nivel de proyecto, "desciende hasta tu directorio de trabajo actual", verificando cada directorio e incluyendo "como máximo un archivo por directorio". Luego los fusiona: "Codex concatena los archivos desde la raíz hacia abajo, uniéndolos con líneas en blanco. Los archivos más cercanos a tu directorio actual anulan las instrucciones anteriores porque aparecen más tarde en el prompt combinado".
La ubicación reemplaza al frontmatter. Ese es el verdadero trabajo de esta migración, y existe un límite para ello: "Codex omite los archivos vacíos y deja de agregar archivos una vez que el tamaño combinado alcanza el límite definido por project_doc_max_bytes (32 KiB por defecto)".
Las memorias no se transfieren, y de todos modos ya estaban aisladas. Las memorias de Cascade "están asociadas con el espacio de trabajo en el que se crearon y se almacenan localmente en ~/.codeium/windsurf/memories/", con dos límites expresados en una sola frase: "Las memorias generadas en un espacio de trabajo no están disponibles en otro, y no se confirman (commit) en tu repositorio". Devin añade, claramente: "Las memorias autogeneradas viven solo en tu máquina".
Tampoco hay un importador en el que apoyarse. El flujo de importación de Codex nombra explícitamente sus fuentes compatibles: la aplicación de escritorio "puede importar desde Claude Code, Claude Cowork o Cursor", y la CLI "puede importar desde Claude Code o Cursor". Devin no está en ninguna de las dos listas, lo cual es importante saber antes de buscar un botón. Lo que Codex puede importar desde Cursor y Claude cubre ese flujo si también resulta que vienes de una de esas herramientas.
La migración manual
Paso 1: Averigua qué agente ha estado leyendo tu contexto y luego haz un inventario
Abre el panel de Personalizaciones (Customizations) en Cascade, o la Configuración de Devin (Devin Settings), y observa qué hay realmente allí. La documentación de Devin describe ambas interfaces: se puede "acceder y configurar las memorias y reglas en cualquier momento haciendo clic en el icono de Customizations en el menú deslizante superior derecho en Cascade, o a través de 'Devin - Settings'".
Luego recorre cuatro ubicaciones, porque las reglas viven en más lugares de los que la gente espera:
~/.codeium/windsurf/memories/global_rules.md: "Un solo archivo, aplicado en todos los espacios de trabajo. Siempre activo. Limitado a 6,000 caracteres". Ten en cuenta la ruta: el archivo de reglas globales se encuentra dentro del directorio de memorias, que es una razón común por la que la gente piensa que no tiene reglas globales..devin/rules/*.mden el espacio de trabajo, "(preferido)", con.windsurf/rules/*.mdcomo alternativa y "limitado a 12,000 caracteres por archivo".- La raíz del espacio de trabajo, donde "también se sigue leyendo el archivo único heredado
.windsurfrulesen la raíz del espacio de trabajo". - Reglas del sistema gestionadas por la empresa bajo una ruta como
/etc/devin/rules/, que son "desplegadas por el departamento de TI, de solo lectura para los usuarios finales" y "se fusionan con las reglas del espacio de trabajo y globales, proporcionando contexto adicional a Cascade sin anular las reglas definidas por el usuario". Si existen, no te corresponde a ti moverlas; repórtalas a quien gestione el despliegue.
Otro detalle de descubrimiento a verificar: Devin busca "hasta el directorio raíz de git para encontrar reglas en directorios padres", pero "cuando creas una nueva regla, se guardará en el directorio .devin/rules de tu espacio de trabajo actual, no necesariamente en la raíz de git". En un monorrepositorio, esto significa que las reglas pueden estar dispersas en subdirectorios en los que no habías pensado.
En cuanto a las memorias, léelas y copia ahora mismo en texto todo lo que valga la pena conservar. No hay opción de exportación, no están en tu repositorio y, si el espacio de trabajo al que pertenecen cambia, perderás la asociación.
Paso 2: Unifica cuatro modos de activación en una sola cadena concatenada
Clasifica cada regla que vayas a conservar según su valor de trigger (activador) y asigna un destino a cada modo:
always_on va en el archivo AGENTS.md de la raíz. Ambas herramientas tratan un archivo a nivel de raíz como incondicional, por lo que se trata de una copia directa. Vigila el total: Devin permitía 6,000 caracteres a nivel global y 12,000 por archivo de espacio de trabajo, mientras que Codex deja de añadir contenido al alcanzar los 32 KiB combinados, y su recomendación cuando alcanzas el límite es "aumentar el límite o dividir las instrucciones en directorios anidados".
glob se convierte en una ubicación de directorio. Una regla con alcance en src/**/*.ts se convierte en un archivo AGENTS.md dentro de ese directorio, que Codex detectará cuando el directorio de trabajo esté en él o por debajo de él. Este es el modo que se convierte de forma más limpia, ya que Devin ya trata los archivos AGENTS.md de los subdirectorios como globs con un patrón autogenerado <directory>/**.
model_decision no tiene un equivalente directo, y este es el único lugar donde hay que pensar en lugar de simplemente traducir. La regla estaba en el prompt solo como una descripción, y el cuerpo se cargaba según la relevancia. En Codex tú eliges: promoverla a incondicional en el AGENTS.md más cercano si es lo suficientemente importante como para aplicarse siempre, o sacarla por completo de las instrucciones y expresarla como una habilidad (skill), que es hacia donde apunta el propio asistente de migración de Devin para las memorias de Cascade. Promover todo es el error típico: es la forma más rápida de alcanzar el límite de 32 KiB con material que solo importaba ocasionalmente. Si la distinción entre una instrucción y una capacidad bajo demanda no te resulta familiar, por qué las habilidades de los agentes no son memoria marca la diferencia.
Las reglas manual eran cosas que invocabas deliberadamente. No pertenecen en absoluto a una cadena de instrucciones que se carga siempre. Consérvalas como documentación para pegar o como una habilidad.
Por último, utiliza AGENTS.override.md de la forma en que Codex lo diseñó: "Usa ~/.codex/AGENTS.override.md cuando necesites una anulación global temporal sin eliminar el archivo base". Es una buena opción para las preferencias personales que solían vivir en global_rules.md, sin que esas preferencias se filtren en un repositorio.
Una última comprobación antes de darlo por terminado. La propia documentación de Codex traza el mismo límite que la de Devin, y casi con las mismas palabras: "Mantén las directrices obligatorias del equipo en AGENTS.md o en la documentación registrada en el repositorio. Trata las memorias como una capa de recuerdo útil, no como la única fuente para las reglas que siempre deben aplicarse". Si una regla debe cumplirse siempre, pertenece al archivo, no a la memoria generada de ninguna de las dos herramientas. Si Codex todavía parece ignorar un archivo guardado, por qué Codex omite las reglas de AGENTS.md cubre las causas habituales.
La mejor manera: coloca la parte aprendida donde ningún agente sea su dueño
Los pasos 1 y 2 mueven todo lo que alguna vez fue un archivo. Lo que no pueden mover es la capa de la que ambos proveedores te dicen que no dependas (y ambos lo hacen). La recomendación de Devin es "escribirla como una regla o agregarla a AGENTS.md en tu repositorio en lugar de confiar en las memorias autogeneradas", porque "las reglas están controladas por versiones, se pueden compartir con tu equipo y te brindan un control explícito sobre la activación". Mientras tanto, las memorias locales de Codex están "desactivadas por defecto", viven en ~/.codex/memories/ como "estado generado" y omiten por completo un paso en segundo plano "cuando el porcentaje restante de tu límite de tarifa de Codex está por debajo del umbral configurado", lo que significa que tus sesiones más ocupadas son las que tienen menos probabilidades de ser registradas.
Así que, en ambos lados, el conocimiento acumulado es local de la máquina, generado o explícitamente no recomendado como fuente de verdad. Las instrucciones pertenecen al repositorio. La parte aprendida pertenece a un lugar que ningún editor controle.
MemoryLake es ese lugar: una capa de memoria que te pertenece, leída por cualquier agente que estés ejecutando a través de una API en lugar de a través del directorio privado de una sola herramienta. Tres pasos.
Paso 1: Crea una clave API
Inicia sesión y crea una clave API desde la configuración de tu espacio de trabajo. Es tuya y no del editor, por lo que un cambio futuro no la invalidará.

Paso 2: Sube tus primeras memorias
Comienza con lo que copiaste de las memorias de Cascade, luego agrega el material que nunca encajó en un archivo de reglas: qué enfoques ya intentó y rechazó el equipo, por qué un módulo está estructurado de esa manera, los comentarios de revisión que se repiten constantemente, la restricción que es obvia para cualquiera que lleve un año aquí. Los archivos se suben tal como están, incluidos los multimodales, por lo que un diagrama de arquitectura o una hoja de cálculo que codifique una convención se pueden subir directamente.

Paso 3: Conecta tu IA y agentes
Conecta Codex y mantén conectado Devin Desktop si todavía lo usas. A partir de ese momento, la capa aprendida se lee desde un solo lugar, por lo que ejecutar ambas herramientas durante una transición deja de significar el mantenimiento de dos conjuntos de contexto.

Tres límites. MemoryLake no lee ni escribe en ~/.codeium/windsurf/memories/ ni en ~/.codex/memories/; esos son los estados generados de cada herramienta, que es exactamente la razón por la cual el Paso 1 de la migración manual es manual. No cambia la forma en que Codex construye su cadena de instrucciones ni cómo se aplica el límite de 32 KiB. Y no es un sustituto de AGENTS.md: las reglas que deben aplicarse para todos pertenecen al repositorio donde los compañeros de equipo y la revisión de código puedan verlas.
Qué cambia esto en la práctica
De inmediato, cambia la secuencia. Auditas qué agente ha estado leyendo tu contexto, mueves AGENTS.md sin tocarlo, unificas los cuatro modos de activación deliberadamente en lugar de volcar todo en un solo archivo raíz, y mantienes la parte aprendida fuera de ambas herramientas.
A lo largo de unos meses, cambia lo que cuesta la próxima transición. Esta migración tiene una característica inusual: la herramienta de origen ya ha dejado obsoleto su propio sistema de memoria en favor de los archivos, y la herramienta de destino incluye las memorias locales desactivadas con una advertencia de no tratarlas como autoritativas. Que dos proveedores independientes lleguen a la misma conclusión es una señal bastante clara de dónde debe residir el conocimiento duradero, y ninguna de las respuestas es "inside the editor".
También elimina el costo de usar múltiples herramientas durante el período de transición, que para la mayoría de los equipos es más largo de lo planeado. Las memorias de Devin son por espacio de trabajo y por máquina; las memorias de Codex son por máquina y están desactivadas por defecto. Ejecutar ambas sin una capa externa significa que el mismo contexto se vuelve a enseñar en dos lugares, que es el patrón descrito en lo que los agentes de programación realmente leen.
Buenas prácticas después del cambio
Mantén un solo AGENTS.md en la raíz y distribuye la especificidad hacia abajo en el árbol. Codex incluye como máximo un archivo por directorio y permite que los archivos más profundos anulen a los más superficiales, por lo que el árbol es ahora tu mecanismo de alcance.
Vigila el límite combinado de 32 KiB. Codex deja de añadir contenido cuando se alcanza, y el fallo es un truncamiento silencioso, no un error.
No portes las reglas model_decision promoviéndolas todas. Ese modo existía para mantener el contexto económico. Promover todo consume el presupuesto que acabas de heredar.
Deja .windsurfrules donde está hasta que hayas verificado la nueva cadena. Devin todavía lo lee, por lo que es una alternativa funcional durante la transición, pero no lo consideres como el hogar a largo plazo.
Divide las reglas por tema, un archivo por cada asunto. La recomendación de Devin de mantener las reglas "simples, concisas y específicas" se aplica igual de bien a Codex, y los archivos organizados por temas son los que hacen legible un modelo de alcance basado en directorios.
Toma una decisión deliberada sobre las memorias locales de Codex. Están desactivadas por defecto. Si las activas, recuerda el comportamiento documentado: estado generado, no apto para edición manual, se omite en sesiones cortas y se omite por completo cuando el margen de tu límite de tarifa es bajo. Los síntomas relacionados se cubren en por qué Codex olvida el contexto del proyecto.
Conclusión
La sorpresa en esta migración es no estar del lado de Codex. Es que el agente predeterminado de Devin Desktop no conserva las memorias, lo que significa que la capa que la gente más teme perder puede haber estado ya fuera de juego. Una vez establecido esto, el resto es mecánico: AGENTS.md se mueve sin tocarse, las reglas del espacio de trabajo se unifican de cuatro modos de activación a un árbol de directorios con un límite de bytes, y las memorias se extraen a mano porque nada más las leerá por ti.
La parte que vale la pena hacer correctamente es la última. Ambos proveedores desaconsejan su propia memoria generada y apuntan hacia los archivos registrados en el repositorio, y los archivos son el hogar adecuado para las reglas. Para todo lo que sea conocimiento en lugar de una regla, la respuesta duradera es una capa que sobreviva a cualquier editor que estés usando este trimestre.