Claude Code MODO DIOS
No es un tutorial de comanditos. Es entender como funciona Claude por dentro, codear tus propios Skills y MCPs, y dominar debugging en ArtisDoc como un profesional.
π§ Como Piensa Claude
El Loop Principal
Claude Code no es magia. Es un loop que se repite hasta completar tu tarea:
Cuando entendes el loop, podes guiar a Claude mejor. Si le das contexto claro en el INPUT, el THINK es mas preciso, el ACT usa las tools correctas, y llegas al resultado mas rapido.
Las Tools son sus Manos
Claude sin tools es solo texto. Con tools puede:
| Tool | Que hace | Permiso? |
|---|---|---|
Read |
Lee archivos del disco | NO necesita |
Glob |
Busca archivos por patron (*.java) | NO necesita |
Grep |
Busca texto dentro de archivos | NO necesita |
Edit |
Modifica archivos existentes | SI necesita |
Write |
Crea archivos nuevos | SI necesita |
Bash |
Ejecuta comandos en terminal | SI necesita |
Task |
Lanza sub-agentes para tareas complejas | NO necesita |
En vez de decir "busca el servicio de documentos", decile:
"busca DocumentService en backend/src usando Grep"
Asi le das pistas de QUE tool usar y DONDE buscar.
ποΈ Arquitectura de Claude Code
Context Builder: La Clave
Antes de cada request a la API, Claude Code arma un "contexto" con:
- CLAUDE.md - Instrucciones del proyecto (si existe)
- Skills activos - Segun tu mensaje, activa skills relevantes
- Hooks - Reglas que se ejecutan antes/despues de tools
- MCP Tools - Tools adicionales de servidores externos
- Historial - Mensajes anteriores de la conversacion
Claude tiene un limite de tokens (~200k). Si el contexto es muy grande, cosas viejas se "olvidan". Por eso es importante ser conciso y no llenar la conversacion de texto innecesario.
β‘ Skills: Que Son
Un Skill es un "Modo Experto"
Cuando activas un skill, Claude recibe instrucciones adicionales especificas para ese dominio. Es como darle un manual de experto antes de que empiece a trabajar.
Claude: "Voy a crear un servicio generico..."
No conoce tus patrones, hace lo que le parece
Claude: "Siguiendo el patron ControllerβTransformerβServiceβRepository..."
Conoce tu arquitectura, respeta convenciones
Como se Activan?
Hay dos formas:
Claude lee la description del skill y si tu mensaje matchea, lo activa solo:
Si decis "crea un endpoint para listar documentos", Claude detecta que necesita el skill y lo carga.
Podes invocar un skill directamente con slash command:
π¬ Anatomia de un Skill
Estructura de SKILL.md
Todo skill vive en .claude/skills/NOMBRE/SKILL.md
allowed-tools es una whitelist. Solo las tools listadas
pueden usarse cuando el skill esta activo. Esto es por seguridad:
Read, Grep, Glob- Solo lectura, safeEdit, Write- Puede modificar archivosBash(docker:*)- Solo comandos dockerBash(npm:*)- Solo comandos npm
El Poder de la Description
La description es lo MAS importante. Claude la lee para decidir si activar el skill.
Muy vaga, se activa para cualquier cosa
Especifica, Claude sabe exactamente cuando usarlo
π» Codear tu Propio Skill
Vamos a crear un skill real para ArtisDoc: Debugging de Performance
Crear la estructura
Definir el frontmatter
Documentar los patrones de diagnostico
Probarlo
Ahora cuando digas algo como:
Claude va a activar el skill y seguir los patrones de diagnostico que definiste.
El skill ya esta listo. Claude lo va a detectar automaticamente cuando hables de performance, queries lentas, memory, etc.
π― Patrones Avanzados de Skills
Skill con Templates de Codigo
Podes incluir templates que Claude va a copiar/adaptar:
Skill con Reglas de Negocio
Documenta reglas que Claude debe respetar:
Podes tener un skill que referencie otros skills. Por ejemplo, un skill "feature-completa" que incluya patrones de backend, frontend y tests.
π MCP: Model Context Protocol
Que Problema Resuelve?
Claude por defecto solo puede leer archivos locales. Pero que pasa si necesitas que consulte tu base de datos? O tu Jira? O Slack?
MCP es un protocolo que permite conectar Claude con servicios externos a traves de "servidores MCP" que exponen tools adicionales.
Como se Configura?
En el archivo .mcp.json en la raiz del proyecto:
Cuando Claude Code inicia, levanta el proceso npx @bytebase/dbhub y se comunica via stdin/stdout.
π‘ El Protocolo MCP
JSON-RPC sobre stdio
MCP usa JSON-RPC 2.0. Los mensajes van por stdin/stdout del proceso:
Lifecycle de un MCP Server
| Metodo | Quien llama | Que hace |
|---|---|---|
initialize |
Claude | Handshake inicial, intercambia capacidades |
tools/list |
Claude | Pide lista de tools disponibles |
tools/call |
Claude | Ejecuta una tool especifica |
resources/list |
Claude | Lista recursos estaticos (opcional) |
π οΈ Codear tu MCP Server
Vamos a crear un MCP server simple para ArtisDoc que consulte el estado del sistema:
Setup del proyecto
Crear el servidor
Registrarlo en .mcp.json
Usarlo!
Ahora podes decirle a Claude:
Ahora Claude tiene 3 tools nuevas especificas para ArtisDoc. Podes agregar mas tools para cualquier cosa: GitLab, Elasticsearch, APIs internas, etc.
πͺ Sistema de Hooks
Que son los Hooks?
Los hooks son scripts que se ejecutan antes o despues de que Claude use una tool. Sirven para validar, loggear, o bloquear acciones.
Configuracion en settings.json
| Campo | Descripcion |
|---|---|
matcher |
Nombre de la tool a interceptar (* = todas) |
command |
Script a ejecutar (recibe JSON en stdin) |
El script recibe JSON
El hook recibe info de la tool en stdin:
Para bloquear: El script debe salir con codigo != 0 y escribir en stderr.
π‘οΈ Hooks para ArtisDoc
Hook: Bloquear comandos peligrosos
Hook: Validar ediciones en archivos criticos
Hook: Loggear todas las acciones
Esto crea un log de todo lo que Claude hace. Util para auditar o debuggear.
π Debugging: OCR No Procesa
Como pedirle a Claude que lo debuggee:
Lo que Claude va a hacer:
Verificar contenedor OCR
Revisar cola RabbitMQ
Buscar errores en logs
Verificar conexion MongoDB (donde se guardan los archivos)
El 80% de las veces es que el contenedor OCR se cayo.
Solucion: docker-compose up -d ocr
π₯ Debugging: Error 500 en Produccion
Workflow de debugging:
| Error | Causa probable | Solucion |
|---|---|---|
Connection refused |
PostgreSQL caido | docker-compose up -d postgres |
Pool exhausted |
Muchas conexiones | Reiniciar backend o aumentar pool |
OutOfMemoryError |
Heap lleno | Aumentar -Xmx en JAVA_OPTS |
LazyInitializationException |
Sesion Hibernate cerrada | Agregar @Transactional o fetch eager |
π° Debugging: RabbitMQ Muerto
El servicio que consume la cola se cayo. Verificar que el backend este corriendo y revisar logs por errores de conexion a Rabbit.
π °οΈ Debugging: Angular No Muestra Datos
Checklist de Claude:
A veces el backend devuelve { data: [...] } pero el frontend espera [...].
Verificar el mapeo en el service.
β‘ Workflows Modo Dios
Multi-file Refactor
Cuando necesitas cambiar algo en muchos archivos:
Claude va a:
- Buscar todas las referencias con Grep
- Listar los archivos afectados
- Editar cada uno mostrando el diff
- Verificar que compila despues de cada cambio
Investigacion de Codebase
Para entender como funciona algo:
Claude va a seguir el flujo archivo por archivo, mostrandote el codigo relevante.
Generar Feature Completa
π Refactor Masivo
π§ͺ TDD con Claude
El Ciclo RED-GREEN-REFACTOR
Claude genera:
Despues de cada paso, podes decirle: "correr mvn test para verificar".
Asi te aseguras que el ciclo TDD se respeta.