Camino al examen · Bloque 1, Qué es el contexto y por qué se degrada
1.5 · Qué es compactar y qué se pierde al hacerlo2026-10-27
Dónde. Esta se lee. Al final hay dos pasos de cinco minutos en tu proyecto de verdad: mirar tu versión y comprobar dónde tienes escritas las normas que no se pueden perder.
Qué vas a entender. Qué hace Claude Code cuando la ventana se llena, qué vuelve a cargar desde el disco después y qué se queda solo en un resumen, y por qué eso decide dónde tienes que escribir las normas que importan.
Qué pasa cuando la ventana se llena
En la 1.4 apuntaste cuánto ocupa tu sesión al abrirla. A partir de ahí, cada fichero que Claude lee, cada orden que ejecuta y cada respuesta suya se suman, y en una sesión larga la ventana de contexto acaba llena. Claude Code no corta la sesión cuando eso pasa: sustituye la conversación por un resumen ordenado de lo ocurrido y sigue trabajando con él. V A eso se le llama compactar. Lo hace solo al acercarse al tope, y es lo mismo que pasa cuando lo pides tú con /compact. V
Cuándo ocurre depende del modelo. Si no has tocado nada, Claude Code compacta cuando la conversación llega al tope del modelo. Los modelos que traen de serie una ventana de 1 millón de tokens —los Fable, Sonnet 5 y posteriores, Haiku 5.5 y Opus 4.7 y posteriores— compactan un poco antes, hacia los 967.000. Si has apagado la ventana grande con CLAUDE_CODE_DISABLE_1M_CONTEXT=1, compactan en los 200.000. V Para ti significa que, con la ventana de 1 millón, puedes trabajar casi cinco veces más que con la de 200.000 antes de que tu conversación pase a ser un resumen.
La versión 2.1.311, del 26 de octubre, cambió dos cosas de este paso. Una sesión con la ventana normal que pasaba de 200.000 tokens se paraba con un mensaje que pedía créditos de uso para la ventana de 1 millón; ahora compacta y sigue. Y si la respuesta del modelo llega sin resumen, Claude Code suele pedirlo otra vez antes de sustituir la conversación. V
Lo que vuelve a cargarse desde el disco
Compactar no deja la sesión en blanco. Todo lo que Claude Code carga desde un fichero se vuelve a leer después del resumen, y eso coincide casi entero con lo que la 1.3 contaba como cargado al abrir: V
- las instrucciones del sistema y el estilo de salida, que siguen valiendo;
- el CLAUDE.md de la raíz del proyecto y las reglas que no llevan lista de rutas;
- la memoria automática;
- las descripciones de las skills, rehechas a partir de las que tengas ese momento, desde la versión 2.1.304;
- el plan que Claude escribió en el modo de planificación;
- una foto nueva del estado de git, si la sesión empezó con una.
Además, Claude Code vuelve a leer hasta cinco de los ficheros que se han leído o editado en la sesión, empezando por los modificados más recientemente. Un fichero de más de 5.000 tokens no vuelve con su contenido: vuelve solo su ruta, marcada como Referenced file en lugar de Read. V Las skills que se usaron vuelven también, pero recortadas: como mucho 5.000 tokens cada una y 25.000 entre todas, y si no caben se caen primero las que se usaron hace más tiempo. El recorte conserva el principio del fichero. V
Hasta la 2.1.311, si habías editado el CLAUDE.md o la memoria durante la sesión, justo después de una compactación automática Claude podía ver la versión vieja; esa versión lo arregla. V
Lo que se queda solo en el resumen
Todo lo demás pasa por el resumen, y del resumen solo sale lo que el resumen recoja. La documentación dice qué suele conservar: tus peticiones y los fragmentos de código importantes. Y avisa de lo que se puede perder: las instrucciones detalladas que diste al principio de la conversación. V
Hay tres cosas que parecen fijas y van por este camino:
- Lo que le dijiste a Claude en la conversación. Una norma tecleada en un mensaje, como «no toques la carpeta de migraciones», es conversación, y queda a merced del resumen.
- Los CLAUDE.md de las subcarpetas y las reglas con lista de rutas. Entran en la conversación cuando Claude toca un fichero de su carpeta, así que al compactar se resumen con todo lo demás. Vuelven a cargarse cuando Claude toque otra vez uno de esos ficheros, no antes. V
- Lo que añadieron los hooks durante la sesión, que también se resume. Solo vuelve a entrar entero lo que devuelva un hook de inicio de sesión preparado para dispararse al compactar. V
Es lo que contábamos en la pieza sobre compactar: el resumen decide qué sobrevive, y una norma que se cae del resumen deja de cumplirse sin que nadie lo note, porque el agente ya no sabe que existía.
Dónde tienes que escribir lo que no se puede perder
La consecuencia práctica sale de las dos listas: lo que vive en un fichero que se recarga sobrevive, y lo que vive en la conversación depende del resumen. Por eso la documentación pide poner las normas permanentes en el CLAUDE.md y no fiarlas al historial. V Si una regla con lista de rutas tiene que aguantar una compactación, la salida que da es quitarle las rutas o pasarla al CLAUDE.md de la raíz. V
Además puedes decidir qué guarda el resumen, de dos formas: V
- añadir al CLAUDE.md un apartado que se llame
Compact Instructions, con lo que el resumen tiene que conservar siempre; - compactar tú antes de que lo haga solo, con lo que quieres que se quede:
/compact céntrate en el arreglo del inicio de sesión.
Y si una skill tiene instrucciones que no se pueden perder, ponlas al principio de su SKILL.md, porque el recorte se queda con el principio. V En la 1.6 compactas a propósito y compruebas todo esto en tu propia sesión.
Haz esto
-
Mira qué versión tienes. Por debajo de la 2.1.311 te faltan los dos arreglos de esta sesión: el paro a los 200.000 tokens y el CLAUDE.md viejo tras compactar.
Terminal
claude --version
Tienes que ver: Un número de versión. Si es anterior a la 2.1.311, actualiza antes de la 1.6 con <code>claude update</code>.
-
Abre una sesión en la carpeta de tu proyecto y busca dónde están escritas las normas que no se pueden saltar.
Dentro de una sesión, en la carpeta de tu proyecto
/memory
Tienes que ver: La lista de ficheros de memoria de tu usuario y de tu proyecto. Abre el CLAUDE.md del proyecto y apunta qué normas están ahí. Las que sueles decirle a Claude en la conversación y no están en ningún fichero son las que una compactación se puede llevar.
Si no sale
- Después de una compactación, Claude dejó de cumplir algo que le habías pedido al principio de la sesión.
- Esa norma estaba solo en la conversación. Escríbela en el CLAUDE.md de la raíz del proyecto, que se vuelve a cargar desde el disco tras cada resumen, y si estaba en una regla con lista de rutas, quítale las rutas.
- Después de compactar, Claude no se acuerda del contenido de un fichero grande que había leído.
- Los ficheros de más de 5.000 tokens vuelven solo como ruta, con la marca
Referenced file. Pídele que lo lea otra vez, o solo el trozo que necesitas. - La sesión compacta, se vuelve a llenar enseguida y al final sale un error en lugar de seguir.
- Es lo que pasa cuando un solo fichero o una sola salida es tan grande que llena la ventana justo después de cada resumen: tras unos cuantos intentos, Claude Code deja de compactar para no dar vueltas. V Abre una sesión nueva y pide que lea solo la parte que necesitas, o encarga esa lectura a un subagente, que la hace en su propia ventana y te devuelve un resumen.
Comprobación
Al empezar una sesión larga escribes en el chat: «no toques nunca la carpeta <code>migraciones/</code>». Horas después, Claude Code compacta solo. ¿Dónde tendría que estar esa norma para seguir valiendo con seguridad después del resumen?
Ver la respuesta
- En el mismo chat, repetida cada cierto tiempo para que el resumen la recoja.
- En el CLAUDE.md de la raíz del proyecto, que se vuelve a leer desde el disco después de compactar.
- En una regla con lista de rutas que apunte a <code>migraciones/</code>.
- En ningún sitio: basta con subir el umbral con <code>/autocompact 1M</code> para que no compacte nunca.
Lo que vive en el CLAUDE.md de la raíz se recarga desde el disco tras cada compactación, así que no depende de lo que recoja el resumen. Repetirla en el chat solo aumenta las posibilidades de que el resumen la conserve, sin asegurarlo. Una regla con lista de rutas entra en la conversación cuando Claude toca un fichero de esa carpeta y se resume con el resto, y no vuelve hasta que Claude toque otro fichero de ahí. Y subir el umbral solo retrasa la compactación: Claude Code nunca lo deja por encima de la ventana del modelo, así que al llegar al tope compacta igual.
Esta pregunta la hemos escrito nosotros a partir del temario público. No reproducimos contenido del examen.
De dónde sale todo esto
- Claude Code · Recorrido por la ventana de contexto: qué sobrevive a la compactación · consultado el 2026-10-27
- Claude Code · Cómo funciona Claude Code: cuando el contexto se llena · consultado el 2026-10-27
- Claude Code · Configuración del modelo: umbrales de compactación automática · consultado el 2026-10-27
- Claude Code · Changelog, versión 2.1.311 · consultado el 26-oct-2026, consultado 2026-10-27
Siguiente: Compacta a propósito y compara el antes con el después — leerla