MemoryLake
Volver a todos los artículos
Tutorial27 de agosto de 2026·13 min de lectura

Cómo migrar de Kiro a Claude Code sin perder el contexto (2026)

La mayoría de las migraciones entre agentes de programación mueven archivos. Esta mueve un sistema de memoria a un sistema de memoria más pequeño, y la pregunta interesante es qué partes no tienen espacio en el otro lado.

Claude Code es el primer destino común que escribe memoria por sí mismo. Su documentación enumera dos mecanismos: "archivos CLAUDE.md: instrucciones que escribes para darle a Claude un contexto persistente" y "Memoria automática: notas que Claude escribe por sí mismo basándose en tus correcciones y preferencias". Así que, a diferencia de mudarse a un editor cuyo contexto duradero son puramente reglas controladas por versiones, no te encuentras ante un contenedor vacío.

Sin embargo, vas a pasar de seis capas a cuatro categorías. Kiro Crew mantiene preferencias, proyectos, historial por niveles, un almacén semántico controlado por confianza, un almacén episódico con búsqueda vectorial y un almacén de lecciones con la garantía de anulación más sólida en cualquiera de los dos productos. La memoria automática de Claude Code registra cuatro tipos de notas. El mapeo tiene pérdidas de formas específicas y predecibles, y una de las pérdidas es una red de seguridad que echarás de menos.

Esto cubre lo que se transfiere, dónde divergen realmente los dos diseños y qué hacer con las partes que no encajan en ningún sitio. El otro destino para la misma fuente se cubre en cómo migrar de Kiro a Cursor, lo cual es un problema diferente porque el índice de documentación de Cursor no tiene ninguna página de memoria.

Qué se transfiere realmente

Tus archivos de dirección (steering), como CLAUDE.md más reglas con alcance de ruta. Kiro carga .kiro/steering/ para el espacio de trabajo y ~/.kiro/steering/ globalmente, priorizando el espacio de trabajo en caso de conflicto. Los equivalentes de Claude Code son ./CLAUDE.md para "Instrucciones compartidas por el equipo para el proyecto" y ~/.claude/CLAUDE.md para "Preferencias personales para todos los proyectos", pero ten en cuenta que la resolución difiere: Claude Code concatena en orden de carga en lugar de anular, y advierte que "si dos reglas se contradicen entre sí, Claude puede elegir una arbitrariamente".

Los modos de inclusión de Kiro tienen un hogar parcial. Los archivos en .claude/rules/ aceptan un campo de frontmatter paths: con patrones glob y "solo se aplican cuando Claude está trabajando con archivos que coinciden con los patrones especificados", lo cual es cercano al fileMatch de Kiro. El modo always de Kiro se convierte en un archivo ordinario que siempre se carga. Los modos manual y auto de Kiro —invocados con #name o seleccionados por el agente a partir de una descripción— no tienen un equivalente directo en las reglas, por lo que esos archivos se convierten en habilidades o en texto siempre activo que deberías recortar.

Tu AGENTS.md, con una advertencia. Kiro lo lee y señala que "los archivos AGENTS.md no admiten modos de inclusión y siempre se incluyen". Claude Code "lee CLAUDE.md, no AGENTS.md". El puente documentado es una importación @AGENTS.md de una sola línea en la parte superior de CLAUDE.md, tras lo cual el archivo importado se carga al inicio de la sesión. Mantén un solo archivo como autoridad; las importaciones se resuelven hasta "una profundidad máxima de cuatro saltos", y cada archivo importado entra en el contexto al inicio.

Tus habilidades (Skills), como un movimiento de directorio. Ambos se basan en el mismo estándar abierto. Los directorios de habilidades de Kiro se convierten en ~/.claude/skills/<name>/SKILL.md para habilidades personales y .claude/skills/<name>/SKILL.md para habilidades de proyecto. Cuidado con la precedencia, que invierte el comportamiento de dirección de Kiro: la regla de Claude Code es que lo empresarial anula a lo personal y lo personal anula al proyecto, por lo que una habilidad personal supera a una habilidad de proyecto con el mismo nombre.

Tus especificaciones, como archivos legibles. .kiro/specs/<name>/ contiene requirements.md, design.md y tasks.md — markdown en tu repositorio, que sigue siendo legible después de la mudanza. El flujo de trabajo de tres fases que los rodea no se traslada.

Tu memoria aprendida, en un contenedor real pero más simple. Esta es la parte nueva, y merece su propia sección.

Nada más se transfiere limpiamente, y cuatro cosas se comportan de manera diferente.

Seis capas se reducen a cuatro categorías. La memoria automática de Claude Code registra un campo type de user ("tu rol, experiencia y preferencias de trabajo"), feedback ("correcciones que le das a Claude y enfoques que confirmas"), project ("trabajo en curso, plazos y decisiones que Claude no puede derivar del código o del historial de git") y reference ("dónde encontrar información fuera del proyecto"). El archivo preferences.md de Kiro se mapea en user; sus lecciones se mapean en feedback; projects.md y el historial se mapean aproximadamente en project. Sus almacenes semánticos y episódicos —tablas SQLite con búsqueda vectorial, importancia por entrada y recuperación de las 8 mejores por consulta— no tienen contraparte. Claude Code mantiene un índice MEMORY.md más un archivo de tema por memoria, y "no carga archivos de tema como user_role.md... al inicio".

Tus lecciones pierden su garantía. Esta es la pérdida que debes planificar. Kiro almacena las lecciones como entradas semánticas con confianza 1.0, elimina duplicados por subcadena y superposición de temas, las limita a 50 y las inyecta "como un bloque distinto de [Learned corrections]" —un bloque cuyo propio texto dice "SIEMPRE sigue estas. Anulan el comportamiento predeterminado". Su orden de resolución de conflictos coloca las lecciones en la posición uno, por encima de todo lo demás. El tipo feedback de Claude Code es una nota en un archivo, cargada con todo lo demás, y su documentación es explícita al señalar que el contenido de las instrucciones es "contexto en lugar de configuración forzada". Misma información, promesa mucho más débil.

La degradación progresiva se sustituye por un abismo. Kiro se desvanece gradualmente: el historial cae a "Primera entrada por día + recuento" a los 14 días, a "Solo fecha + recuento de entradas" a los 61, deja de cargarse a los 181 y se "Elimina del disco" a los 365; las entradas episódicas se degradan en una curva explícita —"50% a los ~23 días, 10% a los ~77 días"— y el almacén recorta primero las de "menor importancia, más antiguas" al llegar a las 10,000 entradas. Claude Code no tiene degradación. Sus archivos "permanecen hasta que tú o Claude los editen o eliminen", y se excluyen deliberadamente del barrido de retención de transcripciones de sesiones. Lo que tiene en su lugar es un límite de lectura: "las primeras 200 líneas de MEMORY.md, o los primeros 25KB, lo que ocurra primero", y si el índice se excede, "la escritura aún tiene éxito" pero "todo lo que pase del límite se descarta en la siguiente carga". Desvanecimiento gradual fuera, truncamiento estricto dentro.

El control por umbral de confianza desaparece. Kiro requiere "confianza ≥ 0.8" para las escrituras de LLM en la memoria semántica, con "Las escrituras explícitas del usuario siempre ganan independientemente de la confianza". Claude Code decide de manera diferente: "Claude no guarda algo en cada sesión. Decide qué vale la pena recordar basándose en si la información sería útil en una conversación futura". Un juicio de valor en lugar de un umbral —ni mejor ni peor, pero no es un control sobre el que puedas razonar.

La migración manual

Paso 1: Lee las capas que no tienen destino, antes de dejar de usar Kiro

Toma una instantánea primero: kirocrew snapshot empaqueta la memoria, el espacio de trabajo, los crons, la configuración, las habilidades y las notificaciones en un archivo tarball. Solo Kiro lo lee, así que trátalo como una copia de seguridad en lugar de un archivo de importación —y la tarea diaria integrada de Kiro "mantiene las últimas 7 instantáneas", así que no asumas que la de la semana pasada todavía está allí. Una advertencia de la propia documentación de Kiro: "Las instantáneas contienen datos confidenciales (claves de seguridad utilizadas para la integridad del registro de auditoría)".

Luego lee cuatro cosas, en este orden.

Tus lecciones. Limitadas a 50, confianza 1.0, y la capa de mayor prioridad en Kiro. Estas son las correcciones que expresaste directamente o que Kiro extrajo de un patrón en el que lo corregías. Nada en tu repositorio las insinúa, y están a punto de convertirse en notas ordinarias.

preferences.md y projects.md. Ambos son "reemplazados por completo por el consolidador cada 30 mensajes —no son de solo adición", lo que significa que lo que estás leyendo es el modelo actual que Kiro tiene de ti en lugar de un registro. También están limitados a 4,250 y 6,400 caracteres, por lo que esta es una lectura corta con una relación señal-ruido inusualmente alta.

Tus entradas episódicas. Fragmentos cortos, de 10 a 2,000 caracteres cada uno, hasta 10,000 de ellos. No los leerás todos; consulta los proyectos en los que todavía estás y échales un vistazo, ya que la recuperación devuelve los 8 mejores por consulta.

La memoria aprendida de Kiro Web, si la usaste. En Configuración, bajo Memoria. La propia tabla de Kiro traza la línea que vale la pena interiorizar: la memoria es lo que "el agente aprende automáticamente a medida que trabajas y das retroalimentación", donde el usuario controla las "Eliminaciones"; la dirección (steering) es lo que "Escribes explícitamente", donde el usuario controla "Todas las ediciones". Solo la primera mitad está en riesgo aquí.

Paso 2: Asienta la mitad escrita, luego establece expectativas para la mitad escrita para ti

Instrucciones primero. Convierte .kiro/steering/ en CLAUDE.md más archivos .claude/rules/, usando patrones glob paths: dondequiera que un archivo de dirección tuviera un patrón fileMatch. Ejecuta /init si deseas un punto de partida generado; este "sugiere mejoras en lugar de sobrescribir" un archivo existente.

Luego recorta. La guía de Claude Code es "apuntar a menos de 200 líneas por archivo CLAUDE.md" porque "Los archivos más largos consumen más contexto y reducen la adherencia". Un directorio de dirección que creció hasta una docena de archivos siempre activos no sobrevivirá intacto a ese presupuesto, y la decisión honesta es decidir qué descartar en lugar de dejar que el límite de lectura decida por ti.

Confirma lo que realmente se cargó con /context y verifica la lista bajo Memory files. Esa es la respuesta autorizada, y es el primer paso de depuración documentado.

Luego la memoria automática, y dale una semana. Está activada por defecto. Su almacenamiento es ~/.claude/projects/<project>/memory/, donde <project> "se deriva del repositorio de git, por lo que todos los árboles de trabajo (worktrees) y subdirectorios dentro del mismo repositorio comparten un directorio de memoria automática".

Dos propiedades que debes interiorizar ahora en lugar de descubrir más tarde. Es deliberadamente complementaria a tus archivos de instrucciones —Claude "omite cualquier cosa que pueda derivar del código base" y "omite cualquier cosa que tus archivos CLAUDE.md ya digan"— por lo que el directorio de memoria contiene exactamente lo que tu dirección convertida no contiene. Y no es portátil: "La memoria automática es local de la máquina" y "Los archivos no se comparten entre máquinas o entornos en la nube".

Así que el resumen honesto de la historia de portabilidad de esta migración es que te mudaste de un directorio de inicio a otro. La memoria de Kiro Crew vivía bajo ~/.kiro/; la de Claude Code vive bajo ~/.claude/. Ninguna viaja —la forma general de ese problema se encuentra en por qué Claude Code olvida el contexto del proyecto.

Ejecuta /memory después de una semana y lee lo que escribió. Luego vuelve a introducir tus lecciones de Kiro como contenido explícito, porque las notas de feedback que Claude escribe para sí mismo no son lo mismo que las reglas en las que insististe.

La mejor manera: mantén la mitad aprendida donde un directorio de inicio no pueda atraparla

Mira en qué consistió realmente esta migración. Los archivos de dirección se convirtieron limpiamente. Las habilidades necesitaron un movimiento de directorio. Las especificaciones siguieron siendo legibles. Y la parte que requirió un trabajo real —la parte sin un destino limpio— fueron seis capas de conocimiento aprendido alojadas bajo el directorio de inicio de un usuario en una máquina, que tuviste que leer a mano y volver a escribir.

Eso no es un problema de Kiro ni un problema de Claude Code. Ambos construyeron sistemas de memoria aprendida, ambos los mantienen locales por diseño, y ambas son opciones de ingeniería razonables. Simplemente significa que la única copia de por qué rechazaste un enfoque no debería vivir en ninguno de los dos.

Eso es lo que contiene MemoryLake: el conocimiento duradero de tu proyecto en una capa que tus herramientas consultan, para que el próximo cambio sea una preferencia en lugar de un ejercicio de transcripción. La configuración consta de tres pasos.

Paso 1: Crea una clave API

Inicia sesión y crea una clave API. Una sola credencial para todas las herramientas que conectes.

Creación de una clave API de MemoryLake
Creación de una clave API de MemoryLake

Paso 2: Sube tus primeras memorias

Entradas cortas, una afirmación cada una. Escribe estas directamente a partir de la lectura del Paso 1, mientras esté fresca:

Subiendo las primeras memorias a un espacio de trabajo de MemoryLake
Subiendo las primeras memorias a un espacio de trabajo de MemoryLake

Tus 50 lecciones, una por entrada. La capa de mayor prioridad en Kiro y lo menos reconstruible que posees.

Lo que dicen actualmente preferences.md y projects.md. Los archivos reemplazados por completo son cortos por diseño. Divídelos en afirmaciones en lugar de pegarlos.

Decisiones con la razón adjunta. "Hacemos cola para las escrituras porque la réplica se retrasa bajo carga". Una regla establece la política; solo la razón evita que la alternativa vuelva a surgir.

Enfoques ya probados y rechazados aquí. Ausentes de la dirección, ausentes de los mensajes de confirmación (commit), propuestos de nuevo en cada sesión.

Paso 3: Conecta tu IA y agentes

MemoryLake es accesible a través de MCP y de una API, y tanto Kiro como Claude Code admiten servidores MCP —por lo que puedes ejecutarlos en paralelo durante la transición sin mantener dos copias del mismo razonamiento, y otros asistentes leen la misma memoria a través de la API.

Conectando asistentes de IA y agentes a MemoryLake a través de MCP y la API
Conectando asistentes de IA y agentes a MemoryLake a través de MCP y la API

Tres límites honestos. MemoryLake no puede leer una instantánea de Crew, importar la memoria de Kiro Web, ni escribir tus archivos CLAUDE.md y de memoria automática —esas son superficies propias de cada producto, y el comportamiento del cargador descrito anteriormente es el suyo. Solo contiene lo que tú o tus agentes introducen en él, por lo que el Paso 2 es manual. Y las instrucciones son contexto en lugar de configuración forzada; para cualquier cosa que deba cumplirse siempre, la propia respuesta de Claude Code es un hook, no un archivo.

Qué cambia esto en la práctica

La conversión de la dirección es mayormente mecánica. fileMatch se convierte en un patrón glob paths:; lo que siempre está activo sigue estando siempre activo.

Las habilidades necesitan un movimiento de directorio y una verificación de precedencia. Lo personal supera al proyecto.

Tus correcciones pierden su bloque de anulación. Vuelve a formular las importantes como instrucciones explícitas, no como notas.

La poda automática se detiene. No más desvanecimiento por niveles —pero MEMORY.md se trunca de forma estricta al pasar de 200 líneas o 25KB.

La portabilidad no mejora. De un directorio de inicio a otro —el problema general en lo que realmente significa la memoria persistente.

Buenas prácticas para cambiar de Kiro a Claude Code

Toma una instantánea primero, y mantén el archivo tarball fuera de las unidades compartidas. Kiro advierte que contiene claves confidenciales.

Lee tus lecciones antes que cualquier otra cosa. Cincuenta entradas, máxima prioridad, sin garantía equivalente en el otro lado.

Vuelve a formular las lecciones como instrucciones, no como memoria. Una nota de feedback es contexto; una línea de CLAUDE.md que escribiste es intención.

Convierte la dirección fileMatch en reglas paths:, y recorta el resto. El objetivo de 200 líneas es una guía que deberías tratar como un presupuesto.

Verifica con /context, no con la memoria. La lista de archivos de memoria (Memory files) es lo que realmente se cargó.

Vigila la longitud de MEMORY.md. Pasado el límite de lectura, "todo lo que pase del límite se descarta en la siguiente carga".

No pegues el código base en CLAUDE.md. Ambos proveedores desaconsejan volver a exponer lo que el repositorio ya dice —el aspecto del costo se detalla en cómo evitar que Claude Code vuelva a leer tu código base.

Mantén el razonamiento fuera de ambas herramientas. Cada capa aquí tiene un límite, y el razonamiento es lo primero que se recorta —la versión general en por qué una ventana de contexto larga no es memoria.

Conclusión

La migración de Kiro a Claude Code es la primera en esta familia donde la mitad aprendida tiene un lugar a donde ir, y eso la hace más fácil y más engañosa al mismo tiempo. La dirección se convierte en CLAUDE.md más reglas con alcance de paths:, AGENTS.md se conecta a través de una importación de una sola línea, las habilidades se mueven carpeta por carpeta y las especificaciones siguen siendo legibles. La memoria automática está activada por defecto y comienza a registrar tus correcciones en una semana.

Las pérdidas son específicas. Seis capas se convierten en cuatro tipos de notas, y los almacenes semánticos y episódicos de Kiro —escrituras controladas por confianza, recuperación vectorial, importancia por entrada, curvas de degradación explícitas— no tienen contraparte. Tus lecciones pierden la garantía más sólida que ofrece cualquiera de los dos sistemas: un bloque inyectado diferenciado en la parte superior del orden de resolución de conflictos, que le indica al agente que estas anulan el comportamiento predeterminado. La degradación automática se sustituye por un límite de lectura estricto que descarta silenciosamente lo que esté más allá de las 200 líneas o 25KB. Y la portabilidad no mejora, porque ambos sistemas mantienen la memoria aprendida en un directorio de inicio en una sola máquina.

Así que toma la instantánea, lee tus cincuenta lecciones y tus dos archivos consolidados, convierte la dirección con el mapeo de patrones glob y vuelve a formular las correcciones que importaban como instrucciones en lugar de confiar en que se vuelvan a aprender. Luego, coloca las decisiones y los enfoques rechazados en una capa que ni ~/.kiro/ ni ~/.claude/ posean, y el próximo cambio te costará una tarde en lugar de un trimestre.

Preguntas frecuentes

¿Tiene Claude Code algo equivalente a la memoria de Kiro Crew?

En parte. La memoria automática de Claude Code está activada por defecto y almacena notas que Claude escribe para sí mismo en ~/.claude/projects/<project>/memory/, etiquetadas con un type de user, feedback, project o reference. Eso cubre las preferencias, lecciones y el contexto del proyecto de Kiro a un nivel más grueso. El almacén semántico clave-valor de Kiro y su almacén episódico con búsqueda vectorial e importancia por entrada no tienen contraparte.

¿Puedo copiar los archivos de memoria de Kiro en Claude Code?

No como un movimiento de archivos. kirocrew snapshot produce un archivo tarball que solo Kiro lee, y las capas de memoria de Kiro viven en tablas SQLite y archivos markdown bajo ~/.kiro/crew/workspace/memory/ con sus propios formatos y límites. Lee preferences.md, projects.md y tus lecciones, luego vuelve a introducir lo que importa como contenido de CLAUDE.md o en una capa de memoria separada.

¿Seguirán mis correcciones aprendidas anulando el comportamiento predeterminado?

No con la misma fuerza. Kiro inyecta las lecciones como un bloque diferenciado de [Learned corrections] en la parte superior de su orden de resolución de conflictos, almacenadas con una confianza de 1.0, donde las escrituras explícitas del usuario siempre ganan. Claude Code almacena las correcciones como notas de tipo feedback cargadas junto con todo lo demás, y su documentación describe las instrucciones como contexto en lugar de configuración forzada. Vuelve a formular las importantes explícitamente en CLAUDE.md.

¿Se degrada la memoria de Claude Code como la de Kiro?

No. Kiro desvanece el historial a través de cinco niveles y lo elimina del disco a los 365 días, y degrada las entradas episódicas en una curva explícita. Los archivos de memoria de Claude Code "permanecen hasta que tú o Claude los editen o eliminen" y se excluyen de su barrido de retención de transcripciones de sesiones. La restricción es, en cambio, un límite de lectura: solo las primeras 200 líneas de MEMORY.md, o los primeros 25KB, se cargan al inicio de la sesión, y el contenido que pase de ahí se descarta.

¿Cómo se mapean los modos de inclusión de dirección de Kiro a Claude Code?

always se convierte en un archivo de regla o CLAUDE.md ordinario que siempre se carga. fileMatch con un patrón se convierte en un archivo .claude/rules/ con un campo de frontmatter paths: de patrones glob, que se carga solo cuando Claude trabaja con archivos coincidentes. manual y auto no tienen un equivalente directo en las reglas —convierte esos en habilidades, o integra el contenido en un archivo siempre activo y recórtalo.

¿Se comparte mi memoria automática entre máquinas después de la mudanza?

No. La documentación de Claude Code establece que la memoria automática "es local de la máquina" y que "Los archivos no se comparten entre máquinas o entornos en la nube". Todos los árboles de trabajo (worktrees) y subdirectorios en el mismo repositorio de git comparten un directorio, ya que la ruta del proyecto se deriva del repositorio, pero una segunda máquina comienza vacía.