Tu configuración de claude.md hace que programar con IA sea un 99% más lento
AAI LABS
Computing/SoftwareManagementInternet Technology
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.