Lo que serás capaz de hacer
- Medir las palabras que se cargan juntas en tu proyecto frente a un presupuesto.
- Aplicar la prueba de una línea a cada línea y anotar cada veredicto en un registro de recortes.
- Llevar cada línea recortada al destino correcto y dejar un puntero de una línea.
- Configurar un único archivo de instrucciones que lean Claude Code, OpenCode y Kimi Code.
- Confirmar que se ha cargado con /context y volver a comprobar el recuento de palabras cada vez que cambie.
Ideas clave
- Un CLAUDE.md es demasiado largo cuando contiene líneas sin las que el agente no se equivocaría; Anthropic fija el objetivo en menos de 200 líneas por archivo, y nosotros presupuestamos palabras, no líneas.
- Hazle una sola pregunta a cada línea: ¿se equivocaría el agente sin ella? Quédate solo con los síes.
- Cada línea recortada recibe un destino: una página de documentación, una regla de carpeta, una skill, un paso de flujo de trabajo, un hook o la papelera.
- Mantén CLAUDE.md como única fuente y convierte AGENTS.md en un enlace simbólico a él: es la configuración más sencilla en la que Claude Code, OpenCode y Kimi Code leen las mismas instrucciones.
- Vuelve a medir con un recuento de palabras en cada edición, porque un archivo recortado vuelve a crecer.
Un CLAUDE.md es demasiado largo cuando contiene líneas sin las que el agente no se equivocaría. La documentación de Anthropic fija como objetivo menos de 200 líneas por archivo CLAUDE.md; nosotros presupuestamos palabras, porque las líneas esconden la densidad. Al terminar esta guía habrás auditado tu archivo línea a línea, le habrás dado un sitio a cada línea recortada y tendrás un único archivo que leen Claude Code, OpenCode y Kimi Code.
Un archivo de instrucciones largo no es un problema de redacción. Es un problema de orden: casi todas sus líneas son ciertas, solo que están en el sitio equivocado. Una línea mal colocada cuesta contexto en cada sesión y entierra las reglas que importan. Anthropic lo dice sin rodeos: los archivos CLAUDE.md sobrecargados hacen que Claude ignore tus instrucciones reales (Anthropic, Best practices(se abre en una pestaña nueva)).
Todos los ejemplos usan Mossbank, una app de planificación inventada para empresas de fontanería y calefacción. Su archivo y sus cifras son inventados; los presupuestos y las reglas son los que aplicamos en Neomanex.
Qué necesitas antes de empezar
Audita los archivos que se cargan juntos, no el que tengas abierto en ese momento. El agente nunca ve un archivo aislado: Claude Code carga todos los CLAUDE.md desde la raíz del proyecto hasta la carpeta en la que trabajas, más todo lo que importan.
| Necesitas | Por qué |
|---|---|
| Todos los archivos de instrucciones que se cargan en tu carpeta de trabajo | El agente paga por la suma |
Un contador de palabras (wc -w en macOS o Linux) | El presupuesto está en palabras |
/context en Claude Code | Muestra qué archivos se han cargado de verdad |
Mide lo que se carga de verdad
Dejamos de contar líneas. Una fila de tabla puede contener un párrafo, así que presupuestamos palabras y tratamos un archivo denso como uno largo.

Ejecuta wc -lw en cada archivo, suma las palabras y divide las palabras entre las líneas. Por encima de unas 15 palabras por línea, las celdas de las tablas se han convertido en párrafos: divide la celda o saca el contenido.
| Archivo | Objetivo | Máximo | Por qué |
|---|---|---|---|
| Archivo hijo (una subcarpeta) | 500 palabras | 750 palabras | Solo añade lo que le falta al padre |
| Raíz del proyecto | 1200 palabras | 1800 palabras | Identidad, mapa de carpetas, tests, despliegue y trampas habituales; los hijos llevan el resto |
| Raíz del espacio de trabajo (muchos proyectos) | 2000 palabras | 2800 palabras | Se carga en cada sesión, para cualquier tipo de trabajo |
| Todo lo que se carga junto | 5000 palabras | 7000 palabras | El agente paga por la suma, no por un archivo |
El objetivo de líneas de Anthropic existe porque «los archivos más largos consumen más contexto y reducen el grado de cumplimiento» (Anthropic, Memory(se abre en una pestaña nueva)). Las importaciones cuentan enteras: los archivos importados también se cargan al arrancar.
El archivo raíz de Mossbank tiene 420 líneas y unas 9600 palabras: 23 palabras por línea, muy por encima del máximo de 1800 palabras para la raíz de un proyecto.
Aplica la prueba de una línea a cada línea
La pregunta de poda de Anthropic es toda la auditoría: ¿eliminar esta línea haría que Claude cometiera un error? La disciplina está en hacérsela a cada línea, incluidas las que escribiste la semana pasada.
¿Qué es un registro de recortes? Un registro de recortes es una tabla con una fila por cada línea o bloque del archivo: la línea, si el agente se equivoca sin ella, por qué y adónde va la línea.
| # | Línea del archivo de Mossbank | ¿Error sin ella? | Por qué | Va a |
|---|---|---|---|---|
| 1 | «Ejecuta los tests con make test, nunca con pytest a secas» | Sí | pytest a secas se salta los fixtures de la base de datos | Se queda |
| 2 | «price se guarda en céntimos (ver models/job.py)» | Sí | Una suposición errónea corrompe los datos | Se queda, con su fuente |
| 3 | Un mapa de módulos de 60 líneas | A veces | Referencia, necesaria al navegar | Página de documentación |
| 4 | Cómo añadir un proveedor de pagos, en 14 pasos | Solo para esa tarea | Un procedimiento | Skill |
| 5 | «En migrations/, no edites nunca una migración que ya se haya ejecutado» | Solo en esa carpeta | Un subárbol | Regla de carpeta |
| 6 | «NUNCA ejecutes db reset contra staging» | No debe ocurrir nunca | La prosa es orientativa | Hook |
| 7 | Lanzamiento: versión, changelog, etiqueta, despliegue, página de estado, preguntar a Dana antes de etiquetar | Solo al lanzar | Un orden y una aprobación | Paso de flujo de trabajo |
| 8 | «Usa sangría de 4 espacios» | No | El formateador la impone | Eliminar |
| 9 | «La API tiene 37 endpoints» | No | Es errónea en el siguiente commit | Eliminar |
| 10 | La lista de parámetros de las herramientas MCP del equipo | No | La herramienta envía su propio esquema | Eliminar |
Se quedan dos filas. La fila 2 se queda solo porque nombra el archivo que la demuestra.
Dale un destino a cada línea recortada
Eliminar es el último recurso, no el primero. La mayoría de las líneas recortadas son conocimiento que debe estar en algún sitio que el agente lea solo cuando lo necesite.

Haz las preguntas en este orden. El primer sí elige el destino.
| Destino | Recibe | Se carga |
|---|---|---|
| Hook | Algo que debe pasar siempre o no pasar nunca | En cada llamada a una herramienta, y bloquea |
| Paso de flujo de trabajo | Un proceso con un orden o una aprobación | En ese paso |
| Regla de carpeta | Algo que solo es cierto en una carpeta | Cuando el agente lee, escribe o edita un archivo de esa carpeta |
| Skill | Un procedimiento que necesitan algunas tareas | Cuando la tarea encaja; hasta entonces solo se carga su descripción corta |
| Página de documentación | Referencia: mapas, explicaciones | Cuando el agente sigue el puntero |
| Eliminar | Recuentos, historia, copias, todo lo que el agente ya hace bien | Nunca |
El hook va primero porque el archivo es orientativo: la documentación de Anthropic dice que, para bloquear una acción decida lo que decida Claude, uses un hook PreToolUse. Nuestra guía para impedir que Claude Code borre tus archivos monta uno paso a paso. Una regla de carpeta en Claude Code es un archivo de .claude/rules/ con frontmatter paths:, en este caso con migrations/**, o un CLAUDE.md hijo en esa carpeta. Nosotros limitamos las nuestras por ruta.
La lista de comprobación de lanzamientos de Mossbank es el clásico ejemplo de línea mal archivada: un orden y la aprobación de Dana, leídos enteros en cada sesión, con la parada confiada a la memoria. Nosotros guardamos este tipo de procesos como flujos de trabajo de ConvOps(se abre en una pestaña nueva), de modo que el agente lee un paso cada vez y la aprobación es un paso en sí misma (cómo dirigimos nuestra empresa con flujos de trabajo). Saca todos los procesos y el archivo se reduce a un archivo de identidad: esa es la vía radical, la ingeniería de grafos.
Mueve cada línea y deja un puntero de una línea
Un recorte que pierde conocimiento no es un recorte. Es un bug futuro, así que cada línea movida deja un puntero.

El mapa de módulos de Mossbank pasa a docs/module-map.md, y el archivo conserva una línea que nombra la página. De las 420 líneas, 90 se quedan, 150 van a tres páginas de documentación, 60 a dos skills, 30 a una regla de carpeta, 25 al flujo de trabajo de lanzamiento, 10 a dos hooks y 55 se eliminan. El archivo termina con unas 100 líneas, las 90 conservadas más 10 punteros, y 1100 palabras, por debajo del objetivo de 1200.
Una importación con @ no es un recorte. @docs/module-map.md carga la página al arrancar de todos modos. Un puntero normal no carga nada hasta que el agente lo sigue.
Haz que un solo archivo sirva como CLAUDE.md y AGENTS.md
Dos archivos de instrucciones para tres herramientas significan que cada herramienta lee un archivo distinto. Nosotros mantenemos una sola fuente y enlazamos el otro nombre a ella.

Probamos cada configuración el 9 de octubre de 2026, con una palabra clave distinta en cada archivo:
| Configuración en la carpeta del proyecto | Claude Code 2.1.295 | OpenCode 1.18.31 | Kimi Code 0.31.1 |
|---|---|---|---|
| Solo AGENTS.md | Carga AGENTS.md | Carga AGENTS.md | Carga AGENTS.md |
| CLAUDE.md y AGENTS.md, dos archivos | Solo carga CLAUDE.md | Solo carga AGENTS.md | Solo carga AGENTS.md |
| AGENTS.md como enlace simbólico a CLAUDE.md | Lo carga una vez | Lo carga una vez | Lo carga una vez |
| Solo CLAUDE.md | Carga CLAUDE.md | Carga CLAUDE.md | No lo carga |
Dos archivos separados acaban divergiendo, así que cada herramienta sigue instrucciones distintas. Con solo CLAUDE.md, Kimi Code se queda sin nada. Mantén CLAUDE.md como fuente y ejecuta ln -s CLAUDE.md AGENTS.md: de las cuatro configuraciones que probamos, es la única en la que las tres herramientas leen el mismo texto una sola vez. El nuestro se genera: un script crea un AGENTS.md junto a cada CLAUDE.md, así que cada carpeta tiene una sola fuente.
Según la documentación de Anthropic, las herramientas Edit y Write de Claude Code se niegan a escribir a través de un enlace simbólico, así que edita CLAUDE.md; en Windows, haz que CLAUDE.md sea una importación de una línea, @AGENTS.md. Elimina o mueve los dos archivos juntos: un CLAUDE.md eliminado deja su enlace AGENTS.md apuntando a la nada.
Comprueba que se ha cargado y vuelve a comprobarlo cada vez que crezca
Un archivo recortado vuelve a crecer por defecto, porque cada lección quiere vivir en el archivo que todos leen. La nueva comprobación forma parte de la edición, no de un día de limpieza.
| Comprobación | Cómo | Qué ves |
|---|---|---|
| ¿Se ha cargado? | /context en Claude Code | La lista Memory files (archivos de memoria) nombra cada archivo cargado; con el enlace simbólico, solo CLAUDE.md |
| ¿Está dentro del presupuesto? | wc -w sumado sobre los archivos que se cargan juntos | Un número que contrastar con el presupuesto en cada edición |
| ¿Hay contradicciones? (opcional) | /doctor prompt-audit, Claude Code 2.1.283 o posterior | Instrucciones obsoletas o contradictorias con propuestas de edición; nada cambia hasta que lo pidas |
El archivo de Mossbank gana dos líneas en su primera semana (y las dos son lecciones reales), y el recuento de palabras las detecta. La regla: una lección nueva va primero a su destino, y al archivo en último lugar.
Empieza por tu proceso más largo. Crea una cuenta gratuita de ConvOps(se abre en una pestaña nueva), pide a tu IA que escriba ese proceso como flujo de trabajo y después elimínalo del archivo. ¿Quieres que alguien más revise los archivos de instrucciones de tu equipo? Reserva una sesión de descubrimiento gratuita.
Errores habituales y las reglas que nos dejaron
Cada regla de nuestro presupuesto existe porque un archivo se equivocó en algo, no porque lo dijera una guía de estilo. Cada error de abajo nos pasó a nosotros; aquí lo contamos con el ejemplo de Mossbank.
| Error | En Mossbank | Regla que nos dejó |
|---|---|---|
| Contar líneas | Un archivo de 180 líneas con 33 palabras por línea son unas 6000 palabras | Presupuesta palabras; marca lo que pase de unas 15 palabras por línea |
| Un contrato sin fuente | El archivo dice que price está en euros; está en céntimos, así que el agente escribe un descuento en euros | Una línea que define un campo, un tipo o una forma cita el archivo que lo demuestra |
| Pasos de despliegue en un archivo hijo | worker/CLAUDE.md sigue describiendo el despliegue antiguo y contradice a la raíz | El padre es dueño de cada dato; un hijo lleva como mucho un puntero |
| Recuentos | «La API tiene 37 endpoints» es erróneo en el siguiente commit | Describe, nunca cuentes |
| Repetir una regla que ya se carga | El archivo copia las reglas de tests compartidas, con una opción antigua | Apunta a la regla; nunca la repitas |
Pasos
Mide lo que se carga de verdad
Ejecuta wc -lw en cada archivo de instrucciones que se carga en tu carpeta de trabajo, importaciones incluidas, y suma las palabras. Compara cada archivo y el total con el presupuesto de palabras, y marca cualquier archivo que pase de unas 15 palabras por línea.
Aplica la prueba de una línea a cada línea
Para cada línea o bloque, pregúntate si el agente cometería un error sin ella. Anota la línea, la respuesta y el motivo en un registro de recortes, y quédate solo con los síes.
Dale un destino a cada línea recortada
Pregunta en este orden: ¿debe pasar siempre o no pasar nunca? (hook); ¿tiene un orden o una aprobación? (paso de flujo de trabajo); ¿solo es cierta en una carpeta? (regla de carpeta); ¿es un procedimiento para algunas tareas? (skill); ¿es referencia? (página de documentación). Si todas las respuestas son no, elimínala.
Mueve cada línea y deja un puntero de una línea
Mueve cada línea a su destino y deja en el archivo un puntero de una línea allí donde el agente necesite encontrarla. Nunca cuentes una importación con @ como recorte, porque los archivos importados se cargan al arrancar.
Haz que un solo archivo sirva como CLAUDE.md y AGENTS.md
Mantén CLAUDE.md como fuente y ejecuta ln -s CLAUDE.md AGENTS.md en la misma carpeta, para que Claude Code, OpenCode y Kimi Code lean el mismo texto una sola vez. Elimina o mueve los dos archivos juntos.
Comprueba que se ha cargado y vuelve a comprobarlo cada vez que crezca
Ejecuta /context en Claude Code y confirma que el archivo aparece en Memory files. En cada edición, vuelve a ejecutar wc -w frente al presupuesto, y lleva cada lección nueva a su destino antes que al archivo.
Preguntas frecuentes
¿Cuánto es demasiado largo para un CLAUDE.md?
La documentación de Anthropic fija el objetivo en menos de 200 líneas por archivo CLAUDE.md. En Neomanex presupuestamos palabras, porque un archivo corto de filas de tabla densas también cuesta mucho: unas 1200 palabras para la raíz de un proyecto, 2000 para la raíz de un espacio de trabajo grande y 5000 para todo lo que se carga junto. Por encima de esas cifras, o de unas 15 palabras por línea, el archivo es demasiado largo. La prueba real es línea a línea: conserva solo lo que evita un error.
¿Quién debería recortar su CLAUDE.md o AGENTS.md?
Deberían recortarlo los desarrolladores y responsables de equipo cuyo agente de programación ignora reglas que se le dieron, o cuyo archivo de instrucciones crece con cada lección. En Neomanex la regla es auditar un archivo en cuanto supera su presupuesto de palabras. El resultado es un archivo que el agente sigue y que cuesta menos contexto en cada sesión, con el conocimiento recortado guardado en páginas de documentación, skills, reglas de carpeta, flujos de trabajo y hooks.
¿Qué debo quitar primero de mi CLAUDE.md?
Elimina lo que el agente nunca necesita: recuentos que se quedan obsoletos, la historia del proyecto, copias de otros archivos, listas de parámetros que la herramienta ya envía y reglas de estilo que impone un formateador. El estándar de Neomanex las trata como eliminaciones directas, porque cuestan contexto y no aportan nada. Después lleva el material de referencia a páginas de documentación, y los procesos con un orden o una aprobación a flujos de trabajo, que es donde Neomanex los guarda, en ConvOps.
¿Importar archivos con @ hace más corto mi CLAUDE.md?
No. En Neomanex contamos cada importación con @ dentro del presupuesto de palabras, porque la documentación de Anthropic dice que los archivos importados también se cargan al arrancar, así que una importación mueve el texto sin reducir su coste. Un recorte de verdad es una página de documentación con un puntero de una línea, una skill o una regla limitada por ruta, porque cada una de ellas se carga solo cuando el agente la necesita.
¿Por qué Claude no usa mi AGENTS.md?
Claude Code solo lee AGENTS.md cuando no existe ningún CLAUDE.md en la carpeta ni por encima de ella. Neomanex lo probó en Claude Code 2.1.295 en octubre de 2026: con los dos archivos presentes, solo cargó CLAUDE.md. La solución es una sola fuente por carpeta: conserva CLAUDE.md y convierte AGENTS.md en un enlace simbólico a él o, en Windows, haz que CLAUDE.md sea una importación de una línea, @AGENTS.md.
¿Un AGENTS.md demasiado largo es el mismo problema que un CLAUDE.md demasiado largo?
Sí, y requiere la misma auditoría. Neomanex probó OpenCode 1.18.31 y Kimi Code 0.31.1 en octubre de 2026: los dos leen AGENTS.md, OpenCode ignora CLAUDE.md cuando existe un AGENTS.md y Kimi Code no carga el CLAUDE.md del proyecto. Un único CLAUDE.md recortado, con AGENTS.md como enlace simbólico a él, sirve a Claude Code, OpenCode y Kimi Code con el mismo texto.
¿Cómo soluciono el error «prompt is too long» (prompt demasiado largo) en Claude?
Ejecuta /context en Claude Code para ver qué llena la ventana de contexto y después ejecuta /compact o empieza una sesión nueva. En Neomanex tratamos este error como una conversación llena, que es un problema distinto de un archivo de instrucciones largo. Un CLAUDE.md ligero sigue ayudando, porque se carga antes de tu primer mensaje y cada sesión empieza más pequeña.
