La conversación ya va para largo. Una de las soluciones usted ya la descartó y explicó por qué, y una decena de mensajes después el agente propone exactamente la misma. El primer impulso se entiende: borrarlo todo y empezar de nuevo.
Que vuelva una solución descartada es una señal clara, pero todavía no es un diagnóstico. Por una sola respuesta no se puede decir que la culpa sea de la conversación acumulada. Lo mismo se observa cuando el planteamiento es contradictorio o cuando el agente está mirando una versión del archivo de hace media hora.
Veamos tres comandos que trabajan con la propia conversación: /context muestra qué ocupa la ventana, /compact reduce el historial a un resumen breve y /clear empieza una conversación nueva. Más interesante que su sintaxis es elegir entre ellos: qué guardar antes, qué comprobar después y cómo darse cuenta de que el problema no está en el tamaño de la conversación en absoluto.
Primero encuentre el problema
Antes de compactar o limpiar nada, distinga cuatro situaciones. Desde fuera se parecen, en las cuatro el agente "no escucha", pero cada una pide algo distinto.
- Faltan datos de partida. Nadie ha indicado la regla por la que se otorga la recompensa, y en los archivos leídos no está. Resumir la conversación no va a inventar lo que nunca estuvo en ella: lo que falta habrá que darlo.
- Información desactualizada. En la conversación está el contenido de un archivo leído hace media hora, y en el disco ya es otro. Aquí no ayuda compactar, sino volver a leerlo.
- Un planteamiento contradictorio. En el chat se dijo una cosa y en la especificación guardada dice otra. Decida usted qué requisito es el vigente y corrija la fuente. Un archivo no tiene razón automáticamente solo por ser un archivo.
- Ruido acumulado. Muchas variantes descartadas, salidas de comandos largas, discusión de archivos que no tienen que ver con la tarea. Aquí sí tiene sentido trabajar con el contexto.
Lo llena que esté la ventana no es un quinto punto de esta lista ni la explicación de cualquier error. Un porcentaje alto no demuestra por sí solo que el agente se haya equivocado por eso, y uno bajo no demuestra que la conversación esté bien. El orden de comprobación es sencillo: el planteamiento, si los archivos están al día, si las salidas están al día, y solo después el estado de la propia conversación.
Pida a Claude Code que diga el objetivo actual de la tarea, sus restricciones y los archivos en los que se basa la solución que propone. Compare la respuesta con lo que usted mismo ve. Si aparece un archivo que la tarea no toca, o el objetivo suena distinto de como usted lo planteó, ya sabe qué hay que arreglar, y bien puede no ser el tamaño de la conversación. La misma pregunta le servirá después de compactar y al empezar una conversación nueva.
Mire lo llena que está la ventana
Si, aun así, la sospecha recae sobre la propia conversación, mire /context. El comando muestra qué ocupa la ventana, desglosado por categorías: la parte del sistema, las instrucciones del proyecto, los archivos leídos y la salida de comandos, los mensajes, el espacio libre. Qué información ya no le hace falta a la tarea lo decide usted. El comando no valora el sentido de lo leído, y la línea general de mensajes no le dirá qué archivo concreto sobra.
No existe un umbral universal del tipo "por encima de tal porcentaje hay que compactar", y además el tamaño de la ventana depende del modelo y de la configuración. Fíjese en la composición, no en el porcentaje. Y tenga en cuenta que cerrar una pestaña del editor no saca de la conversación lo que ya se leyó.
Siga con la tarea después de compactar
El comando /compact reduce el historial a un resumen breve, y usted sigue en la misma tarea. Claude Code también lo hace por su cuenta a medida que se llena la ventana, así que el comando se lanza a mano cuando se quiere elegir el momento (p. ej. antes de una parte nueva y grande del trabajo) y fijar el foco.
La limitación principal: lo que se conserva es un resumen, no la conversación. Con los detalles que quedan fuera del resumen no se puede contar como con el contenido de la ventana. Y la frase "conserva tales condiciones" no garantiza que el resumen esté completo; es una petición, no un mecanismo.
Qué guardar
Antes del comando, reúna una nota breve sobre la tarea: el objetivo, los límites, las decisiones tomadas, los hechos comprobados, el siguiente paso. Un par de minutos. A cambio, la nota se puede contrastar con los archivos y con la salida de las comprobaciones, cosa que no pasa con el recuerdo de la conversación. No hace falta un archivo aparte para ella, basta con el documento de la tarea que ya existe.
Este es el estado de una tarea de práctica sobre una recompensa que se otorga dos veces; es un ejemplo, no el informe de una comprobación realizada:
Objetivo: en una partida terminada la recompensa se otorga una sola vez; una partida nueva vuelve a permitir otorgarla.
Límites: src/reward-flow.js y la comprobación existente de la recompensa; no cambiar el diseño visual.
Confirmado: después de la primera concesión, una segunda pulsación en la misma partida vuelve a aumentar la puntuación.
Fuente: el registro de la reproducción y el estado inicial están en TASK_SPEC.md.
Descartado: ocultar el botón sin corregir cómo se procesa la pulsación repetida.
Siguiente paso: revisar el manejador y proponer una edición; la corrección y los tests todavía no están hechos.Fíjese en la última línea. Una reproducción confirmada y una corrección terminada son cosas distintas, y en la nota eso tiene que verse; si no, después de compactar "lo comprobamos" se convierte fácilmente en "lo arreglamos". El documento de la tarea aquí es de práctica, sustituya la ruta por la suya.
Cuando la nota esté contrastada, puede compactar con un foco:
/compact Céntrate en corregir la recompensa que se otorga dos veces. Conserva el objetivo, los límites de TASK_SPEC.md, la reproducción confirmada, la solución descartada y el siguiente paso. Indica que la corrección y los tests todavía no están hechos.Qué comprobar después
Después de compactar, no retome el hilo a mitad de frase. Primero devuelva a la conversación lo que tiene que ser exacto y haga la pregunta de control:
Lea TASK_SPEC.md y la versión actual de src/reward-flow.js. Diga brevemente la restricción y el siguiente paso. Si el resumen no coincide con los archivos, señale la discrepancia. De momento no cambie el código.Contraste la respuesta con la nota línea por línea, no por la impresión general. En nuestro ejemplo son tres comprobaciones:
- según la línea "Siguiente paso", la corrección y los tests no se dan por hechos;
- de "Límites" sigue en pie la prohibición de tocar el diseño visual;
- la condición sobre la partida nueva del "Objetivo" no se ha perdido.
El agente usará sus propias formulaciones, y es normal. Si ha desaparecido una condición, recupérela de la fuente antes de cualquier edición. Lo que usted comprueba con esto es el estado de la conversación, no el código: este cotejo no demuestra que la siguiente edición sea correcta.
La compactación solo trabaja con el historial de la conversación. No revierte las ediciones en los archivos ni sustituye a Git. El CLAUDE.md raíz se vuelve a cargar, así que las reglas del proyecto sobreviven a la compactación, pero el estado temporal de la tarea no tiene cabida en ese archivo: una línea como "ahora estoy arreglando la recompensa" seguirá ahí cuando la tarea ya haya terminado. La información que el agente da después de compactar no se vuelve fiable automáticamente. Averigüe de dónde sale: del resumen, de un archivo recién leído o de una ejecución nueva.
Empiece una tarea nueva
El comando /clear empieza una conversación nueva sin los mensajes anteriores. Los archivos en el disco y las instrucciones del proyecto se quedan, y la memoria automática, si está activada, también puede usarse, así que "desde cero" aquí se refiere a los mensajes. La conversación anterior no se borra: se puede volver a ella con /resume.
Es fácil confundirlo con claude --continue, aunque hacen cosas opuestas. /clear se escribe dentro de la sesión para dejar atrás el historial acumulado. claude --continue se escribe en la terminal al arrancar para volver a la última conversación de esa carpeta con todo su historial. Si lo que estorbaba era justamente la conversación, --continue le devolverá exactamente a ella.
Antes de limpiar, guarde lo que vaya a necesitar después: la nota, las rutas necesarias, la salida de la comprobación. Una conversación nueva necesita un planteamiento, no una insinuación: el objetivo, las restricciones y las rutas. Para señalar un archivo concreto sirve @archivo; solo tenga en cuenta que la mención orienta la lectura, pero no limita el acceso al resto de los archivos.
Elija una acción
La secuencia sale corta: parar, hacer la pregunta de control, mirar lo llena que está la ventana si no está claro qué la ocupa, elegir una sola acción, comprobar el resultado. Contar mensajes no sirve de nada, hay que mirar de qué se compone la conversación y qué va a hacer usted a continuación.
| Situación | Acción y motivo |
|---|---|
| El agente no recibió la regla de concesión | Pasarle la regla y el archivo; compactar no va a llenar ese hueco |
| La respuesta se apoya en un archivo que ha cambiado desde entonces | Pedir que vuelva a leer la versión actual; no hace falta compactar |
En el chat se acordó una cosa y en TASK_SPEC.md dice otra | Decidir qué requisito es el vigente y corregir la fuente |
| La misma tarea, muchas variantes descartadas, poco espacio útil | Nota, /compact con foco, pregunta de control |
| Después de compactar desapareció la prohibición de tocar el módulo vecino | Volver a leer la fuente de las restricciones y comprobar que el agente lo ha entendido antes de editar |
| Empieza una tarea independiente sobre el diseño visual | Guardar el resultado que haga falta, /clear, planteamiento nuevo |
Qué cambia esto en el trabajo
Los tres comandos, por sí solos, no arreglan nada. Lo que cambia es cómo lleva usted una tarea larga:
- una respuesta rara lleva primero al planteamiento y a si los archivos están al día, y solo después a la conversación;
- antes de compactar o limpiar hay una nota contrastada con los archivos, y después de compactar la respuesta se contrasta con ella línea por línea;
- una tarea nueva recibe su propio planteamiento, no los restos de la conversación anterior.
La diferencia se ve en una sola petición. Antes:
Te has confundido, empecemos de nuevo.Después:
Ahora la tarea es corregir la recompensa que se otorga dos veces en src/reward-flow.js.
Lea TASK_SPEC.md, diga la restricción y el siguiente paso. De momento no cambie el código.La segunda formulación obtiene una respuesta verificable: la restricción y el paso que nombra el agente los contrasta usted con los archivos y ve enseguida cualquier discrepancia. La primera frase no hay con qué contrastarla.
GO TO FULL VERSION