← Volver al listado de tecnologías

Capítulo 2: Flujos de Trabajo Avanzados y Subagentes

Por: Artiko
claude-codesubagentesmcpautomatizaciónworkflows

Capítulo 2: Flujos de Trabajo Avanzados y Subagentes

En este capítulo exploraremos las características más poderosas de Claude Code: los subagentes especializados y los flujos de trabajo avanzados que te permitirán automatizar tareas complejas.

🎯 Objetivos del Capítulo

Al finalizar este capítulo serás capaz de:

Subagentes Especializados

Claude Code puede delegar automáticamente tareas a subagentes especializados, cada uno optimizado para un tipo específico de trabajo.

¿Qué son los Subagentes?

Los subagentes son instancias especializadas de Claude que:

Tipos de Subagentes

# Ver subagentes disponibles
claude agents list

# Subagente para análisis de código
claude --agent analyzer "Encuentra problemas de seguridad en el código"

# Subagente para generación de tests
claude --agent tester "Crea tests para el módulo de autenticación"

# Subagente para documentación
claude --agent docs "Documenta todas las funciones públicas"

Crear Subagentes Personalizados

# Definir un subagente personalizado
cat > .claude/agents/reviewer.json << EOF
{
  "name": "code-reviewer",
  "description": "Especializado en code reviews",
  "tools": ["read", "comment"],
  "prompt": "Eres un revisor de código experto. Busca problemas de seguridad, rendimiento y mantenibilidad.",
  "temperature": 0.3
}
EOF

# Usar el subagente personalizado
claude --agent reviewer "Revisa los cambios en el último commit"

Model Context Protocol (MCP)

MCP permite a Claude Code acceder a fuentes de datos externas y herramientas personalizadas.

Configuración de MCP

// .claude/mcp.json
{
  "servers": {
    "database": {
      "command": "mcp-server-postgres",
      "args": ["--connection-string", "postgresql://localhost/mydb"]
    },
    "jira": {
      "command": "mcp-server-jira",
      "args": ["--api-key", "${JIRA_API_KEY}"]
    }
  }
}

Uso de MCP

# Consultar base de datos a través de MCP
claude "¿Cuántos usuarios activos tenemos en la base de datos?"

# Integración con Jira
claude "Crea un resumen de los bugs abiertos en el sprint actual"

# Acceso a APIs externas
claude "Obtén el estado actual de los servicios desde nuestra API de monitoreo"

Crear tu propio servidor MCP

// mcp-server-custom.js
import { Server } from '@anthropic/mcp';

const server = new Server({
  name: 'custom-tools',
  version: '1.0.0',
  tools: [
    {
      name: 'get_metrics',
      description: 'Obtiene métricas del sistema',
      inputSchema: {
        type: 'object',
        properties: {
          metric: { type: 'string' }
        }
      },
      handler: async ({ metric }) => {
        // Tu lógica aquí
        return { value: 42 };
      }
    }
  ]
});

server.start();

Flujos de Trabajo Complejos

1. Feature Development Completo

#!/bin/bash
# feature-development.sh

FEATURE_NAME="user-notifications"

# Paso 1: Análisis y diseño
claude "Analiza los requisitos para un sistema de notificaciones de usuario"

# Paso 2: Crear estructura
claude "Crea la estructura de archivos para el módulo de notificaciones"

# Paso 3: Implementación del backend
claude --agent backend "Implementa el servicio de notificaciones con WebSockets"

# Paso 4: Frontend
claude --agent frontend "Crea los componentes React para mostrar notificaciones"

# Paso 5: Tests
claude --agent tester "Genera tests unitarios y de integración"

# Paso 6: Documentación
claude --agent docs "Documenta la API de notificaciones"

# Paso 7: Review final
claude "Revisa la implementación completa y sugiere mejoras"

2. Refactoring Automatizado

# Identificar código que necesita refactoring
claude "Encuentra código duplicado en src/"

# Crear plan de refactoring
claude "Crea un plan detallado para eliminar la duplicación"

# Implementar refactoring paso a paso
claude --step-by-step "Ejecuta el plan de refactoring"

# Verificar que todo funciona
claude "Ejecuta los tests y verifica que no hay regresiones"

# Actualizar documentación
claude "Actualiza la documentación afectada por el refactoring"

3. Migración de Dependencias

# Script para migración completa
cat > migrate-deps.sh << 'EOF'
#!/bin/bash

# Analizar dependencias actuales
claude "Analiza package.json y encuentra dependencias desactualizadas"

# Crear branch de migración
git checkout -b dependency-migration

# Actualizar dependencias una por una
claude --careful "Actualiza React a la versión 18, ejecutando tests después de cada cambio"

# Resolver breaking changes
claude "Identifica y corrige todos los breaking changes"

# Generar reporte
claude "Genera un reporte de migración con todos los cambios realizados"
EOF

chmod +x migrate-deps.sh
./migrate-deps.sh

Extended Thinking

Para problemas complejos que requieren análisis profundo:

Activación de Extended Thinking

# Problema complejo de arquitectura
claude --think "Diseña una arquitectura de microservicios para migrar nuestro monolito"

# Optimización de rendimiento
claude --think "Analiza y optimiza el rendimiento de la aplicación"

# Debugging complejo
claude --think "El sistema falla intermitentemente en producción. Analiza los logs y encuentra la causa"

Configuración de Thinking

// .claude/thinking.json
{
  "enabled": true,
  "maxThinkingTime": 30,
  "showThoughts": true,
  "triggers": [
    "arquitectura",
    "optimización",
    "diseño de sistema",
    "debugging complejo"
  ]
}

Automatización con Scripts

Integración con Shell Scripts

#!/bin/bash
# daily-tasks.sh

# Morning routine
echo "🌅 Iniciando tareas matutinas..."

# Check de seguridad
claude "Revisa vulnerabilidades en las dependencias" > security-report.md

# Análisis de código
claude "Encuentra code smells en los cambios de ayer" > code-analysis.md

# Generar TODOs
claude "Lista las tareas pendientes basadas en los comentarios TODO" > todos.md

# Resumen
claude "Genera un resumen ejecutivo de los reportes" > daily-summary.md

echo "✅ Tareas completadas. Ver daily-summary.md"

GitHub Actions Integration

name: Claude Code Review

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  code-review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Setup Claude Code
        run: |
          curl -fsSL https://console.anthropic.com/claude-code/install.sh | sh
          echo "${{ secrets.ANTHROPIC_API_KEY }}" > ~/.claude/api-key
      
      - name: Analyze Changes
        run: |
          claude "Analiza los cambios en este PR" > analysis.md
          
      - name: Security Check
        run: |
          claude --agent security "Busca vulnerabilidades de seguridad" > security.md
          
      - name: Performance Review
        run: |
          claude "Evalúa el impacto en rendimiento" > performance.md
          
      - name: Post Comment
        uses: actions/github-script@v6
        with:
          script: |
            const fs = require('fs');
            const analysis = fs.readFileSync('analysis.md', 'utf8');
            const security = fs.readFileSync('security.md', 'utf8');
            const performance = fs.readFileSync('performance.md', 'utf8');
            
            const body = `
            ## 🤖 Claude Code Review
            
            ### 📊 Análisis General
            ${analysis}
            
            ### 🔒 Seguridad
            ${security}
            
            ### ⚡ Rendimiento
            ${performance}
            `;
            
            github.rest.issues.createComment({
              ...context.repo,
              issue_number: context.issue.number,
              body
            });

Pipelines de Datos

Procesamiento con Pipes

# Análisis de logs en tiempo real
tail -f app.log | claude --stream "Detecta errores y anomalías"

# Procesamiento de CSV
cat data.csv | claude "Convierte a JSON y valida los datos"

# Chain de comandos
find . -name "*.js" | \
  claude "Lista archivos que necesitan refactoring" | \
  xargs -I {} claude "Refactoriza {}"

Transformación de Datos

# JSON a SQL
cat users.json | claude "Genera INSERT statements SQL"

# API response a Markdown
curl https://api.example.com/stats | \
  claude "Convierte a tabla Markdown"

# Logs a métricas
grep ERROR app.log | \
  claude "Genera estadísticas de errores por categoría"

Control de Output

Formatos de Salida

# JSON output
claude --output json "Lista los archivos del proyecto con su propósito"

# Markdown
claude --output markdown "Documenta la API"

# Plain text
claude --output text "Resume el proyecto"

# Código
claude --output code "Genera una función para validar emails"

Templates de Output

# Crear template
cat > .claude/templates/pr-description.md << 'EOF'
## Summary
{{summary}}

## Changes
{{changes}}

## Testing
{{testing}}

## Screenshots
{{screenshots}}
EOF

# Usar template
claude --template pr-description "Genera descripción para el PR de la feature de login"

Optimización de Prompts

Prompts Efectivos

# ❌ Prompt vago
claude "mejora el código"

# ✅ Prompt específico con contexto
claude "Optimiza src/api/users.js para reducir el tiempo de respuesta, 
        manteniendo compatibilidad con la API v2 y añadiendo cache Redis"

Context Injection

# Añadir contexto del proyecto
cat PROJECT.md | claude "Con este contexto, implementa la feature de exportación"

# Múltiples archivos de contexto
claude --context README.md,ARCHITECTURE.md,API.md \
  "Crea un servicio que se integre con la arquitectura existente"

Mejores Prácticas Avanzadas

1. Chunking de Tareas

# Dividir tarea grande en chunks
claude "Divide la migración de la base de datos en 5 pasos incrementales"

# Ejecutar paso a paso
for i in {1..5}; do
  claude "Ejecuta el paso $i de la migración"
  claude "Verifica que el paso $i se completó correctamente"
done

2. Validación Continua

# Validar cada cambio
claude "Implementa la feature X" && \
claude "Ejecuta tests" && \
claude "Verifica que no hay regresiones" || \
echo "Error: Revierte los cambios"

3. Documentación Automática

# Hook post-commit
cat > .git/hooks/post-commit << 'EOF'
#!/bin/bash
claude "Actualiza la documentación basada en los cambios del último commit"
EOF
chmod +x .git/hooks/post-commit

Ejercicios Prácticos

Ejercicio 1: Crear un Subagente

  1. Define un subagente para análisis de seguridad
  2. Configúralo con herramientas limitadas
  3. Úsalo para revisar tu código

Ejercicio 2: Pipeline Completo

  1. Crea un script que:
    • Analice el código
    • Genere tests
    • Actualice documentación
  2. Ejecútalo en tu proyecto

Ejercicio 3: Integración MCP

  1. Configura un servidor MCP
  2. Conecta Claude Code a una fuente de datos externa
  3. Realiza consultas a través de Claude

Resumen

En este capítulo aprendiste:

Próximo Capítulo

En el siguiente capítulo exploraremos Testing y Debugging con Claude Code:


Siguiente: Capítulo 3 - Testing y Debugging →