Tu configuración de claude.md hace que programar con IA sea un 99% más lento

AAI LABS
컴퓨터/소프트웨어경영/리더십AI/미래기술

Transcript

00:00:00Un solo archivo decide si el producto que obtienes es realmente la implementación correcta
00:00:04que necesitabas.
00:00:05Para los usuarios de Claude Code es claud.md, otros tienen sus propios archivos, pero lo más común
00:00:10es que usen agents.md.
00:00:11Pero sin importar cuál estés usando, a menos que lo configures correctamente, seguirás peleándote con tu
00:00:15agente en cada tarea.
00:00:17Y si piensas que ejecutar un simple comando de inicialización es suficiente, en realidad
00:00:20estás equivocado.
00:00:21Necesitas seguir un patrón estructurado adaptado al proyecto que realmente haga que tu agente
00:00:26rinda mejor.
00:00:27Por esa razón recopilamos las mejores prácticas que debes seguir de otras fuentes creíbles,
00:00:31así como de nosotros tras pasar horas con Claude Code, para que puedas integrarlas directamente en
00:00:35tu flujo de trabajo.
00:00:36Y la última es importante porque determina cómo tu agente sigue realmente tus instrucciones,
00:00:41y si no se siguen, el resto de las instrucciones en tu archivo no tendrán tanto impacto.
00:00:45Lo primero que debes agregar en tu archivo claud.md es algo que viene directamente
00:00:49del repositorio de habilidades de Andrej Karpathy, que contiene los mejores patrones para claud.md de los que él habla.
00:00:54Necesitas añadir una instrucción explícita a Claude para que piense antes de programar.
00:00:58Esto hace que Claude exponga sus suposiciones explícitamente.
00:01:01Si existen múltiples interpretaciones, debe presentarlas todas para que podamos decidir entre
00:01:05el conjunto de implementaciones.
00:01:07Esto empuja a Claude a pensar desde una perspectiva diferente antes de sumergirse realmente en la
00:01:11solución.
00:01:12Esto asegura que la solución que implementa esté alineada con lo que querías.
00:01:15Esta línea elimina una gran cantidad de correcciones de rumbo en nuestro flujo de trabajo, por lo que nos resultó
00:01:20muy útil.
00:01:21Con esta instrucción añadida, cada vez que le pidas a Claude que implemente una funcionalidad, básicamente
00:01:25hará una serie de preguntas relacionadas con la tarea que le diste para que tus respuestas le guíen
00:01:29sobre cómo realizar realmente la tarea.
00:01:31Esta parte en particular será útil porque ahora Claude no adivinará las implementaciones
00:01:35lanzándose directamente desde el patrón que ha memorizado de los datos de entrenamiento.
00:01:39Pensará detenidamente cuál es la implementación correcta y confirmará contigo si esa es
00:01:43la implementación prevista, para luego trabajar realmente en la funcionalidad en lugar de simplemente
00:01:48adivinarla, lo que te obligaría a interrumpir a Claude porque no siguió las implementaciones correctas
00:01:52que tenías en mente, algo que ocurre mucho más a menudo y requiere que corrijas el rumbo
00:01:56constantemente.
00:01:57La siguiente regla es elegir la simplicidad ante todo.
00:01:59Es algo tan simple y aun así necesita ser especificado claramente en claud.md para que
00:02:04el agente reciba recordatorios adecuados de este principio.
00:02:07Claude o cualquier otro agente tiende a escribir soluciones extensas para problemas que pueden resolverse con
00:02:11soluciones simples.
00:02:12Pero esto no es solo problemático porque causa retrasos.
00:02:15También hace que sea difícil refactorizar el código más adelante y aún más difícil añadir funcionalidades porque
00:02:19la implementación es tan verbosa que consume muchos tokens para implementar cosas simples.
00:02:24Así que esta línea literalmente empuja a Claude a iterar hacia la simplicidad.
00:02:27También añadimos esto en cada proyecto, especialmente al trabajar en aplicaciones a gran escala porque
00:02:32a esa escala, hacerlo se vuelve más importante.
00:02:35Esto le dice específicamente a Claude que no añada ninguna funcionalidad más allá de lo que se pide y que asegure
00:02:39un manejo de errores adecuado para la implementación.
00:02:41El marco disciplinado a su alrededor es básicamente un umbral estricto.
00:02:44Si la solución a cualquier problema que plantees puede manejarse en 200 líneas y podría refactorizarse
00:02:49a 50, entonces Claude necesita reescribir la solución porque su enfoque es incorrecto.
00:02:54Esto evitará que Claude escriba una gran cantidad de código innecesario con cosas
00:02:58que ni siquiera son implementables y que reflejan la dirección equivocada que seleccionó.
00:03:03La tercera parte de claud.md es implementar cambios quirúrgicos, o en palabras simples, tocar
00:03:08solo aquellas partes que el agente debe tocar absolutamente.
00:03:11Esto aborda algo a lo que nos enfrentamos a menudo cuando Claude escribe una gran cantidad de código
00:03:15a la vez, y la corrección necesita establecerse explícitamente en el archivo claud.md.
00:03:19Claude o los agentes en general, cuando se les pide hacer una tarea, tienden a intentar mejorar las cosas
00:03:24alrededor de esa tarea también.
00:03:25Estas mejoras pueden parecer cambios de código adyacentes o dar formato a la base de código,
00:03:29lo cual no queremos que sea su enfoque en ese momento.
00:03:32Pero esto es molesto porque la atención de Claude se divide entre las múltiples cosas que intenta
00:03:36implementar a la vez.
00:03:37Establecer este tipo de cambios no es bueno porque Claude está incluyendo básicamente cosas
00:03:41que no queríamos que hiciera en este momento.
00:03:43Por lo tanto, necesitamos establecer explícitamente en claud.md la instrucción de no hacerlo.
00:03:47Si el agente nota código muerto no relacionado, debería mencionarlo en lugar de arreglarlo por sí mismo.
00:03:52A veces, este tipo de cosas están ahí por razones específicas que deben abordarse más tarde,
00:03:56no en la etapa en la que se encuentra la aplicación actualmente.
00:03:58El marco mental que permite a Claude decidir cómo actuar correctamente es verificar cada cambio
00:04:03y ver si realmente se remonta a lo que pidió el usuario.
00:04:06Si es así, entonces debería realizar ese cambio.
00:04:08Si no es así, no debería tocar esa funcionalidad.
00:04:10Si se añade esta línea, entonces cada vez que Claude tenga algún problema en la implementación, básicamente
00:04:14cambiará solo lo que el usuario le pidió que arreglara.
00:04:17Por lo tanto, te dirá todos los otros problemas que encontró en el mismo archivo y tú podrás decidir
00:04:21a partir de ahí si realmente quieres que los arregle o no.
00:04:24El último patrón extraído de Andrej Karpathy es la ejecución orientada a objetivos.
00:04:29Los agentes no saben cómo se ve la salida correcta, que es el problema central.
00:04:33Trabajarían mucho más eficazmente si lo supieran, y eso es lo que soluciona esta regla.
00:04:36En el archivo claud.md, debemos indicar explícitamente a Claude que defina los criterios de éxito
00:04:41para cada tarea que le asignemos.
00:04:43Por lo tanto, para cualquier tarea que le entreguemos, Claude necesita convertirla en un objetivo verificable.
00:04:47Por ejemplo, si le das la tarea de añadir validación, escribirá pruebas para las entradas inválidas
00:04:52y asegurará que esos casos de prueba pasen realmente con los valores de retorno correctos para las entradas correctas.
00:04:57Así que la idea completa es que el agente implemente casos de prueba y luego itere hasta que todos los casos
00:05:01de prueba pasen, y al final, el proyecto tenga el mismo comportamiento que realmente necesitamos de él.
00:05:06Si le das cualquier instrucción sobre una tarea, establecerá el objetivo verificable y planificará la implementación.
00:05:11Luego verificará el trabajo por ti añadiendo todos los casos de prueba y mostrando cómo manejará
00:05:15toda la aplicación, en esencia.
00:05:17Ahora, esto podría funcionar para el razonamiento lógico, pero si quieres que el agente verifique cómo se ve
00:05:21tu interfaz de usuario, el agente no puede escribir casos de prueba para eso.
00:05:23Así que para eso puedes añadir la extensión de Chrome de Claude o el MCP de Puppeteer para que pueda verificar
00:05:28cómo se ve la interfaz de usuario usando esas herramientas.
00:05:30Esto ayuda porque los cambios en la interfaz de usuario son difíciles de juzgar mirando el código por sí mismo, y al darle
00:05:35al agente una forma verificable de ver los elementos visuales de la aplicación actual, usándolo puede arreglar
00:05:40los problemas.
00:05:41Por lo tanto, puedes añadir una línea explícita para que sepa que después de la implementación de la interfaz de usuario
00:05:45también necesita verificar el resultado a través del MCP.
00:05:48Si has creado un archivo claud.md usando el comando de inicialización de Claude Code, verías que
00:05:53añade comandos para ejecutar el servidor de desarrollo y el servidor de compilación.
00:05:57Pero esos ya están en sus datos de entrenamiento, Claude ya conoce esos comandos y
00:06:01no necesitamos gastar líneas explícitamente en claud.md diciéndole lo que ya sabe.
00:06:05Así que en tu archivo solo necesitas mencionar las herramientas que quieres que Claude use en lugar de las
00:06:09que usa por defecto.
00:06:11Hay ciertas herramientas CLI que hacen el flujo de trabajo más rápido pero no están en los datos de entrenamiento
00:06:16por defecto de Claude o en los patrones en los que ya confía.
00:06:18Por lo tanto, tienes que añadirlas explícitamente para que Claude sepa que esas herramientas están instaladas
00:06:22y no recurra siempre a lo que usa por sí mismo.
00:06:26Por ejemplo, si has instalado la CLI de GitHub en lugar de usar git para trabajar, puedes
00:06:30añadir una instrucción en claud.md para usar su CLI en lugar de los comandos git por defecto para todas
00:06:36las operaciones.
00:06:37De igual manera, puedes añadir más comandos que no sean los predeterminados.
00:06:41También necesitas añadir las instrucciones de ejecución para el proyecto en este archivo si son diferentes
00:06:45de las habituales.
00:06:46Por ejemplo, la mayoría de los proyectos en la configuración por defecto se ejecutan con npm, y si tu proyecto se ejecuta con
00:06:51pnpm, necesitas añadir esta información para que el agente sepa qué comandos deben ejecutarse realmente.
00:06:56Cualquier cosa más allá de los comandos que Claude ya conoce no debe incluirse en el archivo claud.md.
00:06:57file.
00:07:01archivo.
00:07:02La siguiente mención en claud.md está inspirada por el creador de Claude Code y el flujo de trabajo
00:07:07que reveló.
00:07:08Habló sobre cómo claud.md no es un archivo que se escribe una vez y se usa para siempre.
00:07:12Es algo que constantemente necesita cambiarse, actualizarse y mejorarse durante el curso
00:07:16de la construcción como un proceso continuo que debe iterarse una y otra vez.
00:07:20Así que necesitas añadir una instrucción de que si el usuario tuvo que decirle a Claude que su implementación
00:07:25no era correcta, primero debería aplicar las correcciones señaladas por el usuario.
00:07:29Una vez que Claude haya aplicado esas correcciones, también debería añadir esos aprendizajes a un archivo
00:07:33dedicado, para que Claude pueda construir gradualmente una base de conocimiento de lo que no debería hacer y de
00:07:38cuál es la forma correcta de hacer las cosas, lo cual puede referenciar más adelante según sea necesario.
00:07:42Pero antes de avanzar, escuchemos una palabra de nuestro patrocinador.
00:07:45Klaus, probablemente hayas oído hablar de los agentes de IA.
00:07:47Quizás has intentado configurar uno tú mismo, y a los 15 minutos te encuentras mirando una terminal,
00:07:51pegando claves de API en archivos de configuración, preguntándote si acabas de filtrar algo importante.
00:07:56Klaus se salta todo eso.
00:07:57Klaus ejecuta OpenClaw, el agente de IA de código abierto en la nube.
00:08:00Te registras, obtienes $15 en créditos de OpenRouter y empiezas a dar instrucciones.
00:08:04Sin terminal, sin Docker, sin búsqueda de tesoro de claves de API.
00:08:07Lo probé pidiéndole a Klaus que analizara un directorio de startups, organizara los resultados en una tabla
00:08:12y me lo enviara por correo electrónico.
00:08:13Una instrucción en la ventana de chat, listo.
00:08:15Sin código, sin extensiones de navegador.
00:08:17Viene con herramientas integradas como Exa y Apollo, y se conecta a Slack, WhatsApp, incluso
00:08:21iMessage.
00:08:22Todo se ejecuta en una máquina con firewall, completamente aislada de tus cuentas personales.
00:08:27Si algo se rompe, su agente de reparación automática, Clawbert, lo parchea sin que toques nada.
00:08:31Haz clic en el enlace del comentario fijado y prueba Klaus gratis.
00:08:35Dado que la mayoría de los proyectos de programación se gestionan con Git, debes añadir explícitamente una instrucción
00:08:39en claud.md de que Claude no debería ejecutar comandos que sean irreversibles sin confirmación.
00:08:44Y si hay necesidad de ejecutar tal comando, el agente debe pedir permiso primero.
00:08:48Estos comandos son peligrosos porque una vez que se ejecutan, las consecuencias son irreversibles
00:08:53y pueden causar daños a la producción.
00:08:55Cosas como forzar un push, restablecer el HEAD, fusionar ramas o ejecutar comandos de eliminación
00:09:00forzada.
00:09:01También necesitas añadir una instrucción de que si Claude no está seguro de si un comando es destructivo
00:09:04o no, debería preguntar en lugar de asumir.
00:09:07Esto te ahorrará muchos problemas.
00:09:08Por ejemplo, si Claude intenta accidentalmente fusionar una rama que no quieres que fusione,
00:09:12pedirá permiso antes de hacerlo y entonces podrás denegarlo para que tu trabajo
00:09:16se mantenga seguro.
00:09:17No hay necesidad de poner todos los aspectos de información en un solo archivo claud.md porque eso solo
00:09:22lo inflará innecesariamente y distraerá al agente de lo que realmente necesita hacer.
00:09:27Así que necesitas crear archivos de reglas con ámbito de ruta que declaren su alcance en la primera línea
00:09:31y contengan instrucciones adaptadas exactamente a esos archivos.
00:09:34También necesitas mencionar la ubicación de estos archivos en claud.md para que Claude sepa que existen.
00:09:40Por ejemplo, si quieres que Claude siga ciertas instrucciones específicas al escribir APIs, puedes
00:09:44añadirlas en un archivo de reglas para ellas, de modo que cuando Claude esté trabajando en ellas, pueda cargar
00:09:48esas instrucciones y usarlas directamente.
00:09:50Pero igual de importante, esto también asegura que las instrucciones relacionadas con la API no interfieran
00:09:55cuando Claude no esté trabajando en ellas.
00:09:56Puedes tener múltiples archivos de reglas para diferentes partes del proyecto, cada uno conteniendo instrucciones
00:10:00adaptadas a esa área específica.
00:10:02De esta forma, Claude solo carga las instrucciones relevantes cuando está trabajando en esa parte.
00:10:06Por lo tanto, evita el exceso de contexto y mantiene al agente enfocado en su tarea actual en lugar
00:10:11de distraerse con reglas no relacionadas.
00:10:13La mayoría de las aplicaciones a gran escala están en un monorepositorio, que es un gran repositorio donde
00:10:18todos los componentes diferentes se mantienen juntos, actuando cada carpeta como una parte separada
00:10:22por sí misma, y cada parte siendo gestionada independientemente mientras contribuye a un aspecto diferente de
00:10:27la aplicación principal.
00:10:28Así que si estás ejecutando un proyecto desde un monorepositorio, debes asegurarte de que cada subrepositorio
00:10:32contenga su propio archivo claud.md para que contenga instrucciones específicas
00:10:37para él y no tenga que depender solo de las instrucciones del claud.md global.
00:10:42El archivo global solo debería consistir en instrucciones que sean ampliamente aplicables a todas las partes de
00:10:47el sistema.
00:10:48Pero los archivos claud.md con ámbito funcionan mejor porque pueden contener instrucciones específicas
00:10:52para esa aplicación o módulo en particular.
00:10:54Esto permite al agente rendir mejor porque tendrá una guía más enfocada.
00:10:58Por lo tanto, poner todas las instrucciones de un proyecto grande en el archivo principal es un error.
00:11:02Inflará el archivo con información y, cuando Claude pase por áreas con instrucciones
00:11:07que no conciernen a la tarea actual, puede hacer que su atención se desvíe de lo que
00:11:11realmente necesita hacer.
00:11:12Además, si estás disfrutando de nuestro contenido, considera presionar el botón de hype porque nos ayuda a
00:11:16crear más contenido como este y llegar a más personas.
00:11:19También necesitas añadir la descripción del proyecto en tu archivo claud.md y asegurar que esta
00:11:24instrucción se coloque al principio de todo, no enterrada dentro del resto de las
00:11:29instrucciones.
00:11:30Porque el agente entiende la esencia de lo que trata la aplicación leyendo esto primero.
00:11:33Así entiende el contexto de cómo está estructurada la aplicación, qué hace en general, cuáles
00:11:38son los diferentes servicios y dependencias, y cómo se ejecuta la aplicación.
00:11:41De esta forma, lo sabe desde el principio, en lugar de mirar el código para deducir qué hace
00:11:45la aplicación.
00:11:46Otra sección que necesitamos añadir en tu archivo claud.md es que Claude necesita verificar
00:11:50no solo que la funcionalidad existe, sino también que funciona correctamente según lo previsto antes de reportar
00:11:55cualquier tarea como completa.
00:11:57Debe usar todos los mecanismos de verificación disponibles para confirmar que la compilación y las pruebas pasan correctamente,
00:12:02pero el objetivo de esta sección es asegurarse de que la tarea esté realmente completa usando pasos de verificación
00:12:07reales, no solo verificando que el código de la funcionalidad existe.
00:12:11Por lo tanto, esta instrucción empuja a Claude a reportar más fielmente y a usar múltiples
00:12:15tipos de comprobaciones como pruebas unitarias, linting y comprobaciones de tipo para asegurarse de que la aplicación esté implementada
00:12:20correctamente y funcione como se pretende.
00:12:23Por último, pero no menos importante, la forma en que ordenas tus instrucciones en el archivo claud.md es también
00:12:27muy importante para asegurar un alto rendimiento del agente.
00:12:29Tienes que ordenarlas por prioridad.
00:12:31Las primeras instrucciones deben ser reglas estrictas, es decir, siempre no negociables, sin excepciones
00:12:36de ningún tipo.
00:12:37Estas reglas estrictas siempre deben ir primero, antes que cualquier otra regla.
00:12:40Luego vienen las reglas de prioridad media, que no son tan estrictas como las anteriores.
00:12:44Son algo negociables pero aun así importantes y no deben violarse.
00:12:48Después de eso vienen las instrucciones de baja prioridad, que principalmente incluyen referencias y conveniencias,
00:12:52para que el agente no necesite volver atrás y usar esta sección como fuente principal de decisiones.
00:12:57Otra cosa importante es que necesitas asegurarte de mantener el archivo claud.md corto.
00:13:01Una mejor práctica es mantenerlo bajo un límite estricto de 300 líneas, que se considera óptimo
00:13:06para el rendimiento del agente.
00:13:07Pero una vez que se vuelve más largo que eso, el rendimiento comienza a degradarse.
00:13:10El archivo claud.md del que se habló aquí y todos los demás recursos mencionados están disponibles
00:13:15en AI Labs Pro para este video y para todos nuestros videos anteriores, desde donde puedes descargarlos
00:13:20y usarlos para tus propios proyectos.
00:13:21Si encontraste valor en lo que hacemos y quieres apoyar al canal, esta es la mejor manera
00:13:25de hacerlo.
00:13:26El enlace está en la descripción.
00:13:27Eso nos lleva al final de este video.
00:13:29Si te gustaría apoyar al canal y ayudarnos a seguir haciendo videos como este, puedes hacerlo
00:13:33usando el botón de súper gracias de abajo.
00:13:35Como siempre, gracias por ver y nos vemos en el próximo.

Key Takeaway

Optimizar el archivo claud.md mediante reglas de alcance, criterios de éxito verificables y un límite estricto de 300 líneas permite que Claude actúe de forma precisa y eficiente sin necesidad de intervención constante.

Highlights

  • Incluir una instrucción explícita que obligue a Claude a pensar antes de programar elimina la necesidad de constantes correcciones de rumbo.

  • Limitar la longitud del archivo claud.md a menos de 300 líneas es fundamental para mantener un rendimiento óptimo del agente.

  • La ejecución orientada a objetivos requiere convertir cada tarea en criterios de éxito verificables mediante pruebas automatizadas.

  • Implementar cambios quirúrgicos en el código evita que el agente se distraiga realizando mejoras no solicitadas en áreas adyacentes.

  • Priorizar las reglas en el archivo claud.md, situando las instrucciones estrictas y no negociables al principio, mejora drásticamente la precisión del agente.

  • El uso de archivos de reglas con ámbito de ruta específicos para módulos o tareas particulares evita el exceso de contexto y mantiene al agente enfocado.

Timeline

Estructuración de instrucciones y pensamiento reflexivo

  • Claude debe explicitar sus suposiciones antes de iniciar cualquier implementación.
  • La presentación de múltiples interpretaciones de una tarea permite una selección de implementación más precisa.
  • El pensamiento reflexivo previo a la escritura de código reduce las adivinanzas basadas en patrones de entrenamiento.

La configuración inicial del archivo claud.md define la calidad de la salida. Al exigir que el agente desglose su razonamiento y presente alternativas, se minimiza la divergencia entre la intención del usuario y la ejecución técnica.

Simplicidad, cambios quirúrgicos y objetivos verificables

  • La simplicidad debe ser una regla especificada para evitar soluciones verbosas que consumen tokens innecesariamente.
  • Los cambios quirúrgicos limitan la acción del agente exclusivamente a lo solicitado, evitando mejoras adyacentes no autorizadas.
  • La definición de criterios de éxito verificables y la implementación de pruebas automatizadas aseguran que el comportamiento final coincida con lo previsto.

Se establece un marco donde el agente debe priorizar soluciones concisas y verificar el resultado mediante casos de prueba. Para interfaces visuales, se recomienda integrar herramientas como el MCP de Puppeteer para que el agente pueda validar los elementos de la interfaz.

Gestión de herramientas y flujo de trabajo continuo

  • Las herramientas personalizadas o no estándar deben declararse explícitamente, pues no forman parte de los datos de entrenamiento.
  • El archivo claud.md debe evolucionar constantemente, incorporando lecciones aprendidas de correcciones previas.
  • Los comandos de ejecución del proyecto, como el uso de pnpm frente a npm, deben especificarse claramente.

El archivo de configuración no es estático; debe servir como una base de conocimiento que crezca con cada iteración. La inclusión de comandos de CLI específicos y la actualización continua basada en errores pasados mejoran la fiabilidad del agente.

Seguridad, modularización y jerarquía de reglas

  • Los comandos irreversibles requieren confirmación obligatoria por parte del usuario para proteger la producción.
  • El uso de archivos de reglas con ámbito de ruta en monorepositorios evita la inflación del archivo global y mantiene el enfoque.
  • Las reglas deben ordenarse por prioridad: primero las estrictas, luego las medias y finalmente las de referencia.

La gestión de grandes proyectos requiere una estructura modular donde el archivo global contenga solo instrucciones universales. Mantener el archivo por debajo de 300 líneas y organizar las instrucciones por criticidad asegura que el agente no pierda el enfoque en los objetivos principales.

Community Posts

View all posts