Borrado, medido, se rompió una regla
Borrar un CLAUDE.md significa quitar el archivo de instrucciones que Claude Code lee al comienzo de cada conversación. Boris Cherny, el creador de Claude Code, dijo en un escenario que lo borráramos cada seis meses. Veintidós vídeos lo repitieron en siete semanas. Ninguno abrió un repositorio.
Este artículo hace lo que esos vídeos no hicieron: toma una app real con un CLAUDE.md de 177 líneas, tres skills, cuatro comandos y un hook, ejecuta cinco tareas cotidianas con el archivo y sin él, y cuenta. Cuarenta y cuatro ejecuciones después, se rompió exactamente una regla. El archivo costó tokens en cada tarea, nunca la misma cantidad, y una de sus líneas nadie pudo seguirla.
El clip, palabra por palabra, y las dos frases que no son suyas
El clip viene de la charla de Boris Cherny en YC Startup School, grabada el día después de que Opus 5 saliera. Sus palabras: cada seis meses, borra tu CLAUDE.md, borra tus skills, borra tus hooks. Mira qué hace el modelo, puede que te sorprenda. Con Opus 5, dice, Anthropic realmente recomienda probarlo: puede que el modelo ya no necesite todas esas instrucciones.
Treinta segundos antes viene la salvedad que nadie cita. Anthropic no borra toda la base de código. Borra mucho, y a eso lo llama una ablación. La transcripción escrita conserva esa frase completa hoy. El ochenta por ciento del system prompt de Claude Code se fue así: borrar todo, traerlo de vuelta línea por línea, medir cada línea.
Dos frases que los vídeos de reacción le atribuyen no están en la charla. "Contexto, objetivos y una definición de terminado" no aparece en ningún sitio; lo más cercano que dice es tarea, guardrails, criterios de salida. "Sesenta y cuatro agentes reescribiendo Bun" tampoco es su número: es de Jarred Sumner, en el post de Bun. Cherny dice once días y, cuando le piden una cifra, calcula miles.
Veintidós vídeos en siete semanas citaron el clip. Ninguno hizo la prueba. Así que este artículo hace lo que él realmente describió: borrar, traer de vuelta una pieza a la vez, medir.
El instrumento: ablación, no borrado
Una ablación quita una pieza de una configuración a la vez y mide el efecto, en vez de borrarlo todo y adivinar. El CLAUDE.md se lee al comienzo de cada conversación y de nuevo en cada turno; los skills solo se cargan cuando se invocan. Esa diferencia es lo que se midió.
Anthropic incluye el interruptor de borrado: una simple flag, la misma variable que Cherny nombra en el escenario. El repositorio es una app real mía: 177 líneas de instrucciones, tres skills, cuatro comandos y un hook que se dispara en cada búsqueda.
| Dimensión | Valor |
|---|---|
| Tareas cotidianas | 5 (componente nuevo, edición, refactor, cambio de store, pregunta de arquitectura) |
| Configuraciones | 5 (completa, sin archivo, sin skills, sin hook, nada) |
| Modelo | uno, fijo |
| Entorno | directorio de configuración vacío, clon nuevo antes de cada ejecución |
| Ejecuciones | 44 |
| Costo | $39 |
Cada ejecución se evaluó de la misma forma, en el mismo clon, por un script en vez de a mano. Lo que cuenta como roto: las propias reglas del repositorio (imports, tipos, design tokens, traducciones) más typecheck y lint.
La única herramienta construida para este tipo de ablación, Caliper, ablata skills y servidores MCP pero nunca toca el archivo; el intercambio del CLAUDE.md se hizo a mano. Los límites, dichos una vez: un repositorio, un modelo, dos ejecuciones por celda, sin transcripción. El primer resultado marcó el tono: la tarea de refactor salió idéntica, sesenta y cuatro centavos con el archivo y sesenta y tres sin él.
Qué se rompió: una regla, en archivos nuevos
La regla que se rompió es una regla de internacionalización, en las propias palabras del archivo: siempre añade inglés y francés, nunca hardcodees un string que vea el usuario. En la tarea de componente nuevo, con el archivo, las cuatro ejecuciones escribieron el archivo de traducción. Sin él, tres de cuatro ejecuciones dejaron el encabezado hardcodeado. Misma tarea, mismo repositorio, mismo modelo, mismo prompt.
| Componente nuevo | Escribió el archivo de traducción |
|---|---|
| Con CLAUDE.md | 4 de 4 |
| Sin CLAUDE.md | 1 de 4 |
La tarea de edición cuenta la otra mitad. Todas las configuraciones acertaron, incluso sin nada, porque los vecinos lo enseñan: todos los componentes junto al editado ya tienen un archivo de traducción. Todo lo demás se mantuvo en las cuarenta y cuatro ejecuciones: el alias de import, type sobre interface, los design tokens, el patrón del store. El código lo muestra, el archivo lo repite.
Un paper de ETH Zurich midió lo mismo en 138 issues reales. Su hallazgo: los archivos de contexto no mejoran el éxito y cuestan alrededor de un veinte por ciento más, y el modelo sí sigue las instrucciones. Una salvedad: una ejecución sin el archivo escribió el archivo de traducción de todos modos. La regla no es imposible sin el archivo, es poco fiable. Se rompió una regla, la que el código no podía enseñar. Y la ejecución que se saltó ese trabajo también fue la más barata.
Lo que costó el archivo, tarea por tarea
El costo en tokens de un CLAUDE.md es la diferencia de tokens leídos entre una ejecución con el archivo y la misma ejecución sin él.
| Tarea | Menos tokens leídos sin el archivo |
|---|---|
| Componente nuevo | 61% |
| Edición | 15% |
| Refactor | 5% |
| Cambio de store | 4% |
| Pregunta de arquitectura | 14% |
| En las diez ejecuciones | 32% tokens, 22% dinero |
Treinta y dos por ciento es el número que titularía cualquier vídeo, y es el equivocado. El mayor ahorro es la ejecución que no escribió el archivo de traducción: más barata porque hizo menos. Donde la salida fue idéntica, el archivo costó de cuatro a catorce por ciento. Ese es su precio real, y el veinte por ciento del paper cae justo entre esos dos números.
El mecanismo cuesta unos 1.800 tokens, leídos de nuevo en cada turno. Los skills, el hook y el knowledge graph no produjeron nada medible, presentes o ausentes. El ruido es mayor que casi todo eso: la misma tarea con el mismo archivo costó $2.11 en una ejecución y $1.33 en la otra. Dos ejecuciones llegaron al límite de turnos, una con el archivo y otra sin él. Así que el archivo cuesta un poco en todas partes y se gana su lugar una vez, a menos que también mienta.
Las líneas que mentían
Una línea mentirosa es una instrucción que el modelo no puede seguir o que no cambia nada. La línea que se adelantó al principio: importa el tema desde el alias de design-tokens. El alias no existe: la configuración de TypeScript mapea un prefijo, y la carpeta de tokens no tiene ningún archivo de tema. En cada ejecución, con el archivo o sin él, se hizo lo mismo que hacen los vecinos, la misma línea de import cuarenta y cuatro veces.
El archivo tiene ochenta y dos líneas de resumen de arquitectura. Misma pregunta, seis respuestas: las seis encontraron los mismos nueve archivos, de backend a pantalla, en el mismo orden, con el resumen y sin él. Un bloque apunta a un knowledge graph que el clon no tiene; con el grafo presente, la pregunta costó lo mismo.
| Medida | Valor |
|---|---|
| Regla de tamaño de Anthropic | menos de 200 líneas |
| Este archivo | 177 líneas |
| Archivo mediano en el dataset de 30k repos de reporails | 50 ítems, 12 directivas |
| Líneas de directiva en este archivo | 24 de 177 |
La posición decide cuál de dos reglas contradictorias gana, y el modelo nunca lo dice, unos noventa puntos en el test de un proveedor. El resumen podría ayudar en una tarea que no se ejecutó aquí: una sola sonda, una sola respuesta. Tres tipos de líneas, entonces: la que se ganó su lugar, las que el código ya enseña, las que mienten.
Guardar, mover, borrar: la lista corta
Tres montones, y la medición detrás de cada uno.
| Montón | Qué va ahí | Medición |
|---|---|---|
| Guardar | La regla que el código no puede mostrar | 6 líneas que salvaron 4 ejecuciones |
| Mover | El resumen de arquitectura y los comandos | 107 líneas sin ganancia medida |
| Borrar | Las líneas que mienten, y las que el árbol ya muestra | 44 ejecuciones idénticas |
Guarda lo que el modelo falló dos veces: ese es el propio criterio de Anthropic para el archivo. Mueve el resumen y los comandos a un árbol de archivos que se cargan cuando se necesitan; el post de julio de Anthropic llama mito al repositorio central. Los hooks se quedan: una gate no caduca cuando el modelo mejora. Corta la prosa que el modelo ya superó, conserva la gate.
El archivo después: unas setenta líneas, las seis que se lo ganaron encima. Ese es el método de Cherny, leído entero: borrar, traer de vuelta línea por línea, medir. Un repositorio, un modelo, dos ejecuciones por celda; tus montones serán distintos, el método no. Borrar costó una regla y ahorró poco. Encontrar las líneas que mienten fue la ganancia.
AIDive