Trampas de escritura: archivos, ediciones paralelas y entregables perdidos
Un informe de éxito escrito por un subagente no prueba nada sobre el estado real de los archivos, ya que arranca en un contexto aislado sin acceso a lo que el agente principal ya leyó o escribió, y la única prueba fiable sigue siendo un diff verificado después, no el texto del informe.
Un subagente arranca con un contexto aislado y nuevo en cada llamada, salvo para un fork, que por el contrario hereda toda la conversación en curso. No ve ni el historial de la conversación principal, ni las skills ya invocadas, ni los archivos que el agente principal ya leyó. Este aislamiento no le impide consultar él mismo el disco: dispone de las mismas herramientas de lectura y ejecución que la conversación principal, y puede lanzar un git diff o releer un archivo para verificar su propio trabajo. Lo que falta es una mirada externa: un informe de éxito sigue siendo un texto producido por el mismo agente que acaba de actuar, nunca una verificación independiente, y nada garantiza que corresponda a una escritura real en el disco mientras nadie más lo haya controlado.
El informe de texto no es la prueba
La buena práctica documentada consiste en pedir un diff verificable en lugar de confiar en el texto del informe. Un diff muestra las líneas realmente cambiadas en un archivo real, un informe de éxito no es más que una frase generada por el mismo agente que afirma haber tenido éxito.
mkdir -p /tmp/demo-diff
echo "versión inicial" > /tmp/demo-diff/avant.txt
echo "versión modificada" > /tmp/demo-diff/apres.txt
diff /tmp/demo-diff/avant.txt /tmp/demo-diff/apres.txt
# resultado: la línea modificada aparece, la prueba está en el diff, no en una frase
Un informe en texto que afirme que apres.txt fue actualizado no aporta nada más que ese diff, y sin él, nada distingue una escritura real de una frase inventada. Para un script pasado de un shell a otro, mira la lección sobre comandos de shell.
Dos escrituras sobre el mismo archivo nunca son independientes
Dos modificaciones enviadas juntas sobre el mismo archivo, ya sea por dos subagentes o por dos llamadas de la herramienta de edición en el mismo turno, se aplican una tras otra sobre el contenido que la herramienta encuentra en el momento en que actúa, nunca sobre dos copias separadas fusionadas después. La segunda modificación puede entonces fallar al buscar el texto que buscaba, porque la primera ya lo cambió. Enviar las dos modificaciones en secuencia, releyendo el archivo entre ambas, reduce ese riesgo y hace que cada paso sea verificable por sí mismo.
El mismo principio de prueba verificable se aplica a un entregable largo: un contenido de varios párrafos que solo existe en la respuesta mostrada desaparece con ella en cuanto la conversación continúa. Escribirlo en un archivo real antes de mostrarlo, como en una salida estructurada en modo headless, garantiza que siga siendo consultable independientemente del hilo de conversación.
Una carpeta temporal por agente
Los agentes lanzados en paralelo que comparten una carpeta temporal se pisan sus scripts y sus resultados. Un agente no ve ni los archivos temporales de los demás ni las correcciones hechas fuera de su encargo: puede validar algo obsoleto. El encargo nombra, pues, una carpeta propia del agente para sus scripts y resultados, y tras cada pasada sobre un archivo que el padre corrigió, vuelve a lanzar el grep de las formulaciones retiradas.
Lo que rechazan las herramientas de escritura
Desde octubre de 2026, Edit y NotebookEdit rechazan un archivo en una codificación antigua como Windows-1252 o Shift-JIS; Write puede reemplazar un archivo así, pero guarda el contenido nuevo en UTF-8 y se pierde la codificación original: conviértelo antes, el rechazo de Edit es una señal y no una avería. Read ya no lee como texto los archivos binarios como .xlsm, .parquet, .epub o .heic.
Informe de éxito frente a prueba verificable
| Prueba de que una escritura realmente ocurrió | Qué la produce | Qué muestra | Cómo verificarla |
|---|---|---|---|
| Informe de éxito en texto | Generado por el mismo agente que afirma haber tenido éxito | Una frase que afirma que el archivo fue actualizado | Nada que verificar, la frase se toma a sí misma como prueba |
| Diff del archivo real | Producido por un comando que lee el contenido del archivo en el disco | Las líneas exactas que cambiaron, o ninguna línea si nada cambió | Se relee independientemente de lo que el agente afirme |
Un desarrollador le pide a un subagente que añada una línea de configuración en un archivo, recibe una respuesta que anuncia que la modificación está hecha, y luego abre él mismo el archivo en el disco y lee su contenido.
Escribe en una frase lo que esta situación establece, y en una frase lo que no establece.
Lo que esto establece: Esta situación establece que el desarrollador tomó el gesto de releer el archivo en el disco en lugar de detenerse en la respuesta del subagente.
Lo que esto no establece: No establece si la línea de configuración esperada está realmente presente en el archivo, ya que el contenido leído no se describe.
Los tres calibrados falsos más frecuentes
- Demasiado amplio Esta situación establece que la modificación pedida al subagente fue efectivamente aplicada en el archivo.
- Demasiado estrecho Esta situación no establece nada en absoluto, ya que solo se relevó un archivo en un solo equipo.
- Fuera de tema Esta situación muestra que el archivo en cuestión ya contenía varias líneas de configuración antes incluso de enviar la instrucción.
- Los agentes en paralelo tienen cada uno su carpeta temporal, Edit y NotebookEdit rechazan los archivos en codificación antigua, y Write los reemplaza en UTF-8, con lo que se pierde la codificación original.
- Un subagente puede leer el disco igual que la conversación principal, pero su informe sigue siendo un texto producido por el mismo agente que actuó, nunca una verificación independiente, de donde surge el riesgo de que no corresponda a ninguna escritura real.
- Un diff de las líneas realmente cambiadas constituye una prueba verificable, un informe en texto que afirma un éxito no lo es.
- Dos modificaciones enviadas juntas sobre el mismo archivo se aplican una tras otra sobre el contenido encontrado en el momento de la acción, nunca sobre dos copias fusionadas después.
- Un entregable largo escrito únicamente en la respuesta mostrada desaparece con ella, escribirlo en un archivo real lo hace consultable independientemente del hilo de conversación.
Abre un archivo que hayas pedido recientemente escribir a un subagente o a una herramienta, lanza un diff o una relectura directa de su contenido en el disco, y confirma que lo que encuentras corresponde exactamente al informe de éxito recibido.
Cada afirmación datable de esta lección remite aquí al texto público que la respalda. Una fuente que no se abre no prueba nada.
- Claude Code, subagentes, contexto aislado y frescura consultée le 2026-09-02
- Claude Code, referencia de herramientas: Edit y NotebookEdit rechazan codificaciones antiguas consultée le 2026-10-24
- Registro de cambios de Claude Code: Write y codificaciones rechazadas, Read y archivos binarios consultée le 2026-10-24