Saltar al contenido
MaestrIA

Formación › Programar con Claude Code en 12 horas › Hora 12

Programar con Claude Code en 12 horas · hora 12 de 12

Automatizar y entregar

Hasta ahora has trabajado con Claude Code en una conversación. El último paso es sacarlo de ella: un script que revisa datos cada noche, una comprobación en la integración continua o un cambio repartido entre muchos ficheros. Verás una ejecución real con salida JSON y cómo hacerla segura.

Al terminar sabrásEjecutar Claude Code sin conversación con claude -p, obtener una salida que un script pueda leer, limitar sus permisos para que trabaje desatendido y decidir cuándo repartir un cambio grande.

60 minutos· 1 esquema· 6 preguntas· 1 ejercicio· entregable

Repaso

Comprueba De la hora 10: tu hook PreToolUse detecta una edición prohibida. ¿Cómo la bloquea?

Comprueba De la hora 7: ¿qué modo deniega, sin preguntar, lo que en modo manual te preguntaría?

Comprueba De la hora 11: en claude -p, ¿qué pasa con los servidores de un .mcp.json del proyecto?

Vocabulario

claude -p
Claude Code sin conversación: recibe la petición, trabaja y devuelve el resultado.
--output-format json
Devuelve el resultado como JSON, para que lo lea otro programa.
--allowedTools
Las herramientas o comandos que puede usar sin preguntar en esa ejecución.
/batch
Una skill incluida que reparte un cambio grande entre varios subagentes, cada uno en su worktree.

El ejemplo: una revisión que un script puede leer

Antes y después Una ejecución sin conversación

Los ejemplos de esta hora están escritos para Bash: en Windows, ejecútalos en Git Bash o en WSL. Más abajo tienes el bucle también en PowerShell.

Claude Code sin conversación

Según la documentación, claude -p "petición" ejecuta Claude Code sin conversación interactiva, y es la forma de integrarlo en scripts, ganchos de Git o la integración continua. Con --output-format json devuelve un objeto con el resultado; con stream-json, un evento por línea.

Ejemplos de la documentación
claude -p "Explica qué hace este proyecto"
claude -p "Lista los endpoints de la API" --output-format json
cat error.log | claude -p "explica este error"

Desatendido, pero con permisos justos

Desde la versión 2.1.302, claude -p sin modo indicado empieza en manual y deniega lo que necesitaría confirmación. Para que haga lo que necesita y nada más:

  • --allowedTools con lo justo, por ejemplo --allowedTools "Edit,Bash(git commit *)".
  • --permission-mode dontAsk, para que deniegue todo lo demás sin preguntar.
  • Revisa antes el .mcp.json del proyecto: en -p sus servidores se cargan sin aprobación.
Cómo decide Claude Code si puede hacer algoCada acción pasa por las reglas en orden: si coincide con una regla deny se bloquea; si no, si coincide con ask se pregunta; si no, si coincide con allow se permite; si no coincide con ninguna, decide el modo de permisos.Acciónp. ej. Bashdeny¿coincide?sí → bloqueanoask¿coincide?sí → preguntanoallow¿coincide?sí → permitenoEl mododecideUn allow nunca abre una excepción dentro de un deny.Un hook que sale con código 2 bloquea antes incluso de mirar las reglas.
En una ejecución desatendida, las reglas y el modo son tu única protección: nadie va a leer una pregunta.

Repartir un cambio grande

Para migraciones o análisis sobre cientos de ficheros, la documentación propone dos caminos:

  1. /batch <instrucción>: reparte el cambio entre varios subagentes, cada uno en su worktree.
  2. Un bucle propio: genera la lista de ficheros y llama a claude -p para cada uno. La recomendación oficial es probar primero con dos o tres ficheros, afinar la petición con lo que falle y solo entonces lanzar el resto.
Bucle de la documentación (adaptado)
for f in $(cat ficheros.txt); do
  claude -p "Migra $f al formato nuevo. Responde OK o FALLO." --allowedTools "Edit,Bash(git commit *)" --permission-mode dontAsk
done
El mismo bucle en PowerShell
Get-Content ficheros.txt | ForEach-Object {
  claude -p "Migra $_ al formato nuevo. Responde OK o FALLO." --allowedTools "Edit,Bash(git commit *)" --permission-mode dontAsk
}

Practica

Ordena Ordena cómo poner en marcha una automatización con claude -p

  1. Probar con dos o tres casos y afinar
  2. Elegir la salida que leerá tu script (texto o JSON)
  3. Escribir la petición y probarla a mano en una sesión
  4. Lanzarlo en el script o en la integración continua
  5. Limitar permisos con --allowedTools y dontAsk

Comprueba lo que has aprendido

Comprueba Tu script lanza claude -p sin modo ni permisos y Claude necesita editar un fichero. ¿Qué pasa?

Comprueba Vas a migrar 2.000 ficheros con un bucle de claude -p. ¿Qué haces primero?

Comprueba La ejecución real devolvió un JSON limpio. ¿Por qué validarlo igualmente en el script?

Entregable Tu automatización

Mínimo: escribe un script que use claude -p sobre el repositorio de práctica para revisar los datos y devolver un JSON con los problemas, con permisos limitados y validando la salida. Ampliación: llévalo a un caso tuyo o a la integración continua. Pega aquí el script, la salida de una ejecución y qué hace el script si la salida no es válida.

Está bien si: el script usa --permission-mode dontAsk o plan y nada más amplio; valida el JSON y sale con error si no lo es; y lo has probado con dos o tres casos, uno de ellos con datos sin problemas. Tiempo: unos 35 minutos el mínimo.

Lo esencial

  • claude -p lleva Claude Code a scripts y a la integración continua; --output-format json da una salida que un programa puede leer.
  • Desatendido, permisos justos: --allowedTools y dontAsk, y revisa el .mcp.json.
  • Valida siempre la salida antes de usarla.
  • Para cambios grandes, /batch o un bucle, probando antes con dos o tres casos.

Fuentes y para seguir

Lección revisada el 24/10/2026 con la documentación oficial enlazada en sus fuentes. Revisamos los cursos cada trimestre.