La mayoría de los usuarios de Claude Code todavía escriben sus flujos de trabajo a mano. Encadenan prompts, copian resultados, los pegan en el siguiente prompt, arreglan lo que salió mal y repiten.
9 de cada 10 desarrolladores ni siquiera han probado los Flujos de Trabajo Dinámicos, aunque se lanzaron hace dos semanas.
Escriben 50 prompts cuando un solo flujo de trabajo sería suficiente. Esta es la hoja de ruta de 14 pasos y los 6 patrones que los propios ingenieros de Anthropic usan realmente: para migraciones, investigación, clasificación, análisis de causa raíz, triaje y evaluaciones.
Sigue mi Substack para recibir información actualizada sobre IA:
Los Flujos de Trabajo Dinámicos se lanzaron en Claude Code el 28 de mayo de 2026. El entorno base predeterminado de Claude Code está diseñado para programar, y funciona bien para la mayoría de las tareas de codificación. Pero hay tipos de trabajo donde una sola ventana de contexto comienza a fallar: procesos de larga duración, masivamente paralelos, altamente estructurados o adversariales.
Para esos casos, Anthropic solía crear sus propios entornos personalizados (Investigación, Revisión de Código, equipos de agentes). Con los Flujos de Trabajo Dinámicos, Claude escribe ese entorno por ti sobre la marcha, diseñado a medida para tu tarea, en JavaScript.

14 pasos. 6 patrones. Un flujo de trabajo en lugar de cincuenta prompts.
Parte 1 · El Modelo Mental
01. Un flujo de trabajo es un entorno que escribe Claude.
El entorno base predeterminado de Claude Code hace que Claude planifique y ejecute en la misma ventana de contexto. Para la mayoría del trabajo de codificación, esto es excelente. Para trabajo de larga duración, paralelo o adversarial, falla.
Un Flujo de Trabajo Dinámico es Claude escribiendo su propio entorno personalizado para la tarea: un archivo JavaScript con algunas funciones especiales que crean y coordinan subagentes, más JavaScript estándar (Math, JSON, Array) para procesar los datos que fluyen entre ellos.
Tres cosas que esto te da que el entorno predeterminado no puede:
- Aislamiento por agente. Cada subagente obtiene su propia ventana de contexto con un objetivo enfocado. Sin contaminación cruzada.
- Elección de modelo por agente. El flujo de trabajo selecciona qué modelo usa cada subagente: Opus para razonamiento complejo, Haiku para exploración económica, Sonnet para el punto medio.
- Nivel de aislamiento por agente. Worktree (checkout de git aislado) o remoto (sin checkout). El flujo de trabajo decide lo que necesita cada agente.
Inicia uno pidiéndoselo directamente a Claude ("crea un flujo de trabajo que...") o con la palabra clave ultracode. Si un flujo de trabajo se interrumpe (acción del usuario, cierre del terminal), reanudar la sesión continúa desde donde se quedó.
02. Los 3 modos de fallo que resuelven los flujos de trabajo.
Para saber cuándo un flujo de trabajo es la herramienta adecuada, debes conocer qué soluciona. Cuanto más tiempo trabaja Claude en una tarea compleja en una sola ventana de contexto, más susceptible se vuelve a tres modos de fallo específicos, nombrados directamente en el documento de lanzamiento de Anthropic:
- Pereza del agente: Claude se detiene antes de terminar una tarea compleja de múltiples partes y declara el trabajo como completado después de un progreso parcial. Aborda 20 de los 50 elementos en una revisión de seguridad y llama al resto "gestionado".
- Sesgo de autopreferencia: Claude prefiere sus propios resultados cuando se le pide que los verifique o juzgue según una rúbrica. Un verificador con intereses creados no puede ser un verificador justo.
- Deriva del objetivo: la pérdida gradual de fidelidad al objetivo original a lo largo de muchos turnos, especialmente después de la compactación. Cada paso de resumen tiene pérdidas. Las restricciones de "No hagas X" desaparecen silenciosamente en el turno 47.
Un flujo de trabajo resuelve los tres estructuralmente: Claudes separados con sus propios contextos, objetivos enfocados y estado aislado. Si tu tarea sufre de alguno de estos patrones, esa es la señal para recurrir a un flujo de trabajo.
03. Flujos de trabajo estáticos vs. dinámicos.
Es posible que ya hayas creado flujos de trabajo estáticos usando el SDK de Claude Agent o claude -p, coordinando múltiples instancias de Claude Code.
- Los flujos de trabajo estáticos son genéricos: se escriben una vez para manejar cada caso extremo. Funcionan, pero deben ser conservadores.
- Los Flujos de Trabajo Dinámicos son diferentes: Claude escribe este flujo de trabajo para esta tarea. El entorno está hecho a medida. A continuación, la misma pregunta se maneja de ambas maneras:

La razón por la que gana la versión dinámica no es el paso de búsqueda; ambos pueden buscar.
Es que el flujo de trabajo puede adaptarse a tu contexto: leer tu código de facturación, verificar cada función con la documentación real del nuevo proveedor, calcular el precio según tu volumen de transacciones y ejecutar una pasada adversarial de "por qué no migrar" contra su propia respuesta emergente.
Un entorno estático no puede hacer esto porque no sabe que tu código existe.
04. La API principal. agent(), parallel(), pipeline().
Tres funciones hacen la mayor parte del trabajo en un flujo de trabajo. Conocerlas es suficiente para leer cualquier flujo de trabajo que Claude escriba para ti y para guiar a Claude cuando quieras una forma específica.

parallel() es una barrera: se expande y luego espera a que todo termine antes de devolver el control. pipeline() es transmisión: cada elemento fluye a través de cada etapa de forma independiente.
Elige según la pregunta: ¿Necesito todos los resultados antes de poder hacer algo a continuación? Sí → parallel. No → pipeline (más económico, más rápido en general).
05. Clasificar y actuar. Enruta el trabajo antes de hacerlo.
Un agente clasificador decide el tipo de tarea, luego el flujo de trabajo enruta a diferentes agentes o comportamientos según la respuesta. O un clasificador se ejecuta al final, ordenando los resultados sin procesar en categorías para lo que venga después.
Cuándo este patrón vale la pena:
- La tarea es heterogénea: diferentes subtipos necesitan un tratamiento diferente.
- Quieres usar el modelo costoso solo donde la complejidad lo exija (clasificador en uno económico, luego enrutar a Opus solo cuando sea necesario).
- La descomposición del trabajo en sí misma no es trivial y se beneficia de que un modelo decida la forma.
Ejemplo: "Explica cómo funciona el módulo de autenticación." Un subagente clasificador lee primero el código base, estima la complejidad y luego enruta la tarea de explicación real a Sonnet para un módulo de 10 archivos o a Opus para uno de 100. El modelo adecuado para el trabajo, decidido después de comprender el trabajo.
06. Expandir y sintetizar. Muchos pasos pequeños, un resultado combinado.
Divide una tarea en muchos pasos más pequeños. Ejecuta un agente en cada paso en paralelo. Sintetiza los resultados en una sola respuesta.
El paso de síntesis es una barrera: espera a cada agente expandido y luego combina sus resultados estructurados.
Por qué este patrón domina en la práctica: resuelve el fallo de "demasiadas cosas a la vez" del trabajo en un solo contexto. Cada subagente ve solo su parte. El orquestador nunca se distrae con 50 detalles no relacionados.
Cada paso se beneficia de su propia ventana limpia para que no se contaminen entre sí.
Úsalo cuando:
- Tengas una lista claramente enumerable de elementos de trabajo (50 archivos, 200 endpoints, 100 revisiones).
- Cada elemento sea independiente: ningún elemento necesita la salida de otro para comenzar.
- Quieras una única respuesta consolidada al final, no un montón de informes parciales.
1// Expandir: un agente por archivo. Barrera: esperar a todos.2const reviews = await parallel(3 files.map(file => () => agent(4 `Revisa ${file} en busca de problemas de seguridad`,5 { model: "haiku", schema: IssueList }6 ))7)89// Sintetizar: un agente Opus combina todo.10const report = await agent(11 `Combina estas revisiones en un informe priorizado:\n${JSON.stringify(reviews)}`,12 { model: "opus" }13)
07. Verificación adversarial
Esta es la solución estructural para el sesgo de autopreferencia. Por cada agente creado, ejecuta un agente separado que verifica adversarialmente su salida contra una rúbrica. El verificador nunca ha visto el trabajo original; no puede favorecerlo.
El patrón es más importante para:
- Verificación de afirmaciones: cada declaración fáctica en un informe obtiene su propio subagente verificador, que la verifica contra la fuente original.
- Revisión de código: el agente autor escribe la corrección, el agente revisor (contexto separado) la revisa. Nunca el mismo Claude juzgándose a sí mismo.
- Controles de calidad: antes de que cualquier artefacto se publique, un adversario intenta encontrar el caso más débil en su contra. Si el adversario no puede, se publica.
La regla de emparejamiento: el verificador debe conocer solo la rúbrica y el artefacto, no quién lo produjo. De lo contrario, la autopreferencia se cuela de nuevo a través de pistas en el prompt.
08. Generar y filtrar.
Genera varias ideas sobre un tema, luego fíltralas según una rúbrica o mediante verificación. Elimina duplicados. Devuelve solo las ideas de mayor calidad y probadas.
Dónde brilla este patrón:
- Lluvia de ideas: 30 nombres de productos, luego un verificador elimina clichés, conflictos de marcas registradas y fonéticas débiles. Ves 3.
- Generación de hipótesis: 5 enfoques diferentes para un problema, luego cada uno se puntúa según tus restricciones. El ganador se lo ha ganado.
- Diseño de soluciones: 5 enfoques diferentes para un problema, luego cada uno se puntúa según tus restricciones. El ganador se lo ha ganado.
Lo opuesto a pedirle a Claude "la mejor respuesta". Pedir la mejor respuesta hace que Claude se comprometa temprano. Generar y filtrar hace que Claude se comprometa tarde, después de que cada opción haya sido desafiada.
09. Torneo. La comparación por pares supera a la puntuación absoluta.
En lugar de dividir el trabajo, haz que los agentes compitan en él. Crea N agentes que intenten la misma tarea usando diferentes enfoques, luego juzga los resultados de forma pareada hasta que uno gane.
El juicio comparativo es más fiable que la puntuación absoluta, especialmente para trabajos basados en el gusto.

Por qué esto supera a ordenar por puntuación: intentar ordenar 1000 elementos en un solo prompt falla en dos frentes: la calidad se degrada y no cabe en el contexto. Un torneo divide el cuadro entre agentes nuevos, cada uno comparando solo dos elementos.
El cuadro en sí mismo vive en código de bucle determinista, no en el contexto. Cada comparación es rápida, justa y aislada. La misma idea funciona para la clasificación basada en el gusto: opciones de diseño, selección de candidatos, priorización de contenido.
10. Bucle hasta terminar.
Para tareas con una cantidad de trabajo desconocida, crea agentes en bucle hasta que se cumpla una condición de parada (sin nuevos hallazgos, sin más errores en los registros, teoría verificada) en lugar de ejecutar un número fijo de pasadas.
Este patrón es la respuesta a "sigue hasta que esté realmente terminado":
- Depuración de pruebas inestables: reproduce, formula teorías, pruébalas, hasta que una teoría se sostenga.
- Caza de errores: sigue encontrando errores hasta que una pasada completa devuelva cero.
- Minería de patrones: agrupa, identifica reglas, hasta que no aparezcan nuevos grupos.
Combina este patrón con /goal para establecer un requisito de finalización estricto ("no pares hasta que una teoría funcione") y con /loop si quieres que todo el flujo de trabajo se ejecute en un horario recurrente.
El cuadro y la condición de parada viven en el código; solo la iteración activa permanece en el contexto.
11. Combina patrones para casos de uso reales. Un flujo de trabajo, varios patrones.
Los 6 patrones rara vez aparecen solos. Un flujo de trabajo real combina 2-4 de ellos. La siguiente matriz empareja cada caso de uso del documento de lanzamiento de Anthropic con los patrones que tiende a usar:
- Migraciones y refactorizaciones. Expandir (un agente por punto de llamada/prueba fallida en un worktree) → verificación adversarial (un agente separado revisa cada corrección) → bucle hasta terminar. Este es el patrón que Anthropic usó para reescribir Bun de Zig a Rust.
- Investigación profunda (la habilidad /deep-research). Expandir (búsquedas web paralelas) → verificación adversarial (cada afirmación verificada de forma independiente) → sintetizar (un informe citado).
- Verificación profunda de un borrador. Identificar todas las afirmaciones fácticas (un agente) → expandir (un verificador por afirmación, cada agente verifica contra la fuente) → meta-verificador (verifica que las fuentes del verificador sean de alta calidad).
- Ordenar más de 1000 elementos. Torneo (pasos 5-9): comparación por pares, clasificación por cubos o cuadro. Juicio comparativo, nunca puntuación absoluta.
- Adherencia a la memoria y las reglas. Verificador por regla (expandir) → una persona escéptica revisa las reglas en sí mismas para evitar falsos positivos.
- Investigación de causa raíz. Generar teorías a partir de evidencia inconexa (diferentes agentes leen registros, archivos, datos) → panel de verificadores y refutadores para cada teoría → bucle hasta que una sobreviva.
- Triaje a escala. Clasificar y actuar → eliminar duplicados contra tickets existentes → intentar la corrección o escalar. Combínalo con /loop para triaje continuo.
- Exploración y gusto (diseño, nombres, opciones de UI). Generar y filtrar (5-20 opciones) → torneo con una rúbrica → clasificar o seleccionar.
- Evaluaciones ligeras. Ejecutar el candidato en un worktree → agentes de comparación califican según la rúbrica → refinar y volver a calificar. La misma forma que un torneo pero para calificar, no para clasificar.
La forma correcta de internalizar estos: identifica qué modo de fallo está sufriendo tu tarea actual, luego elige el patrón que lo previene estructuralmente.
Deriva → expandir. Autopreferencia → verificación adversarial. Abierto → bucle hasta terminar. Difícil de puntuar → torneo.
12. Combínalo con /goal, /loop y presupuestos de tokens.
Los flujos de trabajo pueden ser costosos. Tres controles los convierten de "geniales pero costosos" a "una herramienta que ejecuto sin supervisión".
- /goal establece un requisito de finalización estricto. Combínalo con el patrón de bucle: "no pares hasta que una teoría funcione." Sin /goal, un flujo de trabajo se detiene en un punto de finalización suave. Con /goal, itera hasta que se cumpla la condición final real.
- /loop ejecuta todo el flujo de trabajo en un horario recurrente. Úsalo para flujos de trabajo que quieras ejecutando continuamente: triaje, actualizaciones de investigación semanales, verificación recurrente.
- Presupuestos de tokens explícitos. Dile a Claude en el prompt: "usa 10k tokens." Esto establece un límite en la ejecución del flujo de trabajo. Sin un límite, un flujo de trabajo ambicioso puede inflarse hasta 5–10× los tokens que esperabas.
1> ultracode revisión adversarial rápida de esta suposición:2 "migrar a Postgres elimina nuestro rebalanceo de shards."3 Usa 5k tokens. /goal no pares hasta que tengas4 un contraejemplo o tres confirmaciones independientes.
Citando directamente al equipo de Claude Code: "Las mejores prácticas aún se están desarrollando. Los flujos de trabajo dinámicos a menudo usan más tokens, así que piensa cuidadosamente cuándo y cómo usarlos." La mayoría de las tareas de codificación tradicionales no necesitan un panel de 5 revisores.

Pregúntate: ¿esta tarea realmente necesita más cómputo? Si una sesión normal de Claude Code la terminaría en cinco minutos, no necesitas un flujo de trabajo.
13. Usa el patrón de cuarentena para entradas no confiables.
Cualquier flujo de trabajo que lea contenido público no confiable (tickets de soporte, informes de errores, comentarios de usuarios, datos extraídos) debe asumir que ese contenido podría contener inyección de prompt.
La solución: cuarentena. Impide que los agentes que leen el contenido no confiable tomen acciones de alto privilegio. Agentes separados, sin exposición al contenido sin procesar, realizan las acciones.

Cualquier flujo de trabajo que procese contenido enviado por el usuario (tickets de soporte, informes de errores, comentarios de clientes, redes sociales), extraiga páginas web públicas o se ejecute contra la salida de una API de terceros.
Si la entrada no fue escrita por ti o un compañero de confianza, ponla en cuarentena. Un agente lector de solo lectura de 30 líneas cuesta casi nada y elimina toda una clase de riesgo de inyección de prompt.
14. Guarda flujos de trabajo. Envíalos como Skills.
Una vez que un flujo de trabajo funciona, guárdalo: presiona s en el menú del flujo de trabajo. Los flujos de trabajo guardados van a ~/.claude/workflows. Desde allí tienes dos caminos:
- Mantenerlo local: reutilízalo en tus propios proyectos.
- Enviarlo como Skill: empaqueta el archivo JavaScript dentro de una carpeta Skill, haz referencia a él en SKILL.md, y cualquiera que instale el Skill ejecutará el mismo flujo de trabajo.

Un matiz práctico que vale la pena conocer: cuando empaquetas un flujo de trabajo en un Skill, indícale a Claude que trate el flujo de trabajo como una plantilla, no como un script para ejecutar textualmente.
Eso deja espacio para que Claude adapte la forma del flujo de trabajo a la tarea específica en cuestión, manteniendo intacta la estructura general. Especialmente útil para flujos de trabajo como "verificación profunda" o "triaje" que necesitan flexibilidad según el caso de uso.
Los errores que desperdician tokens en flujos de trabajo
- Recurrir a un flujo de trabajo cuando una sesión normal de Claude Code sería suficiente. La mayoría de las tareas de codificación tradicionales no necesitan un panel de 5 revisores.
- Sin presupuesto de tokens. Los flujos de trabajo ambiciosos se inflan hasta 5–10× de lo que esperabas sin un límite explícito.
- Un agente haciendo tanto el trabajo como la verificación. El sesgo de autopreferencia hace que el verificador favorezca al trabajador. Deben estar separados.
- Tratar parallel() y pipeline() como intercambiables. La barrera importa: parallel espera a todos, pipeline transmite.
- Omitir /goal en patrones de bucle. El flujo de trabajo se detiene temprano en el primer punto de finalización suave. /goal fuerza la finalización estricta.
- Dejar que el contenido no confiable llegue al actor. La cuarentena no es opcional una vez que procesas cualquier cosa enviada por el usuario.
- Ordenar con puntuaciones absolutas. El juicio comparativo es más fiable. Usa un torneo.
- Nunca guardar flujos de trabajo que funcionan. Volver a pedir la misma forma cada semana. Guarda con s, envía como Skill.





