Domina Claude Code — De cero a 10x — 2. Los ajustes que lo cambian todo

17 min read min de lecture
Capítulo 02

Los ajustes que lo cambian todo

Capítulo 2 de 10 · 20%

Objetivos de este capítulo

  • Configurar los permisos para dejar de validar 100 veces los mismos comandos
  • Usar los modos Plan y Auto-Edit en el momento adecuado
  • Gestionar el contexto para sesiones limpias y eficaces

Permisos: deja de aprobar sin parar

Por defecto, Claude pide permiso antes de cada comando de shell y cada modificación de archivo. Es el ajuste correcto para empezar: mientras no sepas lo que hace la herramienta, cada acción merece una mirada. Pero al cabo de una hora, habrás aprobado treinta veces ls, cat y git status — comandos de lectura que no pueden romper nada. Esta fricción tiene un coste real: interrumpe tu concentración y, peor, te entrena a hacer clic en «sí» mecánicamente, lo que arruina el interés mismo del control.

La solución: autorizar de una vez por todas los comandos no destructivos, y mantener la validación manual para los que modifican el estado de tu sistema o tocan la red de forma sensible. El sistema de permisos de Claude Code se basa en listas de autorización por herramienta y por patrón de comando, almacenadas en archivos de configuración. Puedes consultarlas y modificarlas en cualquier momento con el comando /permissions.

Lo más simple para empezar: pega este prompt en Claude Code — actualizará tu archivo .claude/settings.local.json, donde viven tus permisos locales:

PROMPT
añade permisos a este proyecto claude code para autorizar los comandos bash no destructivos: WebSearch, WebFetch, source, export, curl, jq, cat, ls, grep, echo, which, wc, file, pwd, mkdir, touch, head, tail, find, sort, tree, diff, node, npm, npx, git status, git diff, git log
Son comandos de solo lectura o de bajo riesgo. Claude seguirá preguntándote por los comandos que ejecutan código arbitrario (python, scripts), eliminan archivos (rm) o modifican el historial (git commit, git push) — mantienes el control donde importa.

Anatomía de los archivos de configuración

Claude Code lee sus ajustes en tres niveles, del más general al más específico: ~/.claude/settings.json (tus ajustes personales, válidos en todas partes), .claude/settings.json (los ajustes del proyecto, a versionar en Git para compartirlos con un equipo), y .claude/settings.local.json (tus ajustes locales para este proyecto, ignorados por Git). Los permisos concedidos «para este proyecto» aterrizan en este último.

json
{
  "permissions": {
    "allow": [
      "Bash(ls:*)",
      "Bash(cat:*)",
      "Bash(git status)",
      "Bash(git diff:*)",
      "WebSearch",
      "WebFetch(domain:docs.anthropic.com)"
    ],
    "deny": [
      "Bash(rm -rf:*)"
    ]
  }
}

Lee este archivo una vez para entender la lógica: cada entrada combina una herramienta (Bash, WebFetch…) y un patrón. Bash(git diff:*) autoriza git diff con cualquier argumento, pero no git push. La lista deny siempre prevalece sobre allow: es tu cinturón de seguridad, incluso si una regla de autorización es demasiado amplia.

Modos: Plan vs Auto-Edit

Más allá de los permisos comando por comando, Claude Code tiene modos de permiso que controlan su grado de autonomía global. En la terminal, pasas de uno a otro con Shift+Tab; en la extensión, un selector hace lo mismo. La práctica de los usuarios experimentados: pasar la mayor parte del tiempo en Plan Mode o Ask Before Edits durante la fase de reflexión.

En Plan Mode, Claude no toca nada: lee, analiza y te presenta un plan de acción detallado. Ahí se juega todo. Lees lo que propone, debates, pides revisiones: «¿por qué este enfoque y no aquel otro?», «añade una etapa de verificación aquí». Mientras el plan no esté validado, te quedas en modo restrictivo. Una vez fijado el plan, cambias a Auto-Edit (aceptación automática de las modificaciones) y lo dejas ejecutar rápido, sin interrumpirte en cada archivo.

  • Plan Mode → fase de diseño: Claude lee y planifica, no modifica nada. Ideal para tareas complejas o nuevas.
  • Ask Before Edits (por defecto) → Claude propone cada modificación y espera tu acuerdo. Buen compromiso para el día a día.
  • Auto-Edit → fase de ejecución: el plan está validado, Claude avanza sin interrumpirte en las ediciones de archivos.
flowchart LR
  A["Plan Mode: Claude propone"] --> B{"¿Plan validado?"}
  B -->|"No: se debate, se revisa"| A
  B -->|"Sí"| C["Auto-Edit: ejecución rápida"]
  C --> D["Relectura del resultado"]
  D --> E["/clear y siguiente tarea"]
El ciclo de trabajo: diseñar en modo restrictivo, ejecutar en modo permisivo, empezar de nuevo limpio.
La calidad se juega en la planificación. Diez minutos desafiando un plan te ahorran una hora depurando una ejecución que se torció. Invierte tu atención ahí, no en releer código a posteriori.

El modo YOLO: manejar con precaución

Existe un nivel por encima: lanzar Claude Code con claude --dangerously-skip-permissions, que desactiva todas las peticiones de permiso. El nombre es explícito — es intencionadamente intimidante. Este modo tiene usos legítimos: tareas largas y bien acotadas (corregir errores de lint en 50 archivos, generar boilerplate) donde cada interrupción arruina el interés de la automatización.

Pero entiende lo que firmas: Claude puede entonces ejecutar cualquier comando sin consultarte. La recomendación de Anthropic es reservar este modo para entornos aislados — un contenedor Docker, una máquina virtual, una carpeta sin datos sensibles. En tu puesto de trabajo principal, con tus archivos reales de clientes, conténtate con las listas de autorización: obtienes el 95% de la fluidez con el 5% del riesgo.

Contexto: empezar limpio con /clear y /compact

Cada conversación con Claude vive en una ventana de contexto: la memoria de trabajo del modelo. Todo entra ahí — tus mensajes, sus respuestas, el contenido de los archivos leídos, las salidas de comandos. Esta ventana es grande pero finita, y sobre todo: cuanto más se llena de cosas sin relación con tu tarea actual, más se degradan las respuestas. El modelo empieza a mezclar temas, a recuperar decisiones de una tarea anterior, a perder el hilo.

Cuando empiezas una nueva tarea (nueva funcionalidad, corrección, tema diferente), limpia la conversación para empezar con un contexto limpio. Existen dos comandos, y no hacen lo mismo:

/clearBorra todo el historial de la conversación. Empieza de cero. A usar entre dos tareas sin relación: es el reflejo más importante del capítulo.
/compactResume la conversación en curso para liberar espacio conservando lo esencial. A usar en medio de una tarea larga cuando el contexto se satura pero necesitas la continuidad.

El buen reflejo: /clear por defecto entre tareas, /compact solo cuando estás en medio de algo largo y Claude te avisa de que el contexto se llena. Ten en cuenta que Claude Code también activa una compactación automática cuando la ventana se acerca a la saturación — pero una compactación elegida en el momento adecuado (después de una etapa terminada, no en medio de un razonamiento) preserva mejor la calidad.

El atajo que recarga tu contexto

«¡Pero si hago /clear, Claude olvida todo mi proyecto!» Exacto — y por eso existe el capítulo 8. El archivo CLAUDE.md, leído automáticamente al inicio de cada sesión, contiene el contexto permanente de tu proyecto. /clear borra el ruido conversacional; CLAUDE.md garantiza que lo esencial siempre vuelve.

Truco de experto mientras tanto: crea un atajo (por ejemplo un pequeño comando qnew) que pida a Claude releer tu CLAUDE.md y resumir en qué punto está el proyecto. Así cada sesión arranca con todo el contexto del proyecto, sin el ruido de las conversaciones pasadas. Verás en el capítulo 8 cómo construir este archivo correctamente.

🛠️ Te toca a ti

Contexto

El proyecto de Lea va a encadenar muchos comandos de lectura: listar archivos, leer logs de publicación, verificar estados de Git. Antes de construir la menor skill, quieres un entorno fluido donde Claude solo te interrumpa para las decisiones reales. Vas a configurar los permisos y luego experimentar el ciclo Plan → Auto-Edit en una tarea real.

Instrucciones

  1. Pide a Claude añadir los permisos no destructivos (usa el prompt del capítulo).
  2. Abre el archivo .claude/settings.local.json generado y lee la lista: identifica la sintaxis Bash(comando:*).
  3. Escribe /permissions para ver la misma lista desde la interfaz de Claude Code.
  4. Pasa a Plan Mode (Shift+Tab) y pide un plan para «preparar la estructura del proyecto: una carpeta para las skills, una para los logs, un archivo de configuración» — observa que planifica en lugar de ejecutar.
  5. Desafía el plan: pídele justificar una elección o añadir una etapa.
  6. Cambia a Auto-Edit y déjalo ejecutar el plan validado sin interrupción.
  7. Termina con /clear para empezar limpio antes del próximo capítulo.
Pista — Puedes cambiar de modo en cualquier momento con Shift+Tab; empieza restrictivo, termina permisivo. Y si dudas sobre un permiso, no lo concedas en global: acepta solo «por esta vez».

En resumen

  • Autoriza los comandos no destructivos una vez para no revalidarlos más: la fricción mecánica mata la vigilancia.
  • Los permisos viven en .claude/settings.local.json (local), .claude/settings.json (proyecto) y ~/.claude/settings.json (global); deny siempre prevalece.
  • Quédate en Plan Mode para diseñar y debatir, cambia a Auto-Edit para ejecutar rápido (Shift+Tab).
  • --dangerously-skip-permissions existe para tareas largas en entornos aislados — nunca con datos sensibles.
  • /clear entre dos tareas sin relación; /compact en medio de una tarea larga que se satura.
  • El ruido de las tareas anteriores degrada las respuestas: un contexto limpio es una palanca de calidad gratuita.
  • CLAUDE.md (capítulo 8) garantiza que lo esencial del proyecto sobrevive a los /clear.

Quiz — comprueba tu comprensión

1. ¿Cuándo deberías quedarte en Plan Mode?

El modo restrictivo sirve para el diseño; se cambia a Auto-Edit una vez fijado el plan.

2. ¿Por qué limpiar el contexto entre dos tareas?

Un contexto limpio da respuestas más pertinentes; CLAUDE.md permite recargar lo esencial.

3. ¿Cuál es la diferencia entre /clear y /compact?

/clear empieza de cero (entre dos tareas); /compact condensa la conversación en curso para liberar espacio sin perder el hilo.

4. ¿En qué archivo aterrizan los permisos concedidos localmente para un proyecto?

settings.local.json contiene tus permisos locales del proyecto, no versionados en Git. settings.json (proyecto) sirve para las reglas compartidas en equipo.

5. ¿Cuál es el buen uso de --dangerously-skip-permissions?

Este modo desactiva todas las validaciones: solo tiene sentido en tareas bien definidas, en un entorno donde un error no cuesta nada.

Auteur(s)

R

REHOUMA Haythem

Haythem Rehouma est un ingénieur et architecte IA et cloud, formateur et enseignant technique, avec un profil orienté IA médicale, AWS, MLOps, LLM/RAG et vision par ordinateur.