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 perfectamente 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. Un script en una sola línea que contiene comillas invertidas se topa con una trampa vecina: el shell que lo ejecuta puede interpretarlas antes de que el comando llegue a su destino, y lo que se muestra después parece un éxito cuando el comando realmente lanzado estaba truncado. Releer el comando tal como fue recibido por el shell, no solo tal como fue tecleado, responde a la misma necesidad de prueba que el diff.
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, exactamente como un diff sigue siendo legible independientemente del informe que lo acompaña.
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.
Escriba 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.
- Un subagente arranca con un contexto aislado, sin acceso al historial de la conversación principal, a las skills ya invocadas ni a los archivos ya leídos por el agente principal.
- 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.
Abra un archivo que haya pedido recientemente escribir a un subagente o a una herramienta, lance un diff o una relectura directa de su contenido en el disco, y confirme que lo que encuentra 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