Cada herramienta que Claude Code tiene a su disposición — Read, Glob, Grep, Edit, Write, Bash, Agent, WebFetch — se usa en un momento concreto del ciclo. Entender ese mapa convierte un agente que "más o menos funciona" en un agente que rinde como un senior.
Objetivos
Conocer las 8 herramientas internas más usadas y cuándo elige cada una.
Distinguir la fase Read (búsqueda) de la fase Edit (escritura).
Saber cuándo usar plan mode, auto mode y default mode.
Guiar al agente con prompts que provoquen un buen ciclo (no atajos).
Reconocer cuándo el agente está perdido y cómo redirigirlo.
3.1 Herramientas del agente
Claude Code expone al modelo un conjunto de herramientas (tools) que el modelo decide invocar. Tú no las llamas directamente — el modelo lo hace en función de tu prompt. Pero conocerlas te permite escribir mejores prompts.
Herramienta
Qué hace
Fase
Read
Lee el contenido de un fichero. Soporta ranges (offset+limit), PDF, imágenes.
Read
Glob
Encuentra ficheros por patrón (src/**/*.ts).
Read
Grep
Busca por contenido (regex). Devuelve matches con contexto.
Read
Bash
Ejecuta un comando del shell. Capturado, con timeout.
Read / Verify
Edit
Reemplazo exacto de un trozo de fichero. Falla si el target no es único.
Edit
Write
Crea o sobreescribe un fichero entero.
Edit
Agent
Lanza un sub-agente con su propio contexto y herramientas.
Read (delegación)
WebFetch / WebSearch
Lee una URL o busca en la web.
Read (info externa)
Read vs Bash(cat) — por qué importa
Aunque cat archivo.ts y Read archivo.ts dan información parecida, Claude Code prefiere Read porque:
Devuelve líneas numeradas (clave para Edit).
Trunca de forma controlada con offset/limit.
Maneja PDF, imágenes, notebooks Jupyter de forma nativa.
Queda registrado en el transcript como "lectura" (auditoría).
Si pides "muéstrame el archivo X" y el agente usa cat, es una pista de que el prompt es ambiguo o el modelo está cogiendo atajos.
Regla: dejar al agente elegir la herramienta. No le digas "usa grep para buscar X" salvo que tengas un motivo concreto. Casi siempre escogerá la mejor por sí mismo.
3.2 Cómo busca un buen agente
Cuando le pides un cambio, Claude Code no salta a editar. Antes hace una fase Read típica de tres pasos:
Glob para acotar archivos candidatos por patrón.
Grep para localizar el símbolo / función / cadena exacta dentro de esos archivos.
Read de los ficheros relevantes, leyendo solo los rangos que importan.
Ejemplo: pides "renombra getUserById a fetchUser". Pulsa Reproducir y verás cómo lo encadena el agente:
victor@mac · ~/proyecto-empresa
Si la búsqueda fuese ambigua (un nombre muy genérico, p. ej. handle), el agente delega a un sub-agente Explore antes de decidir — verás esto en el Módulo 6.
Cuándo Read NO es suficiente
Read tiene un límite de líneas por llamada (2000 por defecto). Para ficheros enormes — un log de 80 MB, un dump SQL — el agente usa Bash con wc -l, grep, tail, jq según el formato. Es la herramienta correcta para volumen masivo, no Read.
3.3 Plan mode
Por defecto Claude Code va directo de Read a Edit. Si quieres que se detenga y te enseñe el plan antes de tocar nada, activa plan mode.
> /plan
Mientras estés en plan mode, todas las herramientas de escritura (Edit, Write, Bash con efectos secundarios) están bloqueadas. El agente puede leer todo lo que quiera, pero termina entregando un plan estructurado:
Plan propuesto
1. Refactor de PaymentService.ts
- Extraer validación a PaymentValidator.ts
- Mover el cálculo de comisión a CommissionCalculator.ts
2. Tests
- Mover tests existentes al nuevo módulo PaymentValidator.test.ts
- Añadir 4 tests nuevos para CommissionCalculator
3. Verificación
- npm run lint
- npm test
¿Aprobar plan? (sí / no / cambia)
Tú apruebas, ajustas o rechazas. Solo cuando apruebas se sale de plan mode y empieza la fase Edit.
Cuándo usar plan mode: cambios que tocan más de 5 archivos, refactorizaciones arquitecturales, migraciones, cualquier cosa donde el coste de equivocarse sea alto. Para una corrección puntual no merece la pena.
3.4 Auto mode
El opuesto a plan mode. Activado con:
> /auto
En auto mode el agente asume permisos por defecto y procede sin pedirte confirmación a cada paso. Útil para tareas largas y mecánicas: regenerar 200 schemas, formatear archivos, actualizar imports.
Auto mode no es licencia para hacer cualquier cosa. Sigue:
Pidiendo confirmación para acciones destructivas (rm, drop tables, force push).
Respetando la deny list del settings.json.
Aplicando los hooks de seguridad que tengas configurados.
Comparativa de los 3 modos
Modo
Edición
Confirmaciones
Cuándo
Plan
Bloqueada
—
Cambios complejos antes de tocar
Default
Permitida
Pide confirmación en duda
El día a día
Auto
Permitida
Mínimas
Tareas largas y mecánicas
3.5 Buenos vs malos prompts
El mismo agente con el mismo modelo rinde radicalmente distinto según cómo le pidas. Cuatro patrones que separan al usuario novato del experto:
1. Decir el qué Y el porqué
✗ Mal
"Renombra getUser a fetchUser"
✓ Bien
"Renombra getUser a fetchUser en src/api/users.ts y todos los callsites — para alinear con la convención fetchX que usa el resto del módulo. Actualiza tests."
2. Acotar el alcance
✗ Mal
"Mejora el rendimiento de la app"
✓ Bien
"En src/services/Search.ts, la query buildIndex() tarda >800ms en producción. Léela, identifica si es la sort, el join o la deserialización, y propón 1 cambio puntual. No toques otras funciones."
3. Pedir verificación explícita
✗ Mal
"Añade el endpoint /webhook"
✓ Bien
"Añade el endpoint POST /webhook con validación de firma HMAC. Cuando termines, ejecuta npm test y comprueba que el test del webhook pasa antes de declarar terminado."
4. Decir lo que NO debe hacer
✗ Mal
"Refactoriza el módulo Auth"
✓ Bien
"Refactoriza Auth.login() para extraer la validación a un helper. NO cambies la firma pública. NO toques otras funciones del módulo. NO añadas nuevas dependencias."
Heurística general: un buen prompt incluye qué (acción), dónde (archivos), por qué (motivación), cómo verificar (criterio de éxito) y qué evitar (anti-patrones). 30 segundos extra escribiendo el prompt ahorran 5 minutos discutiendo con el agente.
Tu turno · escribe un prompt para la siguiente tarea
Escenario: en un proyecto Node + TypeScript hay un servicio src/services/Search.ts con la función buildIndex() que en producción tarda > 800 ms. Sospechas que es la deserialización JSON, pero no quieres tocar otras funciones. Quieres que el agente diagnostique y proponga UN cambio puntual, además de añadir un test de regresión.
Escribe el prompt que le pasarías. Te evaluamos cuatro cosas: extensión, alcance (qué archivo / qué no tocar), verificación (test, lint, etc.) y el porqué (motivación). Evita frases vacías como "arregla los bugs" o "mejora todo".
3.6 Cuándo el agente se pierde
Tres síntomas habituales y cómo recuperar:
Síntoma A · "Sigue editando archivos que no le he pedido"
Causa: el prompt era ambiguo, el agente está siendo proactivo. Recuperación: detén con Ctrl+C, ejecuta git checkout . para descartar lo que no quieras, y reformula con scope estricto ("toca solo este fichero").
Síntoma B · "Da vueltas, no termina"
Causa: la tarea es demasiado grande para una sola pasada. Recuperación: parte la tarea en sub-tareas explícitas. Ejemplo: en lugar de "migra todo el módulo a Vue 3", pide "lista los 12 componentes que hay que migrar" en una sesión, y luego migra uno a uno.
Síntoma C · "Inventa archivos que no existen"
Causa: contexto pobre o instrucciones contradictorias. Recuperación: ejecuta /clear, ejecuta /init si no hay CLAUDE.md, y reformula. Si persiste, es señal de que el repo tiene una arquitectura no estándar — añade más contexto al CLAUDE.md.
3.7 Verificar bien
El paso Verify suele ser el más débil del ciclo. Cosas que un buen prompt incluye:
Test unitarios. "Ejecuta npm test y solo declara terminado si pasan."
Build. "Asegúrate de que npm run build compila sin errores."
Lint. "Pasa npm run lint. Si hay warnings nuevos, decídelo conmigo."
Type check. "Verifica con tsc --noEmit que no se rompe el typing."
Comportamiento. "Para cambios de UI: arranca el dev server, abre la URL en Chrome, haz una acción, comprueba el resultado." (vía MCP — Módulo 7).
Atención: "los tests pasan" no es lo mismo que "la feature funciona". Para cambios de UI o de lógica de negocio, exige verificación funcional, no solo verde en CI.
Práctica
Ejercicio 3.1 · Identificar fases
Pide a Claude Code en un repo: "Lista todas las funciones exportadas en src/utils/ que no estén siendo usadas en ningún otro fichero". Después, en el transcript, identifica:
Qué herramientas usó en la fase Read.
¿Hubo fase Edit? ¿Por qué sí o por qué no?
¿Hizo verificación? Si no, ¿qué verificación pedirías tú?
Ejercicio 3.2 · Plan mode en acción
Sobre el repo de práctica de Express, activa plan mode con /plan y pide:
Migra el proyecto de Express 4 a Express 5. Quiero ver el plan completo antes de aplicar nada.
Examina el plan que devuelve. ¿Cuántos pasos? ¿Qué archivos toca? ¿Qué riesgos identifica? Apruébalo o ajústalo. NO ejecutes la migración real — solo evalúa el plan.
Ejercicio 3.3 · Mejorar un prompt
Reformula este prompt malo siguiendo las cuatro reglas (qué, alcance, verificación, qué evitar):
"Arregla los bugs"
Dispón de unos 60-80 palabras. Asume un proyecto Node.js con tests jest.
Test de comprensión
1. ¿Qué herramienta usa Claude Code para encontrar todos los usos de una función?
Read
Glob
Grep
Edit
Respuesta correcta: C · Grep. Glob acota archivos por patrón de nombre, Grep busca por contenido. Para encontrar usos de una función, primero Glob para reducir el conjunto, luego Grep para localizar líneas.
2. Estás en plan mode. ¿Qué puede hacer Claude Code?
Editar archivos sin restricción.
Solo leer y proponer un plan.
Ejecutar git push.
Crear archivos nuevos pero no modificar los existentes.
Respuesta correcta: B. Plan mode bloquea Edit, Write y Bash con efectos secundarios. Solo puede leer y proponer.
3. Tu agente está dando vueltas en una tarea grande sin terminar. ¿Qué haces?
Esperar más.
Cambiar de modelo.
Partir la tarea en sub-tareas explícitas.
Reiniciar el ordenador.
Respuesta correcta: C. Es síntoma de tarea demasiado grande para una sola pasada. Pide al agente que primero liste los pasos / componentes y luego ataca uno a uno.
4. ¿Qué pieza falta en este prompt? "Refactoriza la función Auth.login() para extraer la validación."
El qué (la acción está clara).
El alcance — no se dice qué archivos puede tocar y cuáles no.
La verificación.
B y C son correctas.
Respuesta correcta: D. Falta el alcance ("solo en este fichero") y la verificación ("ejecuta los tests"). Cualquier prompt productivo debe incluir ambos.
Resumen
Read, Glob, Grep, Bash, Edit, Write, Agent, WebFetch — las 8 tools que mueven el ciclo.
El agente busca en orden Glob → Grep → Read antes de tocar.
Plan mode = leer y proponer; Auto mode = avanzar sin confirmaciones; Default = el equilibrio.
Buen prompt = qué + dónde + por qué + cómo verificar + qué no hacer.
Si el agente se pierde: /clear, partir la tarea, mejorar CLAUDE.md.
En el siguiente módulo profundizamos en los slash commands, el sistema de permisos y cómo configurar Claude Code para tu organización.